/* keymap.h - defines for keymapping Author: Marcus Hampel */ #ifndef _SYS__KEYMAP_H #define _SYS__KEYMAP_H #define K(k) [INPUT_KEY_ ## k] /* Map to key entry */ #define C(c) ((c) & 0x1F) /* Map to control code */ #define A(c) ((c) | 0x80) /* Set eight bit (ALT) */ #define CA(c) A(C(c)) /* Control-Alt */ #define N(c) ((c) | HASNUM) /* Add "Num Lock has effect" attribute */ #define L(c) ((c) | HASCAPS) /* Add "Caps Lock has effect" attribute */ #define EXT 0x0100 /* Normal function keys */ #define CTRLKEY 0x0200 /* Control key */ #define SHIFT 0x0400 /* Shift key */ #define ALT 0x0800 /* Alternate key */ #define HASNUM 0x4000 /* Num Lock has effect */ #define HASCAPS 0x8000 /* Caps Lock has effect */ /* The left and right versions for the actual keys in the keymap. */ #define LCTRL CTRLKEY #define RCTRL (CTRLKEY | EXT) #define LSHIFT SHIFT #define RSHIFT (SHIFT | EXT) #define LALT ALT #define RALT (ALT | EXT) /* Delete key */ #define DEL 0177 /* Numeric keypad */ #define HOME (0x01 + EXT) #define END (0x02 + EXT) #define UP (0x03 + EXT) #define DOWN (0x04 + EXT) #define LEFT (0x05 + EXT) #define RIGHT (0x06 + EXT) #define PGUP (0x07 + EXT) #define PGDN (0x08 + EXT) #define MID (0x09 + EXT) /* UNUSED (0x0A + EXT) */ /* UNUSED (0x0B + EXT) */ #define INSRT (0x0C + EXT) /* Keys affected by Num Lock */ #define NHOME N(HOME) #define NEND N(END) #define NUP N(UP) #define NDOWN N(DOWN) #define NLEFT N(LEFT) #define NRIGHT N(RIGHT) #define NPGUP N(PGUP) #define NPGDN N(PGDN) #define NMID N(MID) #define NINSRT N(INSRT) #define NDEL N(DEL) /* Alt + Numeric keypad */ #define AHOME (0x01 + ALT) #define AEND (0x02 + ALT) #define AUP (0x03 + ALT) #define ADOWN (0x04 + ALT) #define ALEFT (0x05 + ALT) #define ARIGHT (0x06 + ALT) #define APGUP (0x07 + ALT) #define APGDN (0x08 + ALT) #define AMID (0x09 + ALT) #define AMIN (0x0A + ALT) #define APLUS (0x0B + ALT) #define AINSRT (0x0C + ALT) /* Ctrl + Numeric keypad */ #define CHOME (0x01 + CTRLKEY) #define CEND (0x02 + CTRLKEY) #define CUP (0x03 + CTRLKEY) #define CDOWN (0x04 + CTRLKEY) #define CLEFT (0x05 + CTRLKEY) #define CRIGHT (0x06 + CTRLKEY) #define CPGUP (0x07 + CTRLKEY) #define CPGDN (0x08 + CTRLKEY) #define CMID (0x09 + CTRLKEY) #define CNMIN (0x0A + CTRLKEY) #define CPLUS (0x0B + CTRLKEY) #define CINSRT (0x0C + CTRLKEY) /* Lock keys */ #define CALOCK (0x0D + EXT) /* caps lock */ #define NLOCK (0x0E + EXT) /* number lock */ #define SLOCK (0x0F + EXT) /* scroll lock */ /* Function keys */ #define F1 (0x10 + EXT) #define F2 (0x11 + EXT) #define F3 (0x12 + EXT) #define F4 (0x13 + EXT) #define F5 (0x14 + EXT) #define F6 (0x15 + EXT) #define F7 (0x16 + EXT) #define F8 (0x17 + EXT) #define F9 (0x18 + EXT) #define F10 (0x19 + EXT) #define F11 (0x1A + EXT) #define F12 (0x1B + EXT) /* Alt+Fn */ #define AF1 (0x10 + ALT) #define AF2 (0x11 + ALT) #define AF3 (0x12 + ALT) #define AF4 (0x13 + ALT) #define AF5 (0x14 + ALT) #define AF6 (0x15 + ALT) #define AF7 (0x16 + ALT) #define AF8 (0x17 + ALT) #define AF9 (0x18 + ALT) #define AF10 (0x19 + ALT) #define AF11 (0x1A + ALT) #define AF12 (0x1B + ALT) /* Ctrl+Fn */ #define CF1 (0x10 + CTRLKEY) #define CF2 (0x11 + CTRLKEY) #define CF3 (0x12 + CTRLKEY) #define CF4 (0x13 + CTRLKEY) #define CF5 (0x14 + CTRLKEY) #define CF6 (0x15 + CTRLKEY) #define CF7 (0x16 + CTRLKEY) #define CF8 (0x17 + CTRLKEY) #define CF9 (0x18 + CTRLKEY) #define CF10 (0x19 + CTRLKEY) #define CF11 (0x1A + CTRLKEY) #define CF12 (0x1B + CTRLKEY) /* Shift+Fn */ #define SF1 (0x10 + SHIFT) #define SF2 (0x11 + SHIFT) #define SF3 (0x12 + SHIFT) #define SF4 (0x13 + SHIFT) #define SF5 (0x14 + SHIFT) #define SF6 (0x15 + SHIFT) #define SF7 (0x16 + SHIFT) #define SF8 (0x17 + SHIFT) #define SF9 (0x18 + SHIFT) #define SF10 (0x19 + SHIFT) #define SF11 (0x1A + SHIFT) #define SF12 (0x1B + SHIFT) /* Alt+Shift+Fn */ #define ASF1 (0x10 + ALT + SHIFT) #define ASF2 (0x11 + ALT + SHIFT) #define ASF3 (0x12 + ALT + SHIFT) #define ASF4 (0x13 + ALT + SHIFT) #define ASF5 (0x14 + ALT + SHIFT) #define ASF6 (0x15 + ALT + SHIFT) #define ASF7 (0x16 + ALT + SHIFT) #define ASF8 (0x17 + ALT + SHIFT) #define ASF9 (0x18 + ALT + SHIFT) #define ASF10 (0x19 + ALT + SHIFT) #define ASF11 (0x1A + ALT + SHIFT) #define ASF12 (0x1B + ALT + SHIFT) #define MAP_COLS 6 /* Number of columns in keymap */ #define NR_SCAN_CODES 0xE8 /* Number of scan codes (rows in keymap) */ typedef uint16_t keymap_t[NR_SCAN_CODES][MAP_COLS]; #define KEY_MAGIC "KMAZ" /* Magic number of keymap file */ #endif /* _SYS__KEYMAP_H */