summaryrefslogtreecommitdiff
path: root/kernel/x86.h
blob: b6347223194072a60492ac14b5b64b73770e6319 (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
30
31
32
33
34
#ifndef FOOLOS_X86_H
#define FOOLOS_X86_H

#include <stdint.h>

// http://wiki.osdev.org/Interrupt_Service_Routines

// TODO : Real sleep()!

void x86_outb(uint32_t port, uint8_t data);
uint8_t x86_inb(uint32_t port);

void x86_outw(uint32_t port, uint16_t data);
uint16_t x86_inw(uint32_t port);

void x86_outl(uint32_t port, uint32_t data);
uint32_t x86_inl(uint32_t 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);

#endif