Rev 1123 | 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 | |||
93 | |||
94 | BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(typeof(a), typeof(&a[0]))) |
||
95 | |||
96 | |||
97 | |||
98 | |||
99 | |||
100 | |||
101 | |||
102 | #define BUG() do { \ |
||
103 | printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \ |
||
104 | /* panic("BUG!"); */ \ |
||
105 | } while (0) |
||
106 | #endif |
||
107 | |||
108 | |||
109 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while(0) |
||
110 | #endif |
||
111 | |||
112 | |||
113 | |||
114 | |||
115 | #define MTRR_TYPE_WRCOMB 1 |
||
116 | #define MTRR_TYPE_WRTHROUGH 4 |
||
117 | #define MTRR_TYPE_WRPROT 5 |
||
118 | #define MTRR_TYPE_WRBACK 6 |
||
119 | #define MTRR_NUM_TYPES 7 |
||
120 | |||
121 | |||
122 | |||
123 | |||
124 | |||
125 | |||
1123 | serge | 126 | |
127 | |||
128 | |||
129 | |||
130 | |||
1117 | serge | 131 | |
132 | |||
133 | void* memset(void *s, int c, size_t n); |
||
134 | size_t strlen(const char *s); |
||
135 | char *strncpy (char *dst, const char *src, size_t len); |
||
1123 | serge | 136 | |
1117 | serge | 137 | |
138 | |||
139 | |||
1123 | serge | 140 | #define kfree free |
1117 | serge | 141 | |
142 | |||
143 | { |
||
144 | void *ret = malloc(size); |
||
145 | memset(ret, 0, size); |
||
146 | return ret; |
||
147 | } |
||
148 | |||
149 | |||
150 | |||
151 | |||
152 | // struct kref refcount; |
||
153 | |||
154 | |||
155 | // struct kref handlecount; |
||
156 | |||
157 | |||
158 | // struct drm_device *dev; |
||
159 | |||
160 | |||
161 | // struct file *filp; |
||
162 | |||
163 | |||
164 | // struct drm_map_list map_list; |
||
165 | |||
166 | |||
167 | * Size of the object, in bytes. Immutable over the object's |
||
168 | * lifetime. |
||
169 | */ |
||
170 | size_t size; |
||
171 | |||
172 | |||
173 | * Global name for this object, starts at 1. 0 means unnamed. |
||
174 | * Access is covered by the object_name_lock in the related drm_device |
||
175 | */ |
||
176 | int name; |
||
177 | |||
178 | |||
179 | * Memory domains. These monitor which caches contain read/write data |
||
180 | * related to the object. When transitioning from one set of domains |
||
181 | * to another, the driver is called to ensure that caches are suitably |
||
182 | * flushed and invalidated |
||
183 | */ |
||
184 | uint32_t read_domains; |
||
185 | uint32_t write_domain; |
||
186 | |||
187 | |||
188 | * While validating an exec operation, the |
||
189 | * new read/write domain values are computed here. |
||
190 | * They will be transferred to the above values |
||
191 | * at the point that any cache flushing occurs |
||
192 | */ |
||
193 | uint32_t pending_read_domains; |
||
194 | uint32_t pending_write_domain; |
||
195 | |||
196 | |||
197 | }; |
||
198 | |||
199 | |||
200 | |||
201 | |||
202 | |||
203 | |||
204 | const typeof( ((type *)0)->member ) *__mptr = (ptr); \ |
||
205 | (type *)( (char *)__mptr - offsetof(type,member) );}) |
||
206 | |||
207 | |||
208 | |||
209 | |||
210 | #define mb() __asm__ __volatile__("lock; addl $0,0(%esp)") |
||
1119 | serge | 211 | |
1117 | serge | 212 | |
1119 | serge | 213 | #define PAGE_SHIFT 12 |
214 | |||
1117 | serge | 215 | |
1119 | serge | 216 | |
1117 | serge | 217 | |
1123 | serge | 218 | { |
219 | if (nbits <= BITS_PER_LONG) |
||
220 | *dst = 0UL; |
||
221 | else { |
||
222 | int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long); |
||
223 | memset(dst, 0, len); |
||
224 | } |
||
225 | } |
||
226 | |||
1119 | serge | 227 | |
1123 | serge | 228 | |
229 | |||
230 | typeof(x) _x = (x); \ |
||
231 | typeof(y) _y = (y); \ |
||
232 | (void) (&_x == &_y); \ |
||
233 | _x < _y ? _x : _y; }) |
||
234 | |||
235 | |||
236 | typeof(x) _x = (x); \ |
||
237 | typeof(y) _y = (y); \ |
||
238 | (void) (&_x == &_y); \ |
||
239 | _x > _y ? _x : _y; }) |
||
240 | |||
241 | |||
242 | |||
243 | |||
244 | |||
245 | uint32_t __base = (base); \ |
||
246 | uint32_t __rem; \ |
||
247 | (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \ |
||
248 | if (likely(((n) >> 32) == 0)) { \ |
||
249 | __rem = (uint32_t)(n) % __base; \ |
||
250 | (n) = (uint32_t)(n) / __base; \ |
||
251 | } else \ |
||
252 | __rem = __div64_32(&(n), __base); \ |
||
253 | __rem; \ |
||
254 | }) |
||
255 | |||
256 | |||
257 | |||
258 | |||
259 | #define INT_MIN (-INT_MAX - 1) |
||
260 | #define UINT_MAX (~0U) |
||
261 | #define LONG_MAX ((long)(~0UL>>1)) |
||
262 | #define LONG_MIN (-LONG_MAX - 1) |
||
263 | #define ULONG_MAX (~0UL) |
||
264 | #define LLONG_MAX ((long long)(~0ULL>>1)) |
||
265 | #define LLONG_MIN (-LLONG_MAX - 1) |
||
266 | #define ULLONG_MAX (~0ULL) |
||
267 | |||
268 | |||
269 | |||
270 | { |
||
271 | if (n != 0 && size > ULONG_MAX / n) |
||
272 | return NULL; |
||
273 | return kzalloc(n * size, 0); |
||
1125 | serge | 274 | } |
1123 | serge | 275 | |
276 | |||
1125 | serge | 277 | #define LEAVE() dbgprintf("leave %s\n",__FUNCTION__) |
278 | |||
279 | |||
1117 | serge | 280 |