On Sun, 15 Jul 2007, federico ferri wrote:
>> 
> (I can imagine it could be done via a /proc/sysrq-keycode virtual file,
> but that's just one possibility)
> 
> So, this should turn into a feature request...
> would you accept feature requests?  ( :

Well, this is totally untested, and I won't guarantee that this works at 
all, but this is how to generally do these kinds of things..

                Linus

---
 drivers/char/keyboard.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c
index 90965b4..e21f52b 100644
--- a/drivers/char/keyboard.c
+++ b/drivers/char/keyboard.c
@@ -157,6 +157,10 @@ static int sysrq_alt_use;
 #endif
 static int sysrq_alt;
 
+static int sysrq_key = KEY_SYSRQ;
+module_param_named(sysrq_key, sysrq_key, uint, 0644);
+MODULE_PARM_DESC(sysrq_key, "The keycode to be used for sysrq");
+
 /*
  * Translation of scancodes to keycodes. We set them on only the first
  * keyboard in the list that accepts the scancode and keycode.
@@ -1139,7 +1143,7 @@ static void kbd_keycode(unsigned int keycode, int down, 
int hw_raw)
                                printk(KERN_WARNING "keyboard.c: can't emulate 
rawmode for keycode %d\n", keycode);
 
 #ifdef CONFIG_MAGIC_SYSRQ             /* Handle the SysRq Hack */
-       if (keycode == KEY_SYSRQ && (sysrq_down || (down == 1 && sysrq_alt))) {
+       if (keycode == sysrq_key && (sysrq_down || (down == 1 && sysrq_alt))) {
                if (!sysrq_down) {
                        sysrq_down = down;
                        sysrq_alt_use = sysrq_alt;

Reply via email to