Logo Search packages:      
Sourcecode: joystick version File versions

kernel.h

#ifndef _LINUX_KERNEL_H
#define _LINUX_KERNEL_H

/*
 * 'kernel.h' contains some often-used function prototypes etc
 */

#ifdef __KERNEL__

#include <stdarg.h>
#include <linux/linkage.h>
#include <linux/stddef.h>

/* Optimization barrier */
/* The "volatile" is due to gcc bugs */
#define barrier() __asm__ __volatile__("": : :"memory")

#define INT_MAX         ((int)(~0U>>1))
#define INT_MIN         (-INT_MAX - 1)
#define UINT_MAX  (~0U)
#define LONG_MAX  ((long)(~0UL>>1))
#define LONG_MIN  (-LONG_MAX - 1)
#define ULONG_MAX (~0UL)

#define STACK_MAGIC     0xdeadbeef

#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))

#define     KERN_EMERG  "<0>" /* system is unusable               */
#define     KERN_ALERT  "<1>" /* action must be taken immediately */
#define     KERN_CRIT   "<2>" /* critical conditions              */
#define     KERN_ERR    "<3>" /* error conditions                 */
#define     KERN_WARNING      "<4>" /* warning conditions               */
#define     KERN_NOTICE "<5>" /* normal but significant condition */
#define     KERN_INFO   "<6>" /* informational              */
#define     KERN_DEBUG  "<7>" /* debug-level messages             */

# define NORET_TYPE    /**/
# define ATTRIB_NORET  __attribute__((noreturn))
# define NORET_AND     noreturn,

#ifdef __i386__
#define FASTCALL(x)     x __attribute__((regparm(3)))
#else
#define FASTCALL(x)     x
#endif

struct semaphore;

extern struct notifier_block *panic_notifier_list;
NORET_TYPE void panic(const char * fmt, ...)
      __attribute__ ((NORET_AND format (printf, 1, 2)));
NORET_TYPE void do_exit(long error_code)
      ATTRIB_NORET;
NORET_TYPE void up_and_exit(struct semaphore *, long)
      ATTRIB_NORET;
extern int abs(int);
extern unsigned long simple_strtoul(const char *,char **,unsigned int);
extern long simple_strtol(const char *,char **,unsigned int);
extern unsigned long long simple_strtoull(const char *,char **,unsigned int);
extern long long simple_strtoll(const char *,char **,unsigned int);
extern int sprintf(char * buf, const char * fmt, ...);
extern int vsprintf(char *buf, const char *, va_list);
extern int get_option(char **str, int *pint);
extern char *get_options(char *str, int nints, int *ints);
extern unsigned long long memparse(char *ptr, char **retptr);
extern void dev_probe_lock(void);
extern void dev_probe_unlock(void);

extern int session_of_pgrp(int pgrp);

asmlinkage int printk(const char * fmt, ...)
      __attribute__ ((format (printf, 1, 2)));

extern int console_loglevel;

static inline void console_silent(void)
{
      console_loglevel = 0;
}

static inline void console_verbose(void)
{
      if (console_loglevel)
            console_loglevel = 15;
}

/* If set, an oops, panic(), BUG() or die() is in progress */
extern void bust_spinlocks(int yes);
extern int oops_in_progress;

static inline void do_BUG(const char *file, int line)
{
       bust_spinlocks(1);
       printk("kernel BUG at %s:%d!\n", file, line);
}

#if DEBUG
#define pr_debug(fmt,arg...) \
      printk(KERN_DEBUG fmt,##arg)
#else
#define pr_debug(fmt,arg...) \
      do { } while (0)
#endif

#define pr_info(fmt,arg...) \
      printk(KERN_INFO fmt,##arg)

/*
 *      Display an IP address in readable format.
 */

#define NIPQUAD(addr) \
      ((unsigned char *)&addr)[0], \
      ((unsigned char *)&addr)[1], \
      ((unsigned char *)&addr)[2], \
      ((unsigned char *)&addr)[3]

#define HIPQUAD(addr) \
      ((unsigned char *)&addr)[3], \
      ((unsigned char *)&addr)[2], \
      ((unsigned char *)&addr)[1], \
      ((unsigned char *)&addr)[0]

#endif /* __KERNEL__ */

#define SI_LOAD_SHIFT   16
struct sysinfo {
      long uptime;                  /* Seconds since boot */
      unsigned long loads[3];       /* 1, 5, and 15 minute load averages */
      unsigned long totalram;       /* Total usable main memory size */
      unsigned long freeram;        /* Available memory size */
      unsigned long sharedram;      /* Amount of shared memory */
      unsigned long bufferram;      /* Memory used by buffers */
      unsigned long totalswap;      /* Total swap space size */
      unsigned long freeswap;       /* swap space still available */
      unsigned short procs;         /* Number of current processes */
      unsigned short pad;           /* explicit padding for m68k */
      unsigned long totalhigh;      /* Total high memory size */
      unsigned long freehigh;       /* Available high memory size */
      unsigned int mem_unit;        /* Memory unit size in bytes */
      char _f[20-2*sizeof(long)-sizeof(int)];   /* Padding: libc5 uses this.. */
};

#endif

Generated by  Doxygen 1.6.0   Back to index