diff options
Diffstat (limited to 'src/kernel/libs/drivers/serial.c')
-rw-r--r-- | src/kernel/libs/drivers/serial.c | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/src/kernel/libs/drivers/serial.c b/src/kernel/libs/drivers/serial.c deleted file mode 100644 index 25f89ad..0000000 --- a/src/kernel/libs/drivers/serial.c +++ /dev/null @@ -1,39 +0,0 @@ -#include <stdint.h> -#include <serial.h> -static inline void outb(uint16_t port, uint8_t value) { - asm volatile( - "outb %0, %1" :: "a"(value), "Nd"(port) - ); -} - -static inline uint8_t inb(uint16_t port) { - uint8_t ret; - asm volatile( - "inb %1, %0" : "=a"(ret) : "Nd"(port) - ); - return(ret); -} - -int init_serial(uint16_t port) { - outb(port + 1, 0x00); - outb(port + 3, 0x80); - outb(port + 0, 0x06); - outb(port + 1, 0x00); - outb(port + 3, 0x03); - outb(port + 2, 0xc7); - outb(port + 4, 0x0b); - outb(port + 4, 0x1e); - - outb(port + 0, 0xae); // test char - - if(inb(port + 0) != 0xae) - return 1; - - outb(port + 4, 0x0f); // dissable interupts - return 0; -} - -void _putchar_serial(uint16_t port, char msg) { - while(!(inb(port + 5) & 0x20)); //wait for transmit to be done - outb(port, msg); -} |