From 575c725f998b166f1d286a2664aa3d6061d337fe Mon Sep 17 00:00:00 2001 From: Miguel Date: Sun, 19 Aug 2018 11:26:05 +0200 Subject: cleanup com1 driver and doxygen --- driver/serial.c | 6 ++---- driver/serial.h | 25 ++++++++++++++++--------- 2 files changed, 18 insertions(+), 13 deletions(-) (limited to 'driver') diff --git a/driver/serial.c b/driver/serial.c index f402d0c..1a36bf5 100644 --- a/driver/serial.c +++ b/driver/serial.c @@ -1,9 +1,7 @@ #define FOOLOS_MODULE_NAME "serial" -// https://wiki.osdev.org/Serial_Ports +#include "serial.h" #define PORT 0x3f8 /* COM1 */ - -#include "lib/logger/log.h" void serial_init() { @@ -15,7 +13,7 @@ void serial_init() { x86_outb(PORT + 2, 0xC7); // Enable FIFO, clear them, with 14-byte threshold x86_outb(PORT + 4, 0x0B); // IRQs enabled, RTS/DSR set - log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"COM 1 - initialized"); +// log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"COM 1 - initialized"); } int serial_received() { diff --git a/driver/serial.h b/driver/serial.h index 2f287e6..2e10af8 100644 --- a/driver/serial.h +++ b/driver/serial.h @@ -1,11 +1,18 @@ -void serial_init() +/** + * @file + * Serial Port Driver for COM1 + * + * https://wiki.osdev.org/Serial_Ports + * + * Call serial_init() once before reading and writing with serial_read() + * and serial_write(). Note that reading and writing might block. + */ -char serial_read() { -int is_transmit_empty() { - return x86_inb(PORT + 5) & 0x20; -} +/** Initialize COM1 **/ +void serial_init(); + +/** read one byte from COM1 (blocking) **/ +char serial_read(); -void serial_write(char a) { - while (is_transmit_empty() == 0); - x86_outb(PORT,a); -} +/** write one byte from COM1 (blocking) **/ +void serial_write(char a); -- cgit v1.2.3