54cf70eaa01f250f27133f39ef6cea9a3df8a149
[platform/upstream/btrfs-progs.git] / kerncompat.h
1 #ifndef __KERNCOMPAT
2 #define __KERNCOMPAT
3 #define gfp_t int
4 #define get_cpu_var(p) (p)
5 #define __get_cpu_var(p) (p)
6 #define BITS_PER_LONG 64
7 #define __GFP_BITS_SHIFT 20
8 #define __GFP_BITS_MASK ((int)((1 << __GFP_BITS_SHIFT) - 1))
9 #define GFP_KERNEL 0
10 #define __read_mostly
11 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
12 #define PAGE_SHIFT 12
13 #define ULONG_MAX       (~0UL)
14 #define BUG() abort()
15 #ifdef __CHECKER__
16 #define __force    __attribute__((force))
17 #define __bitwise__ __attribute__((bitwise))
18 #else
19 #define __force
20 #define __bitwise__
21 #endif
22
23 typedef unsigned int u32;
24 typedef unsigned long long u64;
25 typedef unsigned char u8;
26 typedef unsigned short u16;
27
28 typedef unsigned long pgoff_t;
29
30 #include <stdio.h>
31 #include <stdlib.h>
32 #include <string.h>
33
34 struct vma_shared { int prio_tree_node; };
35 struct vm_area_struct {
36         unsigned long vm_pgoff;
37         unsigned long vm_start;
38         unsigned long vm_end;
39         struct vma_shared shared;
40 };
41
42 struct page {
43         unsigned long index;
44 };
45
46 static inline void preempt_enable(void) { do {; } while(0);}
47 static inline void preempt_disable(void) { do {; } while(0);}
48
49 static inline void __set_bit(int bit, unsigned long *map) {
50         unsigned long *p = map + bit / BITS_PER_LONG;
51         bit = bit & (BITS_PER_LONG -1);
52         *p |= 1UL << bit;
53 }
54
55 static inline int test_bit(int bit, unsigned long *map) {
56         unsigned long *p = map + bit / BITS_PER_LONG;
57         bit = bit & (BITS_PER_LONG -1);
58         return *p & (1UL << bit) ? 1 : 0;
59 }
60
61 static inline void __clear_bit(int bit, unsigned long *map) {
62         unsigned long *p = map + bit / BITS_PER_LONG;
63         bit = bit & (BITS_PER_LONG -1);
64         *p &= ~(1UL << bit);
65 }
66 #define BUG_ON(c) do { if (c) abort(); } while (0)
67
68 #define container_of(ptr, type, member) ({                      \
69         const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
70                 (type *)( (char *)__mptr - __builtin_offsetof(type,member) );})
71
72 #endif
73
74 #define ENOMEM 5
75 #define EEXIST 6
76
77 #define __CHECK_ENDIAN__
78 #ifdef __CHECK_ENDIAN__
79 #define __bitwise __bitwise__
80 #else
81 #define __bitwise
82 #endif
83
84 typedef u16 __bitwise __le16;
85 typedef u16 __bitwise __be16;
86 typedef u32 __bitwise __le32;
87 typedef u32 __bitwise __be32;
88 typedef u64 __bitwise __le64;
89 typedef u64 __bitwise __be64;
90
91 #define cpu_to_le64(x) ((__force __le64)(u64)(x))
92 #define le64_to_cpu(x) ((__force u64)(__le64)(x))
93 #define cpu_to_le32(x) ((__force __le32)(u32)(x))
94 #define le32_to_cpu(x) ((__force u32)(__le32)(x))
95 #define cpu_to_le16(x) ((__force __le16)(u16)(x))
96 #define le16_to_cpu(x) ((__force u16)(__le16)(x))