home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lxapi32.zip / Include / Linux / kernel.h < prev    next >
C/C++ Source or Header  |  2002-04-26  |  3KB  |  105 lines

  1. /* $Id: kernel.h,v 1.2 2002/04/26 23:09:08 smilcke Exp $ */
  2.  
  3. #ifndef _LINUX_KERNEL_H
  4. #define _LINUX_KERNEL_H
  5.  
  6. /*
  7.  * 'kernel.h' contains some often-used function prototypes etc
  8.  */
  9.  
  10. #ifdef __KERNEL__
  11.  
  12. #include <stdarg.h>
  13. //#include <linux/linkage.h>
  14.  
  15. /* Optimization barrier */
  16. /* The "volatile" is due to gcc bugs */
  17. //#define barrier() __asm__ __volatile__("": : :"memory")
  18. #define barrier()
  19.  
  20. #define STACK_MAGIC    0xdeadbeef
  21.  
  22. #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
  23.  
  24. #define    KERN_EMERG    "<0>"    /* system is unusable            */
  25. #define    KERN_ALERT    "<1>"    /* action must be taken immediately    */
  26. #define    KERN_CRIT    "<2>"    /* critical conditions            */
  27. #define    KERN_ERR    "<3>"    /* error conditions            */
  28. #define    KERN_WARNING    "<4>"    /* warning conditions            */
  29. #define    KERN_NOTICE    "<5>"    /* normal but significant condition    */
  30. #define    KERN_INFO    "<6>"    /* informational            */
  31. #define    KERN_DEBUG    "<7>"    /* debug-level messages            */
  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.  
  43. extern void math_error(void);
  44. extern struct notifier_block *panic_notifier_list;
  45. NORET_TYPE void panic(const char * fmt, ...);
  46.  
  47. NORET_TYPE void do_exit(long error_code);
  48.  
  49. extern unsigned long simple_strtoul(const char *,char **,unsigned int);
  50. extern long simple_strtol(const char *,char **,unsigned int);
  51. extern int sprintf(char * buf, const char * fmt, ...);
  52. extern int vsprintf(char *buf, const char *, va_list);
  53. extern int get_option(char **str, int *pint);
  54. extern char *get_options(char *str, int nints, int *ints);
  55.  
  56. extern int session_of_pgrp(int pgrp);
  57.  
  58. extern int printk(const char * fmt, ...);
  59. // Conditional printk
  60. #ifdef USEPRINTK
  61. #define CPK(x) (x)
  62. #else
  63. #define CPK(x)
  64. #endif
  65.  
  66. #if DEBUG
  67. #define pr_debug(fmt,arg)
  68. #else
  69. #define pr_debug(fmt,arg)
  70. #endif
  71.  
  72. #define pr_info(fmt,arg) \
  73.     printk(KERN_INFO fmt,##arg)
  74.  
  75. /*
  76.  *      Display an IP address in readable format.
  77.  */
  78.  
  79. #define NIPQUAD(addr) \
  80.     ((unsigned char *)&addr)[0], \
  81.     ((unsigned char *)&addr)[1], \
  82.     ((unsigned char *)&addr)[2], \
  83.     ((unsigned char *)&addr)[3]
  84.  
  85. #endif /* __KERNEL__ */
  86.  
  87. #define SI_LOAD_SHIFT    16
  88. struct sysinfo {
  89.     long uptime;            /* Seconds since boot */
  90.     unsigned long loads[3];        /* 1, 5, and 15 minute load averages */
  91.     unsigned long totalram;        /* Total usable main memory size */
  92.     unsigned long freeram;        /* Available memory size */
  93.     unsigned long sharedram;    /* Amount of shared memory */
  94.     unsigned long bufferram;    /* Memory used by buffers */
  95.     unsigned long totalswap;    /* Total swap space size */
  96.     unsigned long freeswap;        /* swap space still available */
  97.     unsigned short procs;        /* Number of current processes */
  98.     unsigned long totalhigh;    /* Total high memory size */
  99.     unsigned long freehigh;        /* Available high memory size */
  100.     unsigned int mem_unit;        /* Memory unit size in bytes */
  101.     char _f[20-2*sizeof(long)-sizeof(int)];    /* Padding: libc5 uses this.. */
  102. };
  103.  
  104. #endif
  105.