linux-old/include/linux/kernel.h
<<
>>
Prefs
   1#ifndef _LINUX_KERNEL_H
   2#define _LINUX_KERNEL_H
   3
   4/*
   5 * 'kernel.h' contains some often-used function prototypes etc
   6 */
   7
   8#ifdef __KERNEL__
   9
  10#include <stdarg.h>
  11#include <linux/linkage.h>
  12#include <linux/stddef.h>
  13
  14/* Optimization barrier */
  15/* The "volatile" is due to gcc bugs */
  16#define barrier() __asm__ __volatile__("": : :"memory")
  17
  18#define INT_MAX         ((int)(~0U>>1))
  19#define INT_MIN         (-INT_MAX - 1)
  20#define UINT_MAX        (~0U)
  21#define LONG_MAX        ((long)(~0UL>>1))
  22#define LONG_MIN        (-LONG_MAX - 1)
  23#define ULONG_MAX       (~0UL)
  24
  25#define STACK_MAGIC     0xdeadbeef
  26
  27#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
  28
  29#define KERN_EMERG      "<0>"   /* system is unusable                   */
  30#define KERN_ALERT      "<1>"   /* action must be taken immediately     */
  31#define KERN_CRIT       "<2>"   /* critical conditions                  */
  32#define KERN_ERR        "<3>"   /* error conditions                     */
  33#define KERN_WARNING    "<4>"   /* warning conditions                   */
  34#define KERN_NOTICE     "<5>"   /* normal but significant condition     */
  35#define KERN_INFO       "<6>"   /* informational                        */
  36#define KERN_DEBUG      "<7>"   /* debug-level messages                 */
  37
  38# define NORET_TYPE    /**/
  39# define ATTRIB_NORET  __attribute__((noreturn))
  40# define NORET_AND     noreturn,
  41
  42#ifdef __i386__
  43#define FASTCALL(x)     x __attribute__((regparm(3)))
  44#else
  45#define FASTCALL(x)     x
  46#endif
  47
  48struct semaphore;
  49
  50extern struct notifier_block *panic_notifier_list;
  51NORET_TYPE void panic(const char * fmt, ...)
  52        __attribute__ ((NORET_AND format (printf, 1, 2)));
  53NORET_TYPE void do_exit(long error_code)
  54        ATTRIB_NORET;
  55NORET_TYPE void up_and_exit(struct semaphore *, long)
  56        ATTRIB_NORET;
  57extern unsigned long simple_strtoul(const char *,char **,unsigned int);
  58extern long simple_strtol(const char *,char **,unsigned int);
  59extern unsigned long long simple_strtoull(const char *,char **,unsigned int);
  60extern long long simple_strtoll(const char *,char **,unsigned int);
  61extern int sprintf(char * buf, const char * fmt, ...);
  62extern int vsprintf(char *buf, const char *, va_list);
  63extern int get_option(char **str, int *pint);
  64extern char *get_options(char *str, int nints, int *ints);
  65extern unsigned long memparse(char *ptr, char **retptr);
  66extern void dev_probe_lock(void);
  67extern void dev_probe_unlock(void);
  68
  69extern int session_of_pgrp(int pgrp);
  70
  71asmlinkage int printk(const char * fmt, ...)
  72        __attribute__ ((format (printf, 1, 2)));
  73
  74extern int console_loglevel;
  75
  76static inline void console_silent(void)
  77{
  78        console_loglevel = 0;
  79}
  80
  81static inline void console_verbose(void)
  82{
  83        if (console_loglevel)
  84                console_loglevel = 15;
  85}
  86
  87#if DEBUG
  88#define pr_debug(fmt,arg...) \
  89        printk(KERN_DEBUG fmt,##arg)
  90#else
  91#define pr_debug(fmt,arg...) \
  92        do { } while (0)
  93#endif
  94
  95#define pr_info(fmt,arg...) \
  96        printk(KERN_INFO fmt,##arg)
  97
  98/*
  99 *      Display an IP address in readable format.
 100 */
 101
 102#define NIPQUAD(addr) \
 103        ((unsigned char *)&addr)[0], \
 104        ((unsigned char *)&addr)[1], \
 105        ((unsigned char *)&addr)[2], \
 106        ((unsigned char *)&addr)[3]
 107
 108#define HIPQUAD(addr) \
 109        ((unsigned char *)&addr)[3], \
 110        ((unsigned char *)&addr)[2], \
 111        ((unsigned char *)&addr)[1], \
 112        ((unsigned char *)&addr)[0]
 113
 114#endif /* __KERNEL__ */
 115
 116#define SI_LOAD_SHIFT   16
 117struct sysinfo {
 118        long uptime;                    /* Seconds since boot */
 119        unsigned long loads[3];         /* 1, 5, and 15 minute load averages */
 120        unsigned long totalram;         /* Total usable main memory size */
 121        unsigned long freeram;          /* Available memory size */
 122        unsigned long sharedram;        /* Amount of shared memory */
 123        unsigned long bufferram;        /* Memory used by buffers */
 124        unsigned long totalswap;        /* Total swap space size */
 125        unsigned long freeswap;         /* swap space still available */
 126        unsigned short procs;           /* Number of current processes */
 127        unsigned long totalhigh;        /* Total high memory size */
 128        unsigned long freehigh;         /* Available high memory size */
 129        unsigned int mem_unit;          /* Memory unit size in bytes */
 130        char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */
 131};
 132
 133#endif
 134
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.