1#ifndef _LINUX_KERNEL_H
2#define _LINUX_KERNEL_H
3
4
5
6
7
8#ifdef __KERNEL__
9
10#include <stdarg.h>
11#include <linux/linkage.h>
12
13
14
15#define barrier() __asm__ __volatile__("": : :"memory")
16
17#define INT_MAX ((int)(~0U>>1))
18#define UINT_MAX (~0U)
19#define LONG_MAX ((long)(~0UL>>1))
20#define ULONG_MAX (~0UL)
21
22#define STACK_MAGIC 0xdeadbeef
23
24#define KERN_EMERG "<0>"
25#define KERN_ALERT "<1>"
26#define KERN_CRIT "<2>"
27#define KERN_ERR "<3>"
28#define KERN_WARNING "<4>"
29#define KERN_NOTICE "<5>"
30#define KERN_INFO "<6>"
31#define KERN_DEBUG "<7>"
32
33# define NORET_TYPE
34# define ATTRIB_NORET __attribute__((noreturn))
35# define NORET_AND noreturn,
36
37#ifdef __i386__
38#define FASTCALL(x) x __attribute__((regparm(3)))
39#else
40#define FASTCALL(x) x
41#endif
42
43extern void math_error(void);
44NORET_TYPE void panic(const char * fmt, ...)
45 __attribute__ ((NORET_AND format (printf, 1, 2)));
46NORET_TYPE void do_exit(long error_code)
47 ATTRIB_NORET;
48extern unsigned long simple_strtoul(const char *,char **,unsigned int);
49extern long simple_strtol(const char *,char **,unsigned int);
50extern int sprintf(char * buf, const char * fmt, ...);
51extern int vsprintf(char *buf, const char *, va_list);
52
53extern int session_of_pgrp(int pgrp);
54
55asmlinkage int printk(const char * fmt, ...)
56 __attribute__ ((format (printf, 1, 2)));
57
58#if DEBUG
59#define pr_debug(fmt,arg...) \
60 printk(KERN_DEBUG fmt,##arg)
61#else
62#define pr_debug(fmt,arg...) \
63 do { } while (0)
64#endif
65
66#define pr_info(fmt,arg...) \
67 printk(KERN_INFO fmt,##arg)
68
69
70
71
72
73#define NIPQUAD(addr) \
74 ((unsigned char *)&addr)[0], \
75 ((unsigned char *)&addr)[1], \
76 ((unsigned char *)&addr)[2], \
77 ((unsigned char *)&addr)[3]
78
79#endif
80
81#define SI_LOAD_SHIFT 16
82struct sysinfo {
83 long uptime;
84 unsigned long loads[3];
85 unsigned long totalram;
86 unsigned long freeram;
87 unsigned long sharedram;
88 unsigned long bufferram;
89 unsigned long totalswap;
90 unsigned long freeswap;
91 unsigned short procs;
92 char _f[22];
93};
94
95#endif
96