io.h (576B)
1 #ifndef IO_H 2 #define IO_H 3 4 #include <stdint.h> 5 6 #define VIDMEM 0xb8000 7 #define VIDEO_SCREEN_WIDTH 80 8 #define VIDEO_SCREEN_HEIGHT 25 9 10 static inline uint8_t inb(uint16_t port) { 11 uint8_t ret; 12 asm volatile("inb %1, %0" : "=a"(ret) : "Nd"(port)); 13 return ret; 14 } 15 16 static inline void outb(uint16_t port, uint8_t value) { 17 asm volatile("outb %0, %1" :: "a"(value), "Nd"(port)); 18 } 19 20 static inline void io_wait() { 21 asm volatile("outb %%al, $0x80" :: "a"(0)); 22 } 23 24 void kprint(char *str); 25 26 void kprintc(char c); 27 28 void kprinti(int value); 29 30 void kprintx(int value); 31 32 #endif