sync up with kernel sources
[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 GFP_NOFS 0
11 #define __read_mostly
12 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
13 #define PAGE_SHIFT 12
14 #define ULONG_MAX       (~0UL)
15 #define BUG() abort()
16 #ifdef __CHECKER__
17 #define __force    __attribute__((force))
18 #define __bitwise__ __attribute__((bitwise))
19 #else
20 #define __force
21 #define __bitwise__
22 #endif
23
24 typedef unsigned int u32;
25 typedef u32 __u32;
26 typedef unsigned long long u64;
27 typedef unsigned char u8;
28 typedef unsigned short u16;
29
30 typedef unsigned long pgoff_t;
31
32 #include <stdio.h>
33 #include <stdlib.h>
34 #include <string.h>
35
36 struct vma_shared { int prio_tree_node; };
37 struct vm_area_struct {
38         unsigned long vm_pgoff;
39         unsigned long vm_start;
40         unsigned long vm_end;
41         struct vma_shared shared;
42 };
43
44 struct page {
45         unsigned long index;
46 };
47
48 static inline void preempt_enable(void) { do {; } while(0);}
49 static inline void preempt_disable(void) { do {; } while(0);}
50
51 static inline void __set_bit(int bit, unsigned long *map) {
52         unsigned long *p = map + bit / BITS_PER_LONG;
53         bit = bit & (BITS_PER_LONG -1);
54         *p |= 1UL << bit;
55 }
56
57 static inline int test_bit(int bit, unsigned long *map) {
58         unsigned long *p = map + bit / BITS_PER_LONG;
59         bit = bit & (BITS_PER_LONG -1);
60         return *p & (1UL << bit) ? 1 : 0;
61 }
62
63 static inline void __clear_bit(int bit, unsigned long *map) {
64         unsigned long *p = map + bit / BITS_PER_LONG;
65         bit = bit & (BITS_PER_LONG -1);
66         *p &= ~(1UL << bit);
67 }
68 #define BUG_ON(c) do { if (c) abort(); } while (0)
69
70 #define container_of(ptr, type, member) ({                      \
71         const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
72                 (type *)( (char *)__mptr - __builtin_offsetof(type,member) );})
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))
97 #endif