Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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