drm_agpsupport.h revision 1.2.2.2 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 static inline void drm_free_agp(struct agp_memory * handle, int pages)
57 {
58 }
59
60 static inline int drm_bind_agp(struct agp_memory * handle, unsigned int start)
61 {
62 return -ENODEV;
63 }
64
65 static inline int drm_unbind_agp(struct agp_memory * handle)
66 {
67 return -ENODEV;
68 }
69
70 static inline struct agp_memory *drm_agp_bind_pages(struct drm_device *dev,
71 struct page **pages,
72 unsigned long num_pages,
73 uint32_t gtt_offset,
74 uint32_t type)
75 {
76 return NULL;
77 }
78
79 static inline struct drm_agp_head *drm_agp_init(struct drm_device *dev)
80 {
81 return NULL;
82 }
83
84 static inline void drm_agp_clear(struct drm_device *dev)
85 {
86 }
87
88 static inline int drm_agp_acquire(struct drm_device *dev)
89 {
90 return -ENODEV;
91 }
92
93 static inline int drm_agp_acquire_ioctl(struct drm_device *dev, void *data,
94 struct drm_file *file_priv)
95 {
96 return -ENODEV;
97 }
98
99 static inline int drm_agp_release(struct drm_device *dev)
100 {
101 return -ENODEV;
102 }
103
104 static inline int drm_agp_release_ioctl(struct drm_device *dev, void *data,
105 struct drm_file *file_priv)
106 {
107 return -ENODEV;
108 }
109
110 static inline int drm_agp_enable(struct drm_device *dev,
111 struct drm_agp_mode mode)
112 {
113 return -ENODEV;
114 }
115
116 static inline int drm_agp_enable_ioctl(struct drm_device *dev, void *data,
117 struct drm_file *file_priv)
118 {
119 return -ENODEV;
120 }
121
122 static inline int drm_agp_info(struct drm_device *dev,
123 struct drm_agp_info *info)
124 {
125 return -ENODEV;
126 }
127
128 static inline int drm_agp_info_ioctl(struct drm_device *dev, void *data,
129 struct drm_file *file_priv)
130 {
131 return -ENODEV;
132 }
133
134 static inline int drm_agp_alloc(struct drm_device *dev,
135 struct drm_agp_buffer *request)
136 {
137 return -ENODEV;
138 }
139
140 static inline int drm_agp_alloc_ioctl(struct drm_device *dev, void *data,
141 struct drm_file *file_priv)
142 {
143 return -ENODEV;
144 }
145
146 static inline int drm_agp_free(struct drm_device *dev,
147 struct drm_agp_buffer *request)
148 {
149 return -ENODEV;
150 }
151
152 static inline int drm_agp_free_ioctl(struct drm_device *dev, void *data,
153 struct drm_file *file_priv)
154 {
155 return -ENODEV;
156 }
157
158 static inline int drm_agp_unbind(struct drm_device *dev,
159 struct drm_agp_binding *request)
160 {
161 return -ENODEV;
162 }
163
164 static inline int drm_agp_unbind_ioctl(struct drm_device *dev, void *data,
165 struct drm_file *file_priv)
166 {
167 return -ENODEV;
168 }
169
170 static inline int drm_agp_bind(struct drm_device *dev,
171 struct drm_agp_binding *request)
172 {
173 return -ENODEV;
174 }
175
176 static inline int drm_agp_bind_ioctl(struct drm_device *dev, void *data,
177 struct drm_file *file_priv)
178 {
179 return -ENODEV;
180 }
181 #endif /* __OS_HAS_AGP */
182
183 #endif /* _DRM_AGPSUPPORT_H_ */
184