Files | |
file | arch/ia32/include/kbd.h |
file | arch/ia32/src/kbd.c |
Defines | |
#define | i8042_OUTPUT_FULL 0x1 |
#define | i8042_INPUT_FULL 0x2 |
#define | i8042_MOUSE_DATA 0x20 |
#define | i8042_CMD_KBD 0x60 |
#define | i8042_CMD_MOUSE 0xd4 |
#define | i8042_KBD_IE 0x1 |
#define | i8042_MOUSE_IE 0x2 |
#define | i8042_KBD_DISABLE 0x10 |
#define | i8042_MOUSE_DISABLE 0x20 |
#define | i8042_KBD_TRANSLATE 0x40 |
#define | MOUSE_OUT_INIT 0xf4 |
#define | MOUSE_ACK 0xfa |
#define | SPECIAL 255 |
#define | KEY_RELEASE 0x80 |
#define | IGNORE_CODE 0x7f |
#define | PRESSED_SHIFT (1<<0) |
#define | PRESSED_CAPSLOCK (1<<1) |
#define | LOCKED_CAPSLOCK (1<<0) |
#define | SC_ESC 0x01 |
#define | SC_BACKSPACE 0x0e |
#define | SC_LSHIFT 0x2a |
#define | SC_RSHIFT 0x36 |
#define | SC_CAPSLOCK 0x3a |
#define | SC_SPEC_ESCAPE 0xe0 |
#define | SC_LEFTARR 0x4b |
#define | SC_RIGHTARR 0x4d |
#define | SC_UPARR 0x48 |
#define | SC_DOWNARR 0x50 |
#define | SC_DELETE 0x53 |
#define | SC_HOME 0x47 |
#define | SC_END 0x4f |
#define | FUNCTION_KEYS 0x100 |
Functions | |
static void | key_released (keybuffer_t *keybuffer, unsigned char key) |
static void | key_pressed (keybuffer_t *keybuffer, unsigned char key) |
static void | wait_ready (void) |
int | kbd_arch_init (void) |
int | kbd_arch_process (keybuffer_t *keybuffer, ipc_call_t *call) |
Variables | |
static volatile int | keyflags |
static volatile int | lockflags |
static int | sc_primary_map [] |
static int | sc_secondary_map [] |
irq_cmd_t | i8042_cmds [2] |
irq_code_t | i8042_kbd |
|
Definition at line 46 of file arch/ia32/src/kbd.c. Referenced by kbd_arch_init(). |
|
Definition at line 47 of file arch/ia32/src/kbd.c. Referenced by wait_ready(). |
|
Definition at line 48 of file arch/ia32/src/kbd.c. Referenced by kbd_arch_init(), kbd_arch_process(), and mouse_arch_process(). |
|
Definition at line 51 of file arch/ia32/src/kbd.c. Referenced by kbd_arch_init(). |
|
Definition at line 52 of file arch/ia32/src/kbd.c. Referenced by kbd_arch_init(). |
|
Definition at line 55 of file arch/ia32/src/kbd.c. |
|
Definition at line 56 of file arch/ia32/src/kbd.c. |
|
Definition at line 57 of file arch/ia32/src/kbd.c. Referenced by kbd_arch_init(). |
|
Definition at line 58 of file arch/ia32/src/kbd.c. |
|
Definition at line 59 of file arch/ia32/src/kbd.c. |
|
Definition at line 62 of file arch/ia32/src/kbd.c. Referenced by kbd_arch_init(). |
|
Definition at line 63 of file arch/ia32/src/kbd.c. |
|
Definition at line 66 of file arch/ia32/src/kbd.c. Referenced by key_pressed(). |
|
Definition at line 67 of file arch/ia32/src/kbd.c. Referenced by kbd_arch_process(). |
|
These codes read from i8042 data register are silently ignored. Definition at line 72 of file arch/ia32/src/kbd.c. Referenced by kbd_arch_process(). |
|
Definition at line 74 of file arch/ia32/src/kbd.c. Referenced by key_pressed(), and key_released(). |
|
Definition at line 75 of file arch/ia32/src/kbd.c. Referenced by key_pressed(), and key_released(). |
|
Definition at line 76 of file arch/ia32/src/kbd.c. Referenced by key_pressed(), and key_released(). |
|
Scancodes. Definition at line 79 of file arch/ia32/src/kbd.c. Referenced by key_pressed(). |
|
Definition at line 80 of file arch/ia32/src/kbd.c. |
|
Definition at line 81 of file arch/ia32/src/kbd.c. Referenced by key_pressed(), and key_released(). |
|
Definition at line 82 of file arch/ia32/src/kbd.c. Referenced by key_pressed(), and key_released(). |
|
Definition at line 83 of file arch/ia32/src/kbd.c. Referenced by key_pressed(), and key_released(). |
|
Definition at line 84 of file arch/ia32/src/kbd.c. Referenced by key_pressed(). |
|
Definition at line 85 of file arch/ia32/src/kbd.c. |
|
Definition at line 86 of file arch/ia32/src/kbd.c. |
|
Definition at line 87 of file arch/ia32/src/kbd.c. |
|
Definition at line 88 of file arch/ia32/src/kbd.c. |
|
Definition at line 89 of file arch/ia32/src/kbd.c. |
|
Definition at line 90 of file arch/ia32/src/kbd.c. |
|
Definition at line 91 of file arch/ia32/src/kbd.c. |
|
Definition at line 93 of file arch/ia32/src/kbd.c. |
|
Definition at line 268 of file arch/ia32/src/kbd.c. References keyflags, LOCKED_CAPSLOCK, lockflags, PRESSED_CAPSLOCK, PRESSED_SHIFT, SC_CAPSLOCK, SC_LSHIFT, and SC_RSHIFT. Referenced by kbd_arch_process(). |
|
Definition at line 287 of file arch/ia32/src/kbd.c. References __SYSCALL0, keybuffer, keybuffer_push(), keyflags, LOCKED_CAPSLOCK, lockflags, PRESSED_CAPSLOCK, PRESSED_SHIFT, SC_CAPSLOCK, SC_ESC, SC_LSHIFT, sc_primary_map, SC_RSHIFT, sc_secondary_map, SC_SPEC_ESCAPE, and SPECIAL. Referenced by kbd_arch_process(). Here is the call graph for this function: ![]() |
|
Definition at line 383 of file arch/ia32/src/kbd.c. References i8042_INPUT_FULL, and i8042_status_read(). Referenced by kbd_arch_init(). Here is the call graph for this function: ![]() |
|
Register uspace irq handler
Definition at line 391 of file arch/ia32/src/kbd.c. References i8042_CMD_KBD, i8042_CMD_MOUSE, i8042_command_write(), i8042_DATA, i8042_data_read(), i8042_data_write(), i8042_KBD_DISABLE, i8042_MOUSE_DATA, i8042_OUTPUT_FULL, i8042_status_read(), iospace_enable(), MOUSE_OUT_INIT, task_get_id(), and wait_ready(). Referenced by kbd_arch_process(), and main(). Here is the call graph for this function: ![]() |
|
Process keyboard & mouse events Definition at line 450 of file arch/ia32/src/kbd.c. References i8042_MOUSE_DATA, IGNORE_CODE, kbd_arch_init(), key_pressed(), KEY_RELEASE, key_released(), and keybuffer. Referenced by irq_handler(). Here is the call graph for this function: ![]() |
|
Tracking of multiple keypresses. Definition at line 95 of file arch/ia32/src/kbd.c. Referenced by key_pressed(), and key_released(). |
|
Tracking of multiple keys lockings. Definition at line 96 of file arch/ia32/src/kbd.c. Referenced by key_pressed(), and key_released(). |
|
Primary meaning of scancodes. Definition at line 99 of file arch/ia32/src/kbd.c. Referenced by key_pressed(). |
|
Secondary meaning of scancodes. Definition at line 179 of file arch/ia32/src/kbd.c. Referenced by key_pressed(). |
|
Initial value: { { CMD_PORT_READ_1, (void *)0x64, 0, 1 }, { CMD_PORT_READ_1, (void *)0x60, 0, 2 } } Definition at line 258 of file arch/ia32/src/kbd.c. |
|
Initial value: { 2, i8042_cmds } Definition at line 263 of file arch/ia32/src/kbd.c. |