drm_agpsupport.h revision 1.2.6.3 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