home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / linux / sysrq.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.6 KB  |  60 lines

  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.  
  15. struct pt_regs;
  16. struct tty_struct;
  17.  
  18. /* Possible values of bitmask for enabling sysrq functions */
  19. /* 0x0001 is reserved for enable everything */
  20. #define SYSRQ_ENABLE_LOG    0x0002
  21. #define SYSRQ_ENABLE_KEYBOARD    0x0004
  22. #define SYSRQ_ENABLE_DUMP    0x0008
  23. #define SYSRQ_ENABLE_SYNC    0x0010
  24. #define SYSRQ_ENABLE_REMOUNT    0x0020
  25. #define SYSRQ_ENABLE_SIGNAL    0x0040
  26. #define SYSRQ_ENABLE_BOOT    0x0080
  27. #define SYSRQ_ENABLE_RTNICE    0x0100
  28.  
  29. struct sysrq_key_op {
  30.     void (*handler)(int, struct pt_regs *, struct tty_struct *);
  31.     char *help_msg;
  32.     char *action_msg;
  33.     int enable_mask;
  34. };
  35.  
  36. #ifdef CONFIG_MAGIC_SYSRQ
  37.  
  38. /* Generic SysRq interface -- you may call it from any device driver, supplying
  39.  * ASCII code of the key, pointer to registers and kbd/tty structs (if they
  40.  * are available -- else NULL's).
  41.  */
  42.  
  43. void handle_sysrq(int, struct pt_regs *, struct tty_struct *);
  44. void __handle_sysrq(int, struct pt_regs *, struct tty_struct *, int check_mask);
  45. int register_sysrq_key(int, struct sysrq_key_op *);
  46. int unregister_sysrq_key(int, struct sysrq_key_op *);
  47. struct sysrq_key_op *__sysrq_get_key_op(int key);
  48.  
  49. #else
  50.  
  51. static inline int __reterr(void)
  52. {
  53.     return -EINVAL;
  54. }
  55.  
  56. #define register_sysrq_key(ig,nore) __reterr()
  57. #define unregister_sysrq_key(ig,nore) __reterr()
  58.  
  59. #endif
  60.