Files | |
file | adb.c |
ADB keyboard port driver. | |
file | chardev.c |
Chardev keyboard port driver. | |
file | dummy.c |
file | gxemul.c |
GXEmul keyboard port driver. | |
file | i8042.c |
i8042 PS/2 port driver. | |
file | i8042.h |
i8042 port driver. | |
file | msim.c |
Msim keyboard port driver. | |
file | niagara.c |
Niagara console keyboard port driver. | |
file | ns16550.c |
NS16550 port driver. | |
file | pl050.c |
pl050 port driver. | |
file | sgcn.c |
SGCN (Serengeti Console) keyboard port driver. | |
file | ski.c |
Ski console keyboard port driver. | |
file | sun.c |
Sun keyboard virtual port driver. | |
file | z8530.c |
Z8530 keyboard port driver. | |
Data Structures | |
struct | i8042 |
i8042 HW I/O interface More... | |
struct | i8042_port_t |
Softstate structure, one for each serial port (primary and aux). More... | |
struct | input_buffer_t |
struct | sgcn_buffer_header_t |
SGCN buffer header. More... | |
Defines | |
#define | CHAN_A_DATA 6 |
#define | CHAN_A_STATUS 4 |
#define | FCR_REG 2 |
#define | i8042_AUX_DATA 0x20 |
#define | i8042_AUX_DISABLE 0x20 |
#define | i8042_AUX_IE 0x02 |
#define | i8042_CMD_WRITE_AUX 0xd4 |
write aux device | |
#define | i8042_CMD_WRITE_CMDB 0x60 |
write command byte | |
#define | i8042_INPUT_FULL 0x02 |
#define | i8042_KBD_DISABLE 0x10 |
#define | i8042_KBD_IE 0x01 |
#define | i8042_KBD_TRANSLATE 0x40 |
#define | i8042_OUTPUT_FULL 0x01 |
#define | IER_REG 1 |
#define | IIR_REG 2 |
#define | INPUT_BUFFER_SIZE ((PAGE_SIZE) - 2 * 8) |
#define | LCR_REG 3 |
#define | LSR_DATA_READY 0x01 |
#define | LSR_REG 5 |
#define | MCR_REG 4 |
#define | NAME "i8042" |
#define | NAME "kbd" |
#define | NAME "kbd" |
#define | NAMESPACE "char" |
#define | PL050_STAT_RXFULL (1 << 4) |
#define | POLL_INTERVAL 10000 |
#define | POLL_INTERVAL 10000 |
#define | POLL_INTERVAL 10000 |
#define | RBR_REG 0 |
#define | RR0_RCA 1 |
#define | SGCN_BUFFER(type, offset) ((type *) (sram_virt_addr + sram_buffer_offset + (offset))) |
#define | SGCN_BUFFER_HEADER (SGCN_BUFFER(sgcn_buffer_header_t, 0)) |
Returns a pointer to the console buffer header. | |
#define | SKI_GETCHAR 21 |
Typedefs | |
typedef i8042 | i8042_t |
Enumerations | |
enum | { DEVID_PRI = 0, DEVID_AUX = 1 } |
Functions | |
static void | adb_kbd_reg0_data (uint16_t data) |
static void | gxemul_irq_handler (ipc_callid_t iid, ipc_call_t *call) |
Process data sent when a key is pressed. | |
static void | i8042_connection (ipc_callid_t iid, ipc_call_t *icall) |
Character device connection handler. | |
static int | i8042_init (void) |
static void | i8042_irq_handler (ipc_callid_t iid, ipc_call_t *call) |
static void | i8042_port_write (int devid, uint8_t data) |
static void | kbd_port_events (ipc_callid_t iid, ipc_call_t *icall) |
int | kbd_port_init (void) |
Initializes keyboard handler. | |
void | kbd_port_reclaim (void) |
void | kbd_port_write (uint8_t data) |
void | kbd_port_yield (void) |
int | main (int argc, char *argv[]) |
Main entry point. | |
static void | msim_irq_handler (ipc_callid_t iid, ipc_call_t *call) |
static void | niagara_key_pressed (void) |
Called regularly by the polling thread. | |
static void | niagara_thread_impl (void *arg) |
Thread to poll SGCN for keypresses. | |
static void | ns16550_irq_handler (ipc_callid_t iid, ipc_call_t *call) |
int | ns16550_port_init (void) |
static void | pl050_irq_handler (ipc_callid_t iid, ipc_call_t *call) |
static void | sgcn_key_pressed (void) |
Handler of the "key pressed" event. | |
static void | sgcn_thread_impl (void *arg) |
Thread to poll SGCN for keypresses. | |
static int32_t | ski_getchar (void) |
Ask Ski if a key was pressed. | |
static void | ski_thread_impl (void *arg) |
Thread to poll Ski for keypresses. | |
static void | wait_ready (void) |
static void | z8530_irq_handler (ipc_callid_t iid, ipc_call_t *call) |
int | z8530_port_init (void) |
Variables | |
static int | dev_phone |
static int | dev_phone |
static irq_cmd_t | gxemul_cmds [] |
static irq_code_t | gxemul_kbd |
static i8042_t * | i8042 |
static irq_cmd_t | i8042_cmds [] |
static irq_code_t | i8042_kbd |
static uintptr_t | i8042_kernel |
static uintptr_t | i8042_physical |
static i8042_port_t | i8042_port [MAX_DEVS] |
static const char * | in_devs [] |
List of devices to try connecting to. | |
input_buffer_t | input_buffer |
static uintptr_t | input_buffer_addr |
Virtual address mapped to the buffer shared with the kernel counterpart. | |
irq_cmd_t | msim_cmds [] |
irq_code_t | msim_kbd |
static irq_cmd_t | ns16550_cmds [] |
irq_code_t | ns16550_kbd |
static uintptr_t | ns16550_kernel |
static uintptr_t | ns16550_physical |
static const int | num_devs = sizeof(in_devs) / sizeof(in_devs[0]) |
static irq_cmd_t | pl050_cmds [] |
static irq_code_t | pl050_kbd |
static volatile bool | polling_disabled = false |
static volatile bool | polling_disabled = false |
static volatile bool | polling_disabled = false |
static uintptr_t | sram_buffer_offset |
SGCN buffer offset within SGCN. | |
static uintptr_t | sram_virt_addr |
Virtual address mapped to SRAM. | |
static irq_cmd_t | z8530_cmds [] |
irq_code_t | z8530_kbd |
anonymous enum |
static void gxemul_irq_handler | ( | ipc_callid_t | iid, | |
ipc_call_t * | call | |||
) | [static] |
int kbd_port_init | ( | void | ) |
int main | ( | int | argc, | |
char * | argv[] | |||
) |
static void niagara_key_pressed | ( | void | ) | [static] |
static void sgcn_key_pressed | ( | void | ) | [static] |
static int32_t ski_getchar | ( | void | ) | [static] |