|
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 |