1*53ee8cc1Swenshuai.xi #ifndef _LINUX_KERNEL_H 2*53ee8cc1Swenshuai.xi #define _LINUX_KERNEL_H 3*53ee8cc1Swenshuai.xi 4*53ee8cc1Swenshuai.xi /* 5*53ee8cc1Swenshuai.xi * 'kernel.h' contains some often-used function prototypes etc 6*53ee8cc1Swenshuai.xi */ 7*53ee8cc1Swenshuai.xi 8*53ee8cc1Swenshuai.xi 9*53ee8cc1Swenshuai.xi #define SI_LOAD_SHIFT 16 10*53ee8cc1Swenshuai.xi struct sysinfo { 11*53ee8cc1Swenshuai.xi long uptime; /* Seconds since boot */ 12*53ee8cc1Swenshuai.xi unsigned long loads[3]; /* 1, 5, and 15 minute load averages */ 13*53ee8cc1Swenshuai.xi unsigned long totalram; /* Total usable main memory size */ 14*53ee8cc1Swenshuai.xi unsigned long freeram; /* Available memory size */ 15*53ee8cc1Swenshuai.xi unsigned long sharedram; /* Amount of shared memory */ 16*53ee8cc1Swenshuai.xi unsigned long bufferram; /* Memory used by buffers */ 17*53ee8cc1Swenshuai.xi unsigned long totalswap; /* Total swap space size */ 18*53ee8cc1Swenshuai.xi unsigned long freeswap; /* swap space still available */ 19*53ee8cc1Swenshuai.xi unsigned short procs; /* Number of current processes */ 20*53ee8cc1Swenshuai.xi unsigned short pad; /* explicit padding for m68k */ 21*53ee8cc1Swenshuai.xi unsigned long totalhigh; /* Total high memory size */ 22*53ee8cc1Swenshuai.xi unsigned long freehigh; /* Available high memory size */ 23*53ee8cc1Swenshuai.xi unsigned int mem_unit; /* Memory unit size in bytes */ 24*53ee8cc1Swenshuai.xi char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */ 25*53ee8cc1Swenshuai.xi }; 26*53ee8cc1Swenshuai.xi 27*53ee8cc1Swenshuai.xi /* Force a compilation error if condition is true */ 28*53ee8cc1Swenshuai.xi #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) 29*53ee8cc1Swenshuai.xi 30*53ee8cc1Swenshuai.xi /* Force a compilation error if condition is true, but also produce a 31*53ee8cc1Swenshuai.xi result (of value 0 and type size_t), so the expression can be used 32*53ee8cc1Swenshuai.xi e.g. in a structure initializer (or where-ever else comma expressions 33*53ee8cc1Swenshuai.xi aren't permitted). */ 34*53ee8cc1Swenshuai.xi #define BUILD_BUG_ON_ZERO(e) (sizeof(char[1 - 2 * !!(e)]) - 1) 35*53ee8cc1Swenshuai.xi 36*53ee8cc1Swenshuai.xi /* Trap pasters of __FUNCTION__ at compile-time */ 37*53ee8cc1Swenshuai.xi #define __FUNCTION__ (__func__) 38*53ee8cc1Swenshuai.xi 39*53ee8cc1Swenshuai.xi /* This helps us to avoid #ifdef CONFIG_NUMA */ 40*53ee8cc1Swenshuai.xi #ifdef CONFIG_NUMA 41*53ee8cc1Swenshuai.xi #define NUMA_BUILD 1 42*53ee8cc1Swenshuai.xi #else 43*53ee8cc1Swenshuai.xi #define NUMA_BUILD 0 44*53ee8cc1Swenshuai.xi #endif 45*53ee8cc1Swenshuai.xi 46*53ee8cc1Swenshuai.xi #endif 47