uint32_t read_serial(fs_node_t *node, uint32_t offset, uint32_t size, uint8_t *buffer) { if (size < 1) { return 0; } memset(buffer, 0x00, 1); uint32_t collected = 0; while (collected < size) { while (!serial_rcvd((int)node->device)) { switch_task(1); } debug_print(NOTICE, "Data received from TTY"); buffer[collected] = serial_recv((int)node->device); collected++; } return collected; }
static int8_t serial_recv(int32_t device) { while (serial_rcvd(device) == 0); return inportb(device); }
static char serial_recv(int device) { while (serial_rcvd(device) == 0) ; return inportb(device); }