blob: 39c693f7a8c0a50ab1addfe1b90696908dd373e1 [file] [log] [blame]
Wolfgang Denk2f9b7e42005-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 Juul9e9c2c12007-11-09 13:32:30 +010021#define kzalloc(size, flags) calloc(size, 1)
Stefan Roesee0860d42009-05-12 14:29:39 +020022#define vmalloc(size) malloc(size)
23#define kfree(ptr) free(ptr)
24#define vfree(ptr) free(ptr)
25
26#define DECLARE_WAITQUEUE(...) do { } while (0)
27#define add_wait_queue(...) do { } while (0)
28#define remove_wait_queue(...) do { } while (0)
William Juul52c07962007-10-31 13:53:06 +010029
Stefan Roesee0860d42009-05-12 14:29:39 +020030#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
Wolfgang Denk2f9b7e42005-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 Roese42fbddd2006-09-07 11:51:23 +020043#ifndef BUG
Wolfgang Denk2f9b7e42005-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 Roese42fbddd2006-09-07 11:51:23 +020049#endif /* BUG */
Wolfgang Denk2f9b7e42005-08-17 12:55:25 +020050
Wolfgang Denk2f9b7e42005-08-17 12:55:25 +020051#define PAGE_SIZE 4096
52#endif