13#define MAX_KEYBOARDS 127
14#define MAX_KB_PORT_NUM 7
15#define MAX_KEYCODES 62
18#define KB_RAWDAT 0x8000U
19#define KB_KEYPAD 0x4000U
22#define KB_RAWKEY_NO_EVENT 0x00
23#define KB_RAWKEY_E_ROLLOVER 0x01
24#define KB_RAWKEY_E_POSTFAIL 0x02
25#define KB_RAWKEY_E_UNDEF 0x03
26#define KB_RAWKEY_ESCAPE 0x29
27#define KB_RAWKEY_106_KANJI 0x35
28#define KB_RAWKEY_CAPS_LOCK 0x39
29#define KB_RAWKEY_F1 0x3a
30#define KB_RAWKEY_F2 0x3b
31#define KB_RAWKEY_F3 0x3c
32#define KB_RAWKEY_F4 0x3d
33#define KB_RAWKEY_F5 0x3e
34#define KB_RAWKEY_F6 0x3f
35#define KB_RAWKEY_F7 0x40
36#define KB_RAWKEY_F8 0x41
37#define KB_RAWKEY_F9 0x42
38#define KB_RAWKEY_F10 0x43
39#define KB_RAWKEY_F11 0x44
40#define KB_RAWKEY_F12 0x45
41#define KB_RAWKEY_PRINTSCREEN 0x46
42#define KB_RAWKEY_SCROLL_LOCK 0x47
43#define KB_RAWKEY_PAUSE 0x48
44#define KB_RAWKEY_INSERT 0x49
45#define KB_RAWKEY_HOME 0x4a
46#define KB_RAWKEY_PAGE_UP 0x4b
47#define KB_RAWKEY_DELETE 0x4c
48#define KB_RAWKEY_END 0x4d
49#define KB_RAWKEY_PAGE_DOWN 0x4e
50#define KB_RAWKEY_RIGHT_ARROW 0x4f
51#define KB_RAWKEY_LEFT_ARROW 0x50
52#define KB_RAWKEY_DOWN_ARROW 0x51
53#define KB_RAWKEY_UP_ARROW 0x52
54#define KB_RAWKEY_NUM_LOCK 0x53
55#define KB_RAWKEY_APPLICATION 0x65
56#define KB_RAWKEY_KANA 0x88
57#define KB_RAWKEY_HENKAN 0x8a
58#define KB_RAWKEY_MUHENKAN 0x8b
61#define KB_RAWKEY_A 0x04
62#define KB_RAWKEY_B 0x05
63#define KB_RAWKEY_C 0x06
64#define KB_RAWKEY_D 0x07
65#define KB_RAWKEY_E 0x08
66#define KB_RAWKEY_F 0x09
67#define KB_RAWKEY_G 0x0A
68#define KB_RAWKEY_H 0x0B
69#define KB_RAWKEY_I 0x0C
70#define KB_RAWKEY_J 0x0D
71#define KB_RAWKEY_K 0x0E
72#define KB_RAWKEY_L 0x0F
73#define KB_RAWKEY_M 0x10
74#define KB_RAWKEY_N 0x11
75#define KB_RAWKEY_O 0x12
76#define KB_RAWKEY_P 0x13
77#define KB_RAWKEY_Q 0x14
78#define KB_RAWKEY_R 0x15
79#define KB_RAWKEY_S 0x16
80#define KB_RAWKEY_T 0x17
81#define KB_RAWKEY_U 0x18
82#define KB_RAWKEY_V 0x19
83#define KB_RAWKEY_W 0x1A
84#define KB_RAWKEY_X 0x1B
85#define KB_RAWKEY_Y 0x1C
86#define KB_RAWKEY_Z 0x1D
87#define KB_RAWKEY_1 0x1E
88#define KB_RAWKEY_2 0x1F
89#define KB_RAWKEY_3 0x20
90#define KB_RAWKEY_4 0x21
91#define KB_RAWKEY_5 0x22
92#define KB_RAWKEY_6 0x23
93#define KB_RAWKEY_7 0x24
94#define KB_RAWKEY_8 0x25
95#define KB_RAWKEY_9 0x26
96#define KB_RAWKEY_0 0x27
97#define KB_RAWKEY_ENTER 0x28
98#define KB_RAWKEY_ESC 0x29
99#define KB_RAWKEY_BS 0x2A
100#define KB_RAWKEY_TAB 0x2B
101#define KB_RAWKEY_SPACE 0x2C
102#define KB_RAWKEY_MINUS 0x2D
103#define KB_RAWKEY_EQUAL_101 0x2E
104#define KB_RAWKEY_ACCENT_CIRCONFLEX_106 0x2E
105#define KB_RAWKEY_LEFT_BRACKET_101 0x2F
106#define KB_RAWKEY_ATMARK_106 0x2F
107#define KB_RAWKEY_RIGHT_BRACKET_101 0x30
108#define KB_RAWKEY_LEFT_BRACKET_106 0x30
109#define KB_RAWKEY_BACKSLASH_101 0x31
110#define KB_RAWKEY_RIGHT_BRACKET_106 0x32
111#define KB_RAWKEY_SEMICOLON 0x33
112#define KB_RAWKEY_QUOTATION_101 0x34
113#define KB_RAWKEY_COLON_106 0x34
114#define KB_RAWKEY_COMMA 0x36
115#define KB_RAWKEY_PERIOD 0x37
116#define KB_RAWKEY_SLASH 0x38
117#define KB_RAWKEY_CAPS_LOCK 0x39
118#define KB_RAWKEY_KPAD_NUMLOCK 0x53
119#define KB_RAWKEY_KPAD_SLASH 0x54
120#define KB_RAWKEY_KPAD_ASTERISK 0x55
121#define KB_RAWKEY_KPAD_MINUS 0x56
122#define KB_RAWKEY_KPAD_PLUS 0x57
123#define KB_RAWKEY_KPAD_ENTER 0x58
124#define KB_RAWKEY_KPAD_1 0x59
125#define KB_RAWKEY_KPAD_2 0x5A
126#define KB_RAWKEY_KPAD_3 0x5B
127#define KB_RAWKEY_KPAD_4 0x5C
128#define KB_RAWKEY_KPAD_5 0x5D
129#define KB_RAWKEY_KPAD_6 0x5E
130#define KB_RAWKEY_KPAD_7 0x5F
131#define KB_RAWKEY_KPAD_8 0x60
132#define KB_RAWKEY_KPAD_9 0x61
133#define KB_RAWKEY_KPAD_0 0x62
134#define KB_RAWKEY_KPAD_PERIOD 0x63
135#define KB_RAWKEY_BACKSLASH_106 0x87
136#define KB_RAWKEY_YEN_106 0x89
s32 ioKbGetConfiguration(const u32 kb_no, KbConfig *kb_config)
Get Keyboard Configuration.
s32 ioKbSetLEDStatus(const u32 kb_no, const KbLed led_state)
Control Keyboard LED.
KbRmode
Keyboard input mode values.
@ KB_RMODE_INPUTCHAR
Character Input Mode.
@ KB_RMODE_PACKET
Packet Mode.
KbMapping
Keyboard mapping values.
@ KB_MAPPING_PORTUGUESE_PORTUGAL
@ KB_MAPPING_SPANISH_SPAIN
@ KB_MAPPING_SWISS_FRENCH_SWITZERLAND
@ KB_MAPPING_RUSSIAN_RUSSIA
@ KB_MAPPING_DANISH_DENMARK
@ KB_MAPPING_CANADIAN_FRENCH_CANADA
@ KB_MAPPING_FINNISH_FINLAND
@ KB_MAPPING_ITALIAN_ITALY
@ KB_MAPPING_CHINESE_TRADITIONAL
@ KB_MAPPING_DUTCH_NETHERLANDS
@ KB_MAPPING_NORWEGIAN_NORWAY
@ KB_MAPPING_SWEDISH_SWEDEN
@ KB_MAPPING_GERMAN_GERMANY
@ KB_MAPPING_KOREAN_KOREA
@ KB_MAPPING_FRENCH_FRANCE
@ KB_MAPPING_CHINESE_SIMPLIFIED
@ KB_MAPPING_SWISS_GERMAN_SWITZERLAND
s32 ioKbGetInfo(KbInfo *kb_info)
Get Keyboard Information.
s32 ioKbSetCodeType(const u32 kb_no, const KbCodeType kb_codetype)
Set Keyboard code type.
s32 ioKbInit(const u32 max)
Initialize Keyboard library.
s32 ioKbClearBuf(const u32 kb_no)
Clear Keyboard Buffer Data.
KbCodeType
Keyboard raw or ASCII mode values.
@ KB_CODETYPE_RAW
Obtain device code as RAW code type.
@ KB_CODETYPE_ASCII
Obtain device code as ASCII code type.
s32 ioKbRead(const u32 kb_no, KbData *data)
Read data from keyboard data buffer.
u16 ioKbCnvRawCode(const KbMapping mapping, const KbMkey mkey, const KbLed led, const u16 rawcode)
Convert Keyboard device key code.
s32 ioKbSetReadMode(const u32 kb_no, const KbRmode kb_rmode)
Set Keyboard data read mode.
s32 ioKbEnd(void)
Close/End Keyboard library.
Keyboard config data structure.
u32 mapping
See KbMapping enum definition.
u32 rmode
See KbRmode enum definition.
u32 codetype
See KbCodeType enum definition.
Keyboard input data data structure.
KbMkey mkey
Keyboard Modifier Key State.
u16 keycode[62]
Keycode values.
KbLed led
Keyboard Led State.
s32 nb_keycode
Number of key codes (0 equal no data)
Keyboard info data structure.
u32 connected
how many kb connected
u32 max
max kb allowed to connect
u32 info
Bit 0 lets the system intercept keyboard? other bits are reserved.
u8 status[127]
Connections status, status Index equal to Keyboard Number value 0: Not connected and 1: Connected.
u32 compose
LED Compose 0:OFF 1:ON Bit3.
u32 kana
LED Kana 0:OFF 1:ON Bit4.
u32 num_lock
LED Num Lock 0:OFF 1:ON Bit0 LSB.
u32 caps_lock
LED Caps Lock 0:OFF 1:ON Bit1.
struct KbLed::@4::@5 _KbLedS
u32 scroll_lock
LED Scroll Lock 0:OFF 1:ON Bit2.
u32 reserved
Reserved MSB.
Keyboard Modifier Key State.
u32 l_win
Modifier Key Left WIN 0:OFF 1:ON Bit3.
union KbMkey::@6 _KbMkeyU
u32 l_alt
Modifier Key Left ALT 0:OFF 1:ON Bit2.
u32 r_alt
Modifier Key Right ALT 0:OFF 1:ON Bit6.
u32 l_ctrl
Modifier Key Left CTRL 0:OFF 1:ON Bit0 LSB.
u32 r_shift
Modifier Key Right SHIFT 0:OFF 1:ON Bit5.
u32 r_ctrl
Modifier Key Right CTRL 0:OFF 1:ON Bit4.
struct KbMkey::@6::@7 _KbMkeyS
u32 l_shift
Modifier Key Left SHIFT 0:OFF 1:ON Bit1.
u32 reserved
Reserved MSB.
u32 r_win
Modifier Key Right WIN 0:OFF 1:ON Bit7.