1 | #ifndef _DRM_AGPSUPPORT_H_ |
2 | #define _DRM_AGPSUPPORT_H_ |
3 | |
4 | #include <linux/kernel.h> |
5 | #include <linux/mm.h> |
6 | #include <linux/mutex.h> |
7 | #include <linux/types.h> |
8 | #include <linux/agp_backend.h> |
9 | #include <drm/drmP.h> |
10 | |
11 | #if __OS_HAS_AGP |
12 | |
13 | #ifdef __NetBSD__ |
14 | static inline void drm_free_agp(struct agp_bridge_data *, struct agp_memory *, int); |
15 | static inline int drm_bind_agp(struct agp_bridge_data *, struct agp_memory *, unsigned); |
16 | static inline int drm_unbind_agp(struct agp_bridge_data *, struct agp_memory *); |
17 | #else |
18 | void drm_free_agp(struct agp_memory * handle, int pages); |
19 | int drm_bind_agp(struct agp_memory * handle, unsigned int start); |
20 | int drm_unbind_agp(struct agp_memory * handle); |
21 | #endif |
22 | struct agp_memory *drm_agp_bind_pages(struct drm_device *dev, |
23 | struct page **pages, |
24 | unsigned long num_pages, |
25 | uint32_t gtt_offset, |
26 | uint32_t type); |
27 | |
28 | struct drm_agp_head *drm_agp_init(struct drm_device *dev); |
29 | void drm_agp_clear(struct drm_device *dev); |
30 | int drm_agp_acquire(struct drm_device *dev); |
31 | int drm_agp_acquire_ioctl(struct drm_device *dev, void *data, |
32 | struct drm_file *file_priv); |
33 | int drm_agp_release(struct drm_device *dev); |
34 | int drm_agp_release_ioctl(struct drm_device *dev, void *data, |
35 | struct drm_file *file_priv); |
36 | int drm_agp_enable(struct drm_device *dev, struct drm_agp_mode mode); |
37 | int drm_agp_enable_ioctl(struct drm_device *dev, void *data, |
38 | struct drm_file *file_priv); |
39 | int drm_agp_info(struct drm_device *dev, struct drm_agp_info *info); |
40 | int drm_agp_info_ioctl(struct drm_device *dev, void *data, |
41 | struct drm_file *file_priv); |
42 | int drm_agp_alloc(struct drm_device *dev, struct drm_agp_buffer *request); |
43 | int drm_agp_alloc_ioctl(struct drm_device *dev, void *data, |
44 | struct drm_file *file_priv); |
45 | int drm_agp_free(struct drm_device *dev, struct drm_agp_buffer *request); |
46 | int drm_agp_free_ioctl(struct drm_device *dev, void *data, |
47 | struct drm_file *file_priv); |
48 | int drm_agp_unbind(struct drm_device *dev, struct drm_agp_binding *request); |
49 | int drm_agp_unbind_ioctl(struct drm_device *dev, void *data, |
50 | struct drm_file *file_priv); |
51 | int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request); |
52 | int drm_agp_bind_ioctl(struct drm_device *dev, void *data, |
53 | struct drm_file *file_priv); |
54 | #else /* __OS_HAS_AGP */ |
55 | |
56 | #if !defined(__NetBSD__) |
57 | |
58 | static inline void drm_free_agp(struct agp_memory * handle, int pages) |
59 | { |
60 | } |
61 | |
62 | static inline int drm_bind_agp(struct agp_memory * handle, unsigned int start) |
63 | { |
64 | return -ENODEV; |
65 | } |
66 | |
67 | static inline int drm_unbind_agp(struct agp_memory * handle) |
68 | { |
69 | return -ENODEV; |
70 | } |
71 | |
72 | #endif |
73 | |
74 | static inline struct agp_memory *drm_agp_bind_pages(struct drm_device *dev, |
75 | struct page **pages, |
76 | unsigned long num_pages, |
77 | uint32_t gtt_offset, |
78 | uint32_t type) |
79 | { |
80 | return NULL; |
81 | } |
82 | |
83 | static inline struct drm_agp_head *drm_agp_init(struct drm_device *dev) |
84 | { |
85 | return NULL; |
86 | } |
87 | |
88 | static inline void drm_agp_clear(struct drm_device *dev) |
89 | { |
90 | } |
91 | |
92 | static inline int drm_agp_acquire(struct drm_device *dev) |
93 | { |
94 | return -ENODEV; |
95 | } |
96 | |
97 | static inline int drm_agp_acquire_ioctl(struct drm_device *dev, void *data, |
98 | struct drm_file *file_priv) |
99 | { |
100 | return -ENODEV; |
101 | } |
102 | |
103 | static inline int drm_agp_release(struct drm_device *dev) |
104 | { |
105 | return -ENODEV; |
106 | } |
107 | |
108 | static inline int drm_agp_release_ioctl(struct drm_device *dev, void *data, |
109 | struct drm_file *file_priv) |
110 | { |
111 | return -ENODEV; |
112 | } |
113 | |
114 | static inline int drm_agp_enable(struct drm_device *dev, |
115 | struct drm_agp_mode mode) |
116 | { |
117 | return -ENODEV; |
118 | } |
119 | |
120 | static inline int drm_agp_enable_ioctl(struct drm_device *dev, void *data, |
121 | struct drm_file *file_priv) |
122 | { |
123 | return -ENODEV; |
124 | } |
125 | |
126 | static inline int drm_agp_info(struct drm_device *dev, |
127 | struct drm_agp_info *info) |
128 | { |
129 | return -ENODEV; |
130 | } |
131 | |
132 | static inline int drm_agp_info_ioctl(struct drm_device *dev, void *data, |
133 | struct drm_file *file_priv) |
134 | { |
135 | return -ENODEV; |
136 | } |
137 | |
138 | static inline int drm_agp_alloc(struct drm_device *dev, |
139 | struct drm_agp_buffer *request) |
140 | { |
141 | return -ENODEV; |
142 | } |
143 | |
144 | static inline int drm_agp_alloc_ioctl(struct drm_device *dev, void *data, |
145 | struct drm_file *file_priv) |
146 | { |
147 | return -ENODEV; |
148 | } |
149 | |
150 | static inline int drm_agp_free(struct drm_device *dev, |
151 | struct drm_agp_buffer *request) |
152 | { |
153 | return -ENODEV; |
154 | } |
155 | |
156 | static inline int drm_agp_free_ioctl(struct drm_device *dev, void *data, |
157 | struct drm_file *file_priv) |
158 | { |
159 | return -ENODEV; |
160 | } |
161 | |
162 | static inline int drm_agp_unbind(struct drm_device *dev, |
163 | struct drm_agp_binding *request) |
164 | { |
165 | return -ENODEV; |
166 | } |
167 | |
168 | static inline int drm_agp_unbind_ioctl(struct drm_device *dev, void *data, |
169 | struct drm_file *file_priv) |
170 | { |
171 | return -ENODEV; |
172 | } |
173 | |
174 | static inline int drm_agp_bind(struct drm_device *dev, |
175 | struct drm_agp_binding *request) |
176 | { |
177 | return -ENODEV; |
178 | } |
179 | |
180 | static inline int drm_agp_bind_ioctl(struct drm_device *dev, void *data, |
181 | struct drm_file *file_priv) |
182 | { |
183 | return -ENODEV; |
184 | } |
185 | #endif /* __OS_HAS_AGP */ |
186 | |
187 | #endif /* _DRM_AGPSUPPORT_H_ */ |
188 | |