blob: f0c8464db5a47b5517f8117f001bb92c0f8338cc [file] [log] [blame]
Wolfgang Denk932394a2005-08-17 12:55:25 +02001#ifndef _LINUX_COMPAT_H_
2#define _LINUX_COMPAT_H_
3
4#define __user
5#define __iomem
6
7#define ndelay(x) udelay(1)
8
9#define printk printf
10
11#define KERN_EMERG
12#define KERN_ALERT
13#define KERN_CRIT
14#define KERN_ERR
15#define KERN_WARNING
16#define KERN_NOTICE
17#define KERN_INFO
18#define KERN_DEBUG
19
20#define kmalloc(size, flags) malloc(size)
William Juul5e1dae52007-11-09 13:32:30 +010021#define kzalloc(size, flags) calloc(size, 1)
Stefan Roese0a572652009-05-12 14:29:39 +020022#define vmalloc(size) malloc(size)
23#define kfree(ptr) free(ptr)
24#define vfree(ptr) free(ptr)
William Juulcfa460a2007-10-31 13:53:06 +010025
Stefan Roese0a572652009-05-12 14:29:39 +020026#define DECLARE_WAITQUEUE(...) do { } while (0)
27#define add_wait_queue(...) do { } while (0)
28#define remove_wait_queue(...) do { } while (0)
29
30#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
Wolfgang Denk932394a2005-08-17 12:55:25 +020031
32/*
33 * ..and if you can't take the strict
34 * types, you can specify one yourself.
35 *
36 * Or not use min/max at all, of course.
37 */
38#define min_t(type,x,y) \
39 ({ type __x = (x); type __y = (y); __x < __y ? __x: __y; })
40#define max_t(type,x,y) \
41 ({ type __x = (x); type __y = (y); __x > __y ? __x: __y; })
42
Stefan Roese887e2ec2006-09-07 11:51:23 +020043#ifndef BUG
Wolfgang Denk932394a2005-08-17 12:55:25 +020044#define BUG() do { \
45 printf("U-Boot BUG at %s:%d!\n", __FILE__, __LINE__); \
46} while (0)
47
48#define BUG_ON(condition) do { if (condition) BUG(); } while(0)
Stefan Roese887e2ec2006-09-07 11:51:23 +020049#endif /* BUG */
Wolfgang Denk932394a2005-08-17 12:55:25 +020050
51#define likely(x) __builtin_expect(!!(x), 1)
52#define unlikely(x) __builtin_expect(!!(x), 0)
53
54#define PAGE_SIZE 4096
55#endif