Rev 1119 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1119 | Rev 1123 | ||
---|---|---|---|
Line 36... | Line 36... | ||
36 | typedef unsigned short u16_t; |
36 | typedef unsigned short u16_t; |
37 | typedef unsigned int u32_t; |
37 | typedef unsigned int u32_t; |
38 | typedef unsigned long long u64_t; |
38 | typedef unsigned long long u64_t; |
39 | 39 | ||
Line -... | Line 40... | ||
- | 40 | typedef signed char int8_t; |
|
- | 41 | typedef signed long long int64_t; |
|
- | 42 | ||
40 | #define NULL (void*)0 |
43 | #define NULL (void*)0 |
Line 41... | Line 44... | ||
41 | 44 | ||
42 | typedef uint32_t dma_addr_t; |
45 | typedef uint32_t dma_addr_t; |
Line 53... | Line 56... | ||
53 | 56 | ||
Line 54... | Line 57... | ||
54 | #define likely(x) __builtin_expect(!!(x), 1) |
57 | #define likely(x) __builtin_expect(!!(x), 1) |
55 | #define unlikely(x) __builtin_expect(!!(x), 0) |
58 | #define unlikely(x) __builtin_expect(!!(x), 0) |
Line -... | Line 59... | ||
- | 59 | ||
- | 60 | #define BITS_PER_LONG 32 |
|
- | 61 | ||
- | 62 | #define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d)) |
|
- | 63 | ||
- | 64 | #define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, BITS_PER_LONG) |
|
- | 65 | ||
- | 66 | #define DECLARE_BITMAP(name,bits) \ |
|
Line 56... | Line 67... | ||
56 | 67 | unsigned long name[BITS_TO_LONGS(bits)] |
|
57 | 68 | ||
58 | 69 | ||
Line 113... | Line 124... | ||
113 | int dbgprintf(const char* format, ...); |
124 | int dbgprintf(const char* format, ...); |
Line 114... | Line 125... | ||
114 | 125 | ||
Line -... | Line 126... | ||
- | 126 | #define GFP_KERNEL 0 |
|
- | 127 | ||
- | 128 | //#include |
|
- | 129 | ||
- | 130 | int snprintf(char *str, size_t size, const char *format, ...); |
|
115 | #define GFP_KERNEL 0 |
131 | |
Line 116... | Line 132... | ||
116 | 132 | ||
117 | //#include |
133 | //#include |
118 | 134 | ||
- | 135 | void* memcpy(void *s1, const void *s2, size_t n); |
|
Line 119... | Line 136... | ||
119 | void* memcpy(void *s1, const void *s2, size_t n); |
136 | void* memset(void *s, int c, size_t n); |
Line -... | Line 137... | ||
- | 137 | size_t strlen(const char *s); |
|
120 | void* memset(void *s, int c, size_t n); |
138 | char *strncpy (char *dst, const char *src, size_t len); |
Line 121... | Line 139... | ||
121 | size_t strlen(const char *s); |
139 | |
122 | 140 | void *malloc(size_t size); |
|
123 | void *malloc(size_t size); |
141 | |
Line 198... | Line 216... | ||
198 | #define PAGE_SHIFT 12 |
216 | #define PAGE_SHIFT 12 |
199 | 217 | ||
Line 200... | Line 218... | ||
200 | #define upper_32_bits(n) ((u32)(((n) >> 16) >> 16)) |
218 | #define upper_32_bits(n) ((u32)(((n) >> 16) >> 16)) |
Line -... | Line 219... | ||
- | 219 | ||
- | 220 | static inline void bitmap_zero(unsigned long *dst, int nbits) |
|
- | 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 | ||
- | 230 | #define EXPORT_SYMBOL(x) |
|
- | 231 | ||
- | 232 | #define IDR_BITS 5 |
|
- | 233 | #define IDR_FULL 0xfffffffful |
|
- | 234 | ||
- | 235 | struct idr_layer { |
|
- | 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 | struct idr { |
|
- | 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 | #define min(x,y) ({ \ |
|
- | 251 | typeof(x) _x = (x); \ |
|
- | 252 | typeof(y) _y = (y); \ |
|
- | 253 | (void) (&_x == &_y); \ |
|
- | 254 | _x < _y ? _x : _y; }) |
|
- | 255 | ||
- | 256 | #define max(x,y) ({ \ |
|
- | 257 | typeof(x) _x = (x); \ |
|
- | 258 | typeof(y) _y = (y); \ |
|
- | 259 | (void) (&_x == &_y); \ |
|
- | 260 | _x > _y ? _x : _y; }) |
|
- | 261 | ||
- | 262 | ||
- | 263 | extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor); |
|
- | 264 | ||
- | 265 | # define do_div(n,base) ({ \ |
|
- | 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 | #define lower_32_bits(n) ((u32)(n)) |
|
- | 278 | ||
- | 279 | #define INT_MAX ((int)(~0U>>1)) |
|
- | 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 | static inline void *kcalloc(size_t n, size_t size, u32_t flags) |
|
- | 291 | { |
|
- | 292 | if (n != 0 && size > ULONG_MAX / n) |
|
- | 293 | return NULL; |
|
- | 294 | return kmalloc(n * size, 0); |
|
Line 201... | Line 295... | ||
201 | 295 | } |