~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/input/notifier.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/input/notifier.rst (Architecture i386) and /Documentation/input/notifier.rst (Architecture sparc)


  1 =================                                   1 =================
  2 Keyboard notifier                                   2 Keyboard notifier
  3 =================                                   3 =================
  4                                                     4 
  5 One can use register_keyboard_notifier to get       5 One can use register_keyboard_notifier to get called back on keyboard
  6 events (see kbd_keycode() function for details      6 events (see kbd_keycode() function for details).  The passed structure is
  7 keyboard_notifier_param (see <linux/keyboard.h      7 keyboard_notifier_param (see <linux/keyboard.h>):
  8                                                     8 
  9 - 'vc' always provide the VC for which the key      9 - 'vc' always provide the VC for which the keyboard event applies;
 10 - 'down' is 1 for a key press event, 0 for a k     10 - 'down' is 1 for a key press event, 0 for a key release;
 11 - 'shift' is the current modifier state, mask      11 - 'shift' is the current modifier state, mask bit indexes are KG_*;
 12 - 'ledstate' is the current LED state;             12 - 'ledstate' is the current LED state;
 13 - 'value' depends on the type of event.            13 - 'value' depends on the type of event.
 14                                                    14 
 15 - KBD_KEYCODE events are always sent before ot     15 - KBD_KEYCODE events are always sent before other events, value is the keycode.
 16 - KBD_UNBOUND_KEYCODE events are sent if the k     16 - KBD_UNBOUND_KEYCODE events are sent if the keycode is not bound to a keysym.
 17   value is the keycode.                            17   value is the keycode.
 18 - KBD_UNICODE events are sent if the keycode -     18 - KBD_UNICODE events are sent if the keycode -> keysym translation produced a
 19   unicode character. value is the unicode valu     19   unicode character. value is the unicode value.
 20 - KBD_KEYSYM events are sent if the keycode ->     20 - KBD_KEYSYM events are sent if the keycode -> keysym translation produced a
 21   non-unicode character. value is the keysym.      21   non-unicode character. value is the keysym.
 22 - KBD_POST_KEYSYM events are sent after the tr     22 - KBD_POST_KEYSYM events are sent after the treatment of non-unicode keysyms.
 23   That permits one to inspect the resulting LE     23   That permits one to inspect the resulting LEDs for instance.
 24                                                    24 
 25 For each kind of event but the last, the callb     25 For each kind of event but the last, the callback may return NOTIFY_STOP in
 26 order to "eat" the event: the notify loop is s     26 order to "eat" the event: the notify loop is stopped and the keyboard event is
 27 dropped.                                           27 dropped.
 28                                                    28 
 29 In a rough C snippet, we have::                    29 In a rough C snippet, we have::
 30                                                    30 
 31     kbd_keycode(keycode) {                         31     kbd_keycode(keycode) {
 32         ...                                        32         ...
 33         params.value = keycode;                    33         params.value = keycode;
 34         if (notifier_call_chain(KBD_KEYCODE,&p     34         if (notifier_call_chain(KBD_KEYCODE,&params) == NOTIFY_STOP)
 35             || !bound) {                           35             || !bound) {
 36                 notifier_call_chain(KBD_UNBOUN     36                 notifier_call_chain(KBD_UNBOUND_KEYCODE,&params);
 37                 return;                            37                 return;
 38         }                                          38         }
 39                                                    39 
 40         if (unicode) {                             40         if (unicode) {
 41                 param.value = unicode;             41                 param.value = unicode;
 42                 if (notifier_call_chain(KBD_UN     42                 if (notifier_call_chain(KBD_UNICODE,&params) == NOTIFY_STOP)
 43                         return;                    43                         return;
 44                 emit unicode;                      44                 emit unicode;
 45                 return;                            45                 return;
 46         }                                          46         }
 47                                                    47 
 48         params.value = keysym;                     48         params.value = keysym;
 49         if (notifier_call_chain(KBD_KEYSYM,&pa     49         if (notifier_call_chain(KBD_KEYSYM,&params) == NOTIFY_STOP)
 50                 return;                            50                 return;
 51         apply keysym;                              51         apply keysym;
 52         notifier_call_chain(KBD_POST_KEYSYM,&p     52         notifier_call_chain(KBD_POST_KEYSYM,&params);
 53     }                                              53     }
 54                                                    54 
 55 .. note:: This notifier is usually called from     55 .. note:: This notifier is usually called from interrupt context.
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php