#include #include #include "dev.h" #include "serialdev.h" #include "errors.h" #include "util/util.h" #include "hshtb.h" #include "sysdefs/devctl.h" #include "drivers/serial/serial.h" #include "kprintf.h" int32_t serialdev_sendb(uint8_t *buffer, size_t len, void *extra) { (void)len; (void)extra; serial_sendb(buffer[0]); return E_OK; } int32_t serialdev_sendready(uint8_t *buffer, size_t len, void *extra) { (void)buffer; (void)len; (void) extra; return serial_sendready(); } int32_t serialdev_recvb(uint8_t *buffer, size_t len, void *extra) { (void)buffer; (void)len; (void)extra; return serial_recvb(); } int32_t serialdev_recvready(uint8_t *buffer, size_t len, void *extra) { (void)buffer; (void)len; (void)extra; return serial_recvready(); } void serialdev_init(void) { Dev *serialdev = NULL; HSHTB_ALLOC(DEVTABLE.devs, ident, "serialdev", serialdev); serialdev->fns[DEV_SERIALDEV_SENDB] = &serialdev_sendb; serialdev->fns[DEV_SERIALDEV_SENDREADY] = &serialdev_sendready; serialdev->fns[DEV_SERIALDEV_RECVB] = &serialdev_recvb; serialdev->fns[DEV_SERIALDEV_RECVREADY] = &serialdev_recvready; spinlock_init(&serialdev->spinlock); serial_init(); }