X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/2804ceee4ce65d49e9d52d0ed817317c0ac9efdc..a362b4b2c4abbf2da6ec14cb44a8685a81107f6a:/lunaix-os/kernel/tty/lxconsole.c diff --git a/lunaix-os/kernel/tty/lxconsole.c b/lunaix-os/kernel/tty/lxconsole.c index 31afa64..21802be 100644 --- a/lunaix-os/kernel/tty/lxconsole.c +++ b/lunaix-os/kernel/tty/lxconsole.c @@ -39,8 +39,8 @@ print_control_code(const char cntrl) int __lxconsole_listener(struct input_device* dev) { - uint32_t key = dev->current_pkt.sys_code; - uint32_t type = dev->current_pkt.pkt_type; + u32_t key = dev->current_pkt.sys_code; + u32_t type = dev->current_pkt.pkt_type; kbd_kstate_t state = key >> 16; ttychr = key & 0xff; key = key & 0xffff; @@ -86,7 +86,7 @@ done: } int -__tty_exec_cmd(struct device* dev, uint32_t req, va_list args) +__tty_exec_cmd(struct device* dev, u32_t req, va_list args) { switch (req) { case TIOCGPGRP: @@ -119,10 +119,28 @@ lxconsole_init() fifo_init(&lx_console.input, valloc(4096), 4096, 0); lx_console.flush_timer = NULL; +} + +int +__tty_write_pg(struct device* dev, void* buf, size_t offset) +{ + return __tty_write(dev, buf, offset, PG_SIZE); +} +int +__tty_read_pg(struct device* dev, void* buf, size_t offset) +{ + return __tty_read(dev, buf, offset, PG_SIZE); +} + +void +lxconsole_spawn_ttydev() +{ struct device* tty_dev = device_addseq(NULL, &lx_console, "tty"); tty_dev->write = __tty_write; + tty_dev->write_page = __tty_write_pg; tty_dev->read = __tty_read; + tty_dev->read_page = __tty_read_pg; tty_dev->exec_cmd = __tty_exec_cmd; waitq_init(&lx_reader);