Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /* -*- linux-c -*-
  2  *
  3  *      $Id: sysrq.h,v 1.3 1997/07/17 11:54:33 mj Exp $
  4  *
  5  *      Linux Magic System Request Key Hacks
  6  *
  7  *      (c) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
  8  *
  9  *      (c) 2000 Crutcher Dunnavant <crutcher+kernel@datastacks.com>
 10  *      overhauled to use key registration
 11  *      based upon discusions in irc://irc.openprojects.net/#kernelnewbies
 12  */
 13 
 14 #ifndef _LINUX_SYSRQ_H
 15 #define _LINUX_SYSRQ_H
 16 
 17 #include <linux/errno.h>
 18 
 19 struct pt_regs;
 20 struct tty_struct;
 21 
 22 /* Possible values of bitmask for enabling sysrq functions */
 23 /* 0x0001 is reserved for enable everything */
 24 #define SYSRQ_ENABLE_LOG        0x0002
 25 #define SYSRQ_ENABLE_KEYBOARD   0x0004
 26 #define SYSRQ_ENABLE_DUMP       0x0008
 27 #define SYSRQ_ENABLE_SYNC       0x0010
 28 #define SYSRQ_ENABLE_REMOUNT    0x0020
 29 #define SYSRQ_ENABLE_SIGNAL     0x0040
 30 #define SYSRQ_ENABLE_BOOT       0x0080
 31 #define SYSRQ_ENABLE_RTNICE     0x0100
 32 
 33 struct sysrq_key_op {
 34         void (*handler)(int, struct tty_struct *);
 35         char *help_msg;
 36         char *action_msg;
 37         int enable_mask;
 38 };
 39 
 40 #ifdef CONFIG_MAGIC_SYSRQ
 41 
 42 extern int sysrq_on(void);
 43 
 44 /*
 45  * Do not use this one directly:
 46  */
 47 extern int __sysrq_enabled;
 48 
 49 /* Generic SysRq interface -- you may call it from any device driver, supplying
 50  * ASCII code of the key, pointer to registers and kbd/tty structs (if they
 51  * are available -- else NULL's).
 52  */
 53 
 54 void handle_sysrq(int key, struct tty_struct *tty);
 55 void __handle_sysrq(int key, struct tty_struct *tty, int check_mask);
 56 int register_sysrq_key(int key, struct sysrq_key_op *op);
 57 int unregister_sysrq_key(int key, struct sysrq_key_op *op);
 58 struct sysrq_key_op *__sysrq_get_key_op(int key);
 59 
 60 #else
 61 
 62 static inline int sysrq_on(void)
 63 {
 64         return 0;
 65 }
 66 static inline int __reterr(void)
 67 {
 68         return -EINVAL;
 69 }
 70 static inline void handle_sysrq(int key, struct tty_struct *tty)
 71 {
 72 }
 73 
 74 #define register_sysrq_key(ig,nore) __reterr()
 75 #define unregister_sysrq_key(ig,nore) __reterr()
 76 
 77 #endif
 78 
 79 #endif /* _LINUX_SYSRQ_H */
 80 
  This page was automatically generated by the LXR engine.