blob: 6d0cdf61808444972dd64c1b0f2d1d391f5eda5d [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 Wilcox1366c372016-03-17 14:21:45 -070012#ifndef NULL
13#define NULL 0
14#endif
15
16#define BUG_ON(expr) assert(!(expr))
Matthew Wilcoxf518b162016-05-20 17:01:36 -070017#define WARN_ON(expr) assert(!(expr))
Matthew Wilcox1366c372016-03-17 14:21:45 -070018#define __init
Konstantin Khlebnikov2d6f45b2016-03-17 14:22:08 -070019#define __must_check
Matthew Wilcox1366c372016-03-17 14:21:45 -070020#define panic(expr)
21#define printk printf
22#define __force
Matthew Wilcox1366c372016-03-17 14:21:45 -070023#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
Matthew Wilcoxf518b162016-05-20 17:01:36 -070024#define pr_debug printk
25
26#define smp_rmb() barrier()
27#define smp_wmb() barrier()
28#define cpu_relax() barrier()
Matthew Wilcox1366c372016-03-17 14:21:45 -070029
30#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
31
32#define container_of(ptr, type, member) ({ \
33 const typeof( ((type *)0)->member ) *__mptr = (ptr); \
34 (type *)( (char *)__mptr - offsetof(type, member) );})
35#define min(a, b) ((a) < (b) ? (a) : (b))
36
Matthew Wilcoxf518b162016-05-20 17:01:36 -070037#define cond_resched() sched_yield()
38
Matthew Wilcox1366c372016-03-17 14:21:45 -070039static inline int in_interrupt(void)
40{
41 return 0;
42}
43#endif /* _KERNEL_H */