1 #ifndef _DRM_AGPSUPPORT_H_
2 #define _DRM_AGPSUPPORT_H_
4 #include <linux/kernel.h>
6 #include <linux/mutex.h>
7 #include <linux/types.h>
8 #include <linux/agp_backend.h>
13 void drm_free_agp(struct agp_memory
* handle
, int pages
);
14 int drm_bind_agp(struct agp_memory
* handle
, unsigned int start
);
15 int drm_unbind_agp(struct agp_memory
* handle
);
16 struct agp_memory
*drm_agp_bind_pages(struct drm_device
*dev
,
18 unsigned long num_pages
,
22 struct drm_agp_head
*drm_agp_init(struct drm_device
*dev
);
23 void drm_agp_clear(struct drm_device
*dev
);
24 int drm_agp_acquire(struct drm_device
*dev
);
25 int drm_agp_acquire_ioctl(struct drm_device
*dev
, void *data
,
26 struct drm_file
*file_priv
);
27 int drm_agp_release(struct drm_device
*dev
);
28 int drm_agp_release_ioctl(struct drm_device
*dev
, void *data
,
29 struct drm_file
*file_priv
);
30 int drm_agp_enable(struct drm_device
*dev
, struct drm_agp_mode mode
);
31 int drm_agp_enable_ioctl(struct drm_device
*dev
, void *data
,
32 struct drm_file
*file_priv
);
33 int drm_agp_info(struct drm_device
*dev
, struct drm_agp_info
*info
);
34 int drm_agp_info_ioctl(struct drm_device
*dev
, void *data
,
35 struct drm_file
*file_priv
);
36 int drm_agp_alloc(struct drm_device
*dev
, struct drm_agp_buffer
*request
);
37 int drm_agp_alloc_ioctl(struct drm_device
*dev
, void *data
,
38 struct drm_file
*file_priv
);
39 int drm_agp_free(struct drm_device
*dev
, struct drm_agp_buffer
*request
);
40 int drm_agp_free_ioctl(struct drm_device
*dev
, void *data
,
41 struct drm_file
*file_priv
);
42 int drm_agp_unbind(struct drm_device
*dev
, struct drm_agp_binding
*request
);
43 int drm_agp_unbind_ioctl(struct drm_device
*dev
, void *data
,
44 struct drm_file
*file_priv
);
45 int drm_agp_bind(struct drm_device
*dev
, struct drm_agp_binding
*request
);
46 int drm_agp_bind_ioctl(struct drm_device
*dev
, void *data
,
47 struct drm_file
*file_priv
);
48 #else /* __OS_HAS_AGP */
50 static inline void drm_free_agp(struct agp_memory
* handle
, int pages
)
54 static inline int drm_bind_agp(struct agp_memory
* handle
, unsigned int start
)
59 static inline int drm_unbind_agp(struct agp_memory
* handle
)
64 static inline struct agp_memory
*drm_agp_bind_pages(struct drm_device
*dev
,
66 unsigned long num_pages
,
73 static inline struct drm_agp_head
*drm_agp_init(struct drm_device
*dev
)
78 static inline void drm_agp_clear(struct drm_device
*dev
)
82 static inline int drm_agp_acquire(struct drm_device
*dev
)
87 static inline int drm_agp_acquire_ioctl(struct drm_device
*dev
, void *data
,
88 struct drm_file
*file_priv
)
93 static inline int drm_agp_release(struct drm_device
*dev
)
98 static inline int drm_agp_release_ioctl(struct drm_device
*dev
, void *data
,
99 struct drm_file
*file_priv
)
104 static inline int drm_agp_enable(struct drm_device
*dev
,
105 struct drm_agp_mode mode
)
110 static inline int drm_agp_enable_ioctl(struct drm_device
*dev
, void *data
,
111 struct drm_file
*file_priv
)
116 static inline int drm_agp_info(struct drm_device
*dev
,
117 struct drm_agp_info
*info
)
122 static inline int drm_agp_info_ioctl(struct drm_device
*dev
, void *data
,
123 struct drm_file
*file_priv
)
128 static inline int drm_agp_alloc(struct drm_device
*dev
,
129 struct drm_agp_buffer
*request
)
134 static inline int drm_agp_alloc_ioctl(struct drm_device
*dev
, void *data
,
135 struct drm_file
*file_priv
)
140 static inline int drm_agp_free(struct drm_device
*dev
,
141 struct drm_agp_buffer
*request
)
146 static inline int drm_agp_free_ioctl(struct drm_device
*dev
, void *data
,
147 struct drm_file
*file_priv
)
152 static inline int drm_agp_unbind(struct drm_device
*dev
,
153 struct drm_agp_binding
*request
)
158 static inline int drm_agp_unbind_ioctl(struct drm_device
*dev
, void *data
,
159 struct drm_file
*file_priv
)
164 static inline int drm_agp_bind(struct drm_device
*dev
,
165 struct drm_agp_binding
*request
)
170 static inline int drm_agp_bind_ioctl(struct drm_device
*dev
, void *data
,
171 struct drm_file
*file_priv
)
175 #endif /* __OS_HAS_AGP */
177 #endif /* _DRM_AGPSUPPORT_H_ */