Mercurial > lcfOS
diff cos/kernel/klib.c @ 24:d8627924d40d
Split up in more files and reboot command
author | windel |
---|---|
date | Fri, 02 Dec 2011 14:00:02 +0100 |
parents | |
children | dcce92b1efbc |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cos/kernel/klib.c Fri Dec 02 14:00:02 2011 +0100 @@ -0,0 +1,41 @@ +#include "kernel.h" + +void panic(char *msg) +{ + printf("Kernel panic: "); + printf(msg); + magicBochsBreak(); + halt(); +} + +// IO port helpers: +void outb(uint16_t port, uint8_t value) +{ + asm volatile ("outb %1, %0" : : "dN" (port), "a" (value)); +} + +uint8_t inb(uint16_t port) +{ + uint8_t ret; + asm volatile ("inb %1, %0" : "=a" (ret) : "dN" (port)); + return ret; +} + +uint16_t inw(uint16_t port) +{ + uint16_t ret; + asm volatile ("inw %1, %0" : "=a" (ret) : "dN" (port)); + return ret; +} + +// string functions: +int strncmp(const char* s1, const char* s2, int size) +{ + int i; + for (i=0; i<size; i++) + { + if (s1[i] != s2[i]) return 0; + } + return 1; +} +