transaction handles everywhere
[btrfs-progs-unstable.git] / kerncompat.h
blob105d3f5840896f08f7c9d27500e6c61d5c0e6fc0
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
23 typedef unsigned int u32;
24 typedef u32 __u32;
25 typedef unsigned long long u64;
26 typedef unsigned char u8;
27 typedef unsigned short u16;
29 typedef unsigned long pgoff_t;
31 #include <stdio.h>
32 #include <stdlib.h>
33 #include <string.h>
35 struct vma_shared { int prio_tree_node; };
36 struct vm_area_struct {
37 unsigned long vm_pgoff;
38 unsigned long vm_start;
39 unsigned long vm_end;
40 struct vma_shared shared;
43 struct page {
44 unsigned long index;
47 static inline void preempt_enable(void) { do {; } while(0);}
48 static inline void preempt_disable(void) { do {; } while(0);}
50 static inline void __set_bit(int bit, unsigned long *map) {
51 unsigned long *p = map + bit / BITS_PER_LONG;
52 bit = bit & (BITS_PER_LONG -1);
53 *p |= 1UL << bit;
56 static inline int test_bit(int bit, unsigned long *map) {
57 unsigned long *p = map + bit / BITS_PER_LONG;
58 bit = bit & (BITS_PER_LONG -1);
59 return *p & (1UL << bit) ? 1 : 0;
62 static inline void __clear_bit(int bit, unsigned long *map) {
63 unsigned long *p = map + bit / BITS_PER_LONG;
64 bit = bit & (BITS_PER_LONG -1);
65 *p &= ~(1UL << bit);
67 #define BUG_ON(c) do { if (c) abort(); } while (0)
69 #define container_of(ptr, type, member) ({ \
70 const typeof( ((type *)0)->member ) *__mptr = (ptr); \
71 (type *)( (char *)__mptr - __builtin_offsetof(type,member) );})
73 #define ENOMEM 5
74 #define EEXIST 6
76 #define __CHECK_ENDIAN__
77 #ifdef __CHECK_ENDIAN__
78 #define __bitwise __bitwise__
79 #else
80 #define __bitwise
81 #endif
83 typedef u16 __bitwise __le16;
84 typedef u16 __bitwise __be16;
85 typedef u32 __bitwise __le32;
86 typedef u32 __bitwise __be32;
87 typedef u64 __bitwise __le64;
88 typedef u64 __bitwise __be64;
90 #define cpu_to_le64(x) ((__force __le64)(u64)(x))
91 #define le64_to_cpu(x) ((__force u64)(__le64)(x))
92 #define cpu_to_le32(x) ((__force __le32)(u32)(x))
93 #define le32_to_cpu(x) ((__force u32)(__le32)(x))
94 #define cpu_to_le16(x) ((__force __le16)(u16)(x))
95 #define le16_to_cpu(x) ((__force u16)(__le16)(x))
96 #endif