Rev 1119 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1117 | serge | 1 | |
2 | #define __TYPES_H__ |
||
3 | |||
4 | |||
5 | |||
6 | |||
7 | |||
8 | #define true 1 |
||
9 | |||
10 | |||
11 | typedef unsigned int count_t; |
||
12 | typedef unsigned int addr_t; |
||
13 | |||
14 | |||
15 | typedef unsigned short u16; |
||
16 | typedef unsigned int u32; |
||
17 | typedef unsigned long long u64; |
||
18 | |||
19 | |||
20 | typedef unsigned short __u16; |
||
21 | typedef unsigned int __u32; |
||
22 | typedef unsigned long long __u64; |
||
23 | |||
24 | |||
25 | typedef signed short __s16; |
||
26 | typedef signed int __s32; |
||
27 | typedef signed long long __s64; |
||
28 | |||
29 | |||
30 | |||
31 | typedef unsigned short uint16_t; |
||
32 | typedef unsigned int uint32_t; |
||
33 | typedef unsigned long long uint64_t; |
||
34 | |||
35 | |||
36 | typedef unsigned short u16_t; |
||
37 | typedef unsigned int u32_t; |
||
38 | typedef unsigned long long u64_t; |
||
39 | |||
40 | |||
1123 | serge | 41 | typedef signed long long int64_t; |
42 | |||
43 | |||
1117 | serge | 44 | |
45 | |||
46 | typedef uint32_t resource_size_t; |
||
47 | |||
48 | |||
49 | |||
50 | |||
51 | #define cpu_to_le32(v32) (v32) |
||
52 | #define cpu_to_le64(v64) (v64) |
||
53 | #define le16_to_cpu(v16) (v16) |
||
54 | #define le32_to_cpu(v32) (v32) |
||
55 | #define le64_to_cpu(v64) (v64) |
||
56 | |||
57 | |||
58 | #define unlikely(x) __builtin_expect(!!(x), 0) |
||
59 | |||
60 | |||
1123 | serge | 61 | |
1117 | serge | 62 | |
1123 | serge | 63 | |
1117 | serge | 64 | |
1123 | serge | 65 | |
66 | |||
67 | unsigned long name[BITS_TO_LONGS(bits)] |
||
68 | |||
69 | |||
70 | |||
1117 | serge | 71 | #define KERN_ALERT "<1>" /* action must be taken immediately */ |
72 | #define KERN_CRIT "<2>" /* critical conditions */ |
||
73 | #define KERN_ERR "<3>" /* error conditions */ |
||
74 | #define KERN_WARNING "<4>" /* warning conditions */ |
||
75 | #define KERN_NOTICE "<5>" /* normal but significant condition */ |
||
76 | #define KERN_INFO "<6>" /* informational */ |
||
77 | #define KERN_DEBUG "<7>" /* debug-level messages */ |
||
78 | |||
79 | |||
80 | |||
81 | |||
82 | |||
83 | |||
84 | |||
85 | |||
86 | |||
87 | |||
88 | |||
89 | printk(KERN_ERR "[" DRM_NAME ":%s] *ERROR* " fmt , __func__ , ##arg) |
||
90 | |||
91 | |||
92 | printk(KERN_ERR "[" DRM_NAME ":%s] *ERROR* " fmt , __func__ , ##arg) |
||
93 | |||
94 | |||
95 | |||
96 | |||
97 | BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(typeof(a), typeof(&a[0]))) |
||
98 | |||
99 | |||
100 | |||
101 | |||
102 | |||
103 | |||
104 | |||
105 | #define BUG() do { \ |
||
106 | printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \ |
||
107 | /* panic("BUG!"); */ \ |
||
108 | } while (0) |
||
109 | #endif |
||
110 | |||
111 | |||
112 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while(0) |
||
113 | #endif |
||
114 | |||
115 | |||
116 | |||
117 | |||
118 | #define MTRR_TYPE_WRCOMB 1 |
||
119 | #define MTRR_TYPE_WRTHROUGH 4 |
||
120 | #define MTRR_TYPE_WRPROT 5 |
||
121 | #define MTRR_TYPE_WRBACK 6 |
||
122 | #define MTRR_NUM_TYPES 7 |
||
123 | |||
124 | |||
125 | |||
126 | |||
127 | |||
128 | |||
1123 | serge | 129 | |
130 | |||
131 | |||
132 | |||
133 | |||
1117 | serge | 134 | |
135 | |||
136 | void* memset(void *s, int c, size_t n); |
||
137 | size_t strlen(const char *s); |
||
138 | char *strncpy (char *dst, const char *src, size_t len); |
||
1123 | serge | 139 | |
1117 | serge | 140 | |
141 | |||
142 | |||
1123 | serge | 143 | #define kfree free |
1117 | serge | 144 | |
145 | |||
146 | { |
||
147 | void *ret = malloc(size); |
||
148 | memset(ret, 0, size); |
||
149 | return ret; |
||
150 | } |
||
151 | |||
152 | |||
153 | |||
154 | |||
155 | // struct kref refcount; |
||
156 | |||
157 | |||
158 | // struct kref handlecount; |
||
159 | |||
160 | |||
161 | // struct drm_device *dev; |
||
162 | |||
163 | |||
164 | // struct file *filp; |
||
165 | |||
166 | |||
167 | // struct drm_map_list map_list; |
||
168 | |||
169 | |||
170 | * Size of the object, in bytes. Immutable over the object's |
||
171 | * lifetime. |
||
172 | */ |
||
173 | size_t size; |
||
174 | |||
175 | |||
176 | * Global name for this object, starts at 1. 0 means unnamed. |
||
177 | * Access is covered by the object_name_lock in the related drm_device |
||
178 | */ |
||
179 | int name; |
||
180 | |||
181 | |||
182 | * Memory domains. These monitor which caches contain read/write data |
||
183 | * related to the object. When transitioning from one set of domains |
||
184 | * to another, the driver is called to ensure that caches are suitably |
||
185 | * flushed and invalidated |
||
186 | */ |
||
187 | uint32_t read_domains; |
||
188 | uint32_t write_domain; |
||
189 | |||
190 | |||
191 | * While validating an exec operation, the |
||
192 | * new read/write domain values are computed here. |
||
193 | * They will be transferred to the above values |
||
194 | * at the point that any cache flushing occurs |
||
195 | */ |
||
196 | uint32_t pending_read_domains; |
||
197 | uint32_t pending_write_domain; |
||
198 | |||
199 | |||
200 | }; |
||
201 | |||
202 | |||
203 | |||
204 | |||
205 | |||
206 | |||
207 | const typeof( ((type *)0)->member ) *__mptr = (ptr); \ |
||
208 | (type *)( (char *)__mptr - offsetof(type,member) );}) |
||
209 | |||
210 | |||
211 | |||
212 | |||
213 | #define mb() __asm__ __volatile__("lock; addl $0,0(%esp)") |
||
1119 | serge | 214 | |
1117 | serge | 215 | |
1119 | serge | 216 | #define PAGE_SHIFT 12 |
217 | |||
1117 | serge | 218 | |
1119 | serge | 219 | |
1117 | serge | 220 | |
1123 | serge | 221 | { |
222 | if (nbits <= BITS_PER_LONG) |
||
223 | *dst = 0UL; |
||
224 | else { |
||
225 | int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long); |
||
226 | memset(dst, 0, len); |
||
227 | } |
||
228 | } |
||
229 | |||
1119 | serge | 230 | |
1123 | serge | 231 | |
232 | |||
233 | #define IDR_FULL 0xfffffffful |
||
234 | |||
235 | |||
236 | unsigned long bitmap; /* A zero bit means "space here" */ |
||
237 | struct idr_layer *ary[1< |
||
238 | int count; /* When zero, we can release it */ |
||
239 | }; |
||
240 | |||
241 | |||
242 | struct idr_layer *top; |
||
243 | struct idr_layer *id_free; |
||
244 | int layers; |
||
245 | int id_free_cnt; |
||
246 | // spinlock_t lock; |
||
247 | }; |
||
248 | |||
249 | |||
250 | |||
251 | typeof(x) _x = (x); \ |
||
252 | typeof(y) _y = (y); \ |
||
253 | (void) (&_x == &_y); \ |
||
254 | _x < _y ? _x : _y; }) |
||
255 | |||
256 | |||
257 | typeof(x) _x = (x); \ |
||
258 | typeof(y) _y = (y); \ |
||
259 | (void) (&_x == &_y); \ |
||
260 | _x > _y ? _x : _y; }) |
||
261 | |||
262 | |||
263 | |||
264 | |||
265 | |||
266 | uint32_t __base = (base); \ |
||
267 | uint32_t __rem; \ |
||
268 | (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \ |
||
269 | if (likely(((n) >> 32) == 0)) { \ |
||
270 | __rem = (uint32_t)(n) % __base; \ |
||
271 | (n) = (uint32_t)(n) / __base; \ |
||
272 | } else \ |
||
273 | __rem = __div64_32(&(n), __base); \ |
||
274 | __rem; \ |
||
275 | }) |
||
276 | |||
277 | |||
278 | |||
279 | |||
280 | #define INT_MIN (-INT_MAX - 1) |
||
281 | #define UINT_MAX (~0U) |
||
282 | #define LONG_MAX ((long)(~0UL>>1)) |
||
283 | #define LONG_MIN (-LONG_MAX - 1) |
||
284 | #define ULONG_MAX (~0UL) |
||
285 | #define LLONG_MAX ((long long)(~0ULL>>1)) |
||
286 | #define LLONG_MIN (-LLONG_MAX - 1) |
||
287 | #define ULLONG_MAX (~0ULL) |
||
288 | |||
289 | |||
290 | |||
291 | { |
||
292 | if (n != 0 && size > ULONG_MAX / n) |
||
293 | return NULL; |
||
294 | return kmalloc(n * size, 0); |
||
295 | } |
||
296 | |||
297 | |||
1117 | serge | 298 | > |