summaryrefslogtreecommitdiff
path: root/shared-core/nouveau_swmthd.h
blob: 5b9409fbea7fc35d123e7ce14898ef69fb3bc695 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
 * Copyright (C) 2007 Arthur Huillet.
 *
 * All Rights Reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice (including the
 * next paragraph) shall be included in all copies or substantial
 * portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 */

/*
 * Authors:
 *   Arthur Huillet <arthur.huillet AT free DOT fr>
 */

int nouveau_sw_method_execute(struct drm_device *dev, uint32_t oclass, uint32_t method); /* execute the given software method, returns 0 on success */
hl opt">:= $(patsubst %.o,%_drv.o,$(module-list)) # libs-objs are included in every module so that radical changes to the # architecture of the DRM support library can be made at a later time. # # The downside is that each module is larger, and a system that uses # more than one module (i.e., a dual-head system) will use more memory # (but a system that uses exactly one module will use the same amount of # memory). # # The upside is that if the DRM support library ever becomes insufficient # for new families of cards, a new library can be implemented for those new # cards without impacting the drivers for the old cards. This is significant, # because testing architectural changes to old cards may be impossible, and # may delay the implementation of a better architecture. We've traded slight # memory waste (in the dual-head case) for greatly improved long-term # maintainability. # # NOTE: lib-objs will be eliminated in future versions, thereby # eliminating the need to compile the .o files into every module, but # for now we still need them. # lib-objs := init.o memory.o proc.o auth.o context.o drawable.o bufs.o lib-objs += lists.o lock.o ioctl.o fops.o vm.o dma.o ctxbitmap.o ifeq ($(CONFIG_AGP),y) lib-objs += agpsupport.o else ifeq ($(CONFIG_AGP),m) lib-objs += agpsupport.o endif endif gamma-objs := gamma_drv.o gamma_dma.o tdfx-objs := tdfx_drv.o tdfx_context.o r128-objs := r128_drv.o r128_cce.o r128_context.o r128_bufs.o \ r128_state.o radeon-objs := radeon_drv.o radeon_cp.o radeon_context.o radeon_bufs.o \ radeon_state.o ffb-objs := ffb_drv.o ffb_context.o mga-objs := mga_drv.o mga_dma.o mga_context.o mga_bufs.o \ mga_state.o i810-objs := i810_drv.o i810_dma.o i810_context.o i810_bufs.o obj-$(CONFIG_DRM_GAMMA) += gamma.o obj-$(CONFIG_DRM_TDFX) += tdfx.o obj-$(CONFIG_DRM_R128) += r128.o obj-$(CONFIG_DRM_RADEON) += radeon.o obj-$(CONFIG_DRM_FFB) += ffb.o obj-$(CONFIG_DRM_MGA) += mga.o obj-$(CONFIG_DRM_I810) += i810.o # When linking into the kernel, link the library just once. # If making modules, we include the library into each module lib-objs-mod := $(patsubst %.o,%-mod.o,$(lib-objs)) ifdef MAKING_MODULES lib = drmlib-mod.a else obj-y += drmlib.a endif include $(TOPDIR)/Rules.make $(patsubst %.o,%.c,$(lib-objs-mod)): @ln -sf $(subst -mod,,$@) $@ drmlib-mod.a: $(lib-objs-mod) rm -f $@ $(AR) $(EXTRA_ARFLAGS) rcs $@ $(lib-objs-mod) drmlib.a: $(lib-objs) rm -f $@ $(AR) $(EXTRA_ARFLAGS) rcs $@ $(lib-objs) gamma.o: $(gamma-objs) $(lib) $(LD) -r -o $@ $(gamma-objs) $(lib) tdfx.o: $(tdfx-objs) $(lib) $(LD) -r -o $@ $(tdfx-objs) $(lib) mga.o: $(mga-objs) $(lib) $(LD) -r -o $@ $(mga-objs) $(lib) i810.o: $(i810-objs) $(lib) $(LD) -r -o $@ $(i810-objs) $(lib) r128.o: $(r128-objs) $(lib) $(LD) -r -o $@ $(r128-objs) $(lib) radeon.o: $(radeon-objs) $(lib) $(LD) -r -o $@ $(radeon-objs) $(lib) ffb.o: $(ffb-objs) $(lib) $(LD) -r -o $@ $(ffb-objs) $(lib)