blob: 2cd9e8e7f0386359da3157dad5ea5cfb25236f59 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#ifndef FOOLOS_X86_H
#define FOOLOS_X86_H
#include <stdint.h>
// http://wiki.osdev.org/Interrupt_Service_Routines
//void sleep(int i); // TODO : Real sleep!
void x86_outb(int port, uint8_t data);
uint8_t x86_inb(int port);
void x86_outw(int port, uint16_t data);
uint16_t x86_inw(int port);
void x86_outl(int port, uint32_t data);
uint32_t x86_inl(int port);
void x86_set_pdbr(uint32_t addr);
void x86_paging_enable();
void x86_flush_tlb(uint32_t addr);
void x86_int_enable();
void x86_int_disable();
uint32_t x86_get_cr0();
uint32_t x86_get_cr1();
uint32_t x86_get_cr2();
uint32_t x86_get_cr3();
uint32_t x86_get_cr4();
uint8_t x86_xchg(uint8_t *addr, uint8_t val);
void sleep(int i);
#endif
|