blob: 76a88f35fdc446f01bd7300d8ff21c1b7a1c8a95 [file] [log] [blame]
Matthew Wilcox1366c372016-03-17 14:21:45 -07001#ifndef _KERNEL_H
2#define _KERNEL_H
3
4#include <assert.h>
5#include <string.h>
6#include <stdio.h>
7#include <stddef.h>
8#include <limits.h>
9
Matthew Wilcoxf518b162016-05-20 17:01:36 -070010#include "../../include/linux/compiler.h"
11
Matthew Wilcoxd42cb1a2016-05-20 17:01:39 -070012#define CONFIG_SHMEM
13#define CONFIG_SWAP
14
Matthew Wilcox1366c372016-03-17 14:21:45 -070015#ifndef NULL
16#define NULL 0
17#endif
18
19#define BUG_ON(expr) assert(!(expr))
Matthew Wilcoxf518b162016-05-20 17:01:36 -070020#define WARN_ON(expr) assert(!(expr))
Matthew Wilcox1366c372016-03-17 14:21:45 -070021#define __init
Konstantin Khlebnikov2d6f45b2016-03-17 14:22:08 -070022#define __must_check
Matthew Wilcox1366c372016-03-17 14:21:45 -070023#define panic(expr)
24#define printk printf
25#define __force
Matthew Wilcox1366c372016-03-17 14:21:45 -070026#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
Matthew Wilcoxf518b162016-05-20 17:01:36 -070027#define pr_debug printk
28
29#define smp_rmb() barrier()
30#define smp_wmb() barrier()
31#define cpu_relax() barrier()
Matthew Wilcox1366c372016-03-17 14:21:45 -070032
33#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
34
35#define container_of(ptr, type, member) ({ \
36 const typeof( ((type *)0)->member ) *__mptr = (ptr); \
37 (type *)( (char *)__mptr - offsetof(type, member) );})
38#define min(a, b) ((a) < (b) ? (a) : (b))
39
Matthew Wilcoxf518b162016-05-20 17:01:36 -070040#define cond_resched() sched_yield()
41
Matthew Wilcox1366c372016-03-17 14:21:45 -070042static inline int in_interrupt(void)
43{
44 return 0;
45}
46#endif /* _KERNEL_H */