--- linux/drivers/char/sysrq.c.old 2002-11-01 22:50:13.000000000 +0000 +++ linux/drivers/char/sysrq.c 2002-12-13 20:47:09.000000000 +0000 @@ -35,6 +35,9 @@ extern void reset_vc(unsigned int); extern struct list_head super_blocks; +static void sysrq_handle_help(int key, struct pt_regs *pt_regs, + struct kbd_struct *kbd, struct tty_struct *tty); + /* Whether we react on sysrq keys or just ignore them */ int sysrq_enabled = 1; @@ -317,6 +320,12 @@ action_msg: "Kill All Tasks", }; +static struct sysrq_key_op sysrq_help_op = { + handler: sysrq_handle_help, + help_msg: "Help", + action_msg: "Detailed Help", +}; + /* END SIGNAL SYSRQ HANDLERS BLOCK */ @@ -343,7 +352,7 @@ /* e */ &sysrq_term_op, /* f */ NULL, /* g */ NULL, -/* h */ NULL, +/* h */ &sysrq_help_op, /* i */ &sysrq_kill_op, /* j */ NULL, #ifdef CONFIG_VT @@ -369,6 +378,23 @@ /* z */ NULL }; +static void sysrq_handle_help(int key, struct pt_regs *pt_regs, + struct kbd_struct *kbd, struct tty_struct *tty) { + int orig_log_level; + int i, j; + + orig_log_level = console_loglevel; + console_loglevel = 7; + printk ("%s - %s\n", "0-8", "Set Loglevel"); + for (i=10; iaction_msg); + } + console_loglevel = orig_log_level; +} + /* key2index calculation, -1 on invalid index */ static __inline__ int sysrq_key_table_key2index(int key) { int retval;