Re: [RFC] Input: implement sysrq as an input handler

Dmitry Torokhov
2010-03-19T00:31:07Z

On Thu, Mar 18, 2010 at 05:13:35PM -0700, Randy Dunlap wrote:
> On 03/16/10 23:19, Dmitry Torokhov wrote:
> > Instead of keeping SysRq support inside of legacy keyboard driver split
> > it out into a separate input handler (filter). This stops most SysRq input
> > events from leaking into evdev clients (some events, such as first SysRq
> > scancode - not keycode - event, are still leaked into both legacy keyboard
> > and evdev).
> >
> > Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
> > ---
> >
> > drivers/char/keyboard.c | 40 +-------
> > drivers/char/sysrq.c | 222 +++++++++++++++++++++++++++++++++++++++++------
> > include/linux/sysrq.h | 23 +----
> > kernel/sysctl.c | 23 +++++
> > 4 files changed, 224 insertions(+), 84 deletions(-)
>
>
> > +/* Simple translation table for the SysRq keys */
> > +static const unsigned char sysrq_xlate[KEY_MAX + 1] =
> > + "\000\0331234567890-=\177\t" /* 0x00 - 0x0f */
> > + "qwertyuiop[]\r\000as" /* 0x10 - 0x1f */
> > + "dfghjkl;'`\000\\zxcv" /* 0x20 - 0x2f */
> > + "bnm,./\000*\000 \000\201\202\203\204\205" /* 0x30 - 0x3f */
> > + "\206\207\210\211\212\000\000789-456+1" /* 0x40 - 0x4f */
> > + "230\177\000\000\213\214\000\000\000\000\000\000\000\000\000\000" /* 0x50 - 0x5f */
> > + "\r\000/"; /* 0x60 - 0x6f */
>
> We are running out of these precious sysrq keys.
> Do you have any ideas of how to have a larger xlate table?
>

When we run out we could add shift modifiers I guess.

--
Dmitry