blob: 9036b74f86e24045b70829de2f03b2e4083a96cc [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)
William Juulcfa460a2007-10-31 13:53:06 +010022#define vmalloc(size) malloc(size)
William Juul5e1dae52007-11-09 13:32:30 +010023#define kfree(ptr) free(ptr)
24#define vfree(ptr) free(ptr)
William Juulcfa460a2007-10-31 13:53:06 +010025
26#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
Wolfgang Denk932394a2005-08-17 12:55:25 +020027
28/*
29 * ..and if you can't take the strict
30 * types, you can specify one yourself.
31 *
32 * Or not use min/max at all, of course.
33 */
34#define min_t(type,x,y) \
35 ({ type __x = (x); type __y = (y); __x < __y ? __x: __y; })
36#define max_t(type,x,y) \
37 ({ type __x = (x); type __y = (y); __x > __y ? __x: __y; })
38
Stefan Roese887e2ec2006-09-07 11:51:23 +020039#ifndef BUG
Wolfgang Denk932394a2005-08-17 12:55:25 +020040#define BUG() do { \
41 printf("U-Boot BUG at %s:%d!\n", __FILE__, __LINE__); \
42} while (0)
43
44#define BUG_ON(condition) do { if (condition) BUG(); } while(0)
Stefan Roese887e2ec2006-09-07 11:51:23 +020045#endif /* BUG */
Wolfgang Denk932394a2005-08-17 12:55:25 +020046
47#define likely(x) __builtin_expect(!!(x), 1)
48#define unlikely(x) __builtin_expect(!!(x), 0)
49
50#define PAGE_SIZE 4096
51#endif