-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsystem.h
52 lines (43 loc) · 1.44 KB
/
system.h
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
typedef short int16_t;
typedef int int32_t;
typedef char int8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef unsigned char uint8_t;
// memory.c
void *memset(void *dest, uint8_t val, int count);
int strlen(const char *str);
// io.c
void outb(uint16_t port, uint8_t data);
uint8_t inb(uint16_t port);
void outs(uint16_t port, uint16_t data);
uint16_t ins(uint16_t port);
void outl(uint16_t port, uint32_t data);
uint32_t inl(uint16_t port);
void cpu_type_string(char *out);
// video.c
extern unsigned short *screen;
#define SCREEN_WIDTH 80
#define SCREEN_HEIGHT 25
void screen_clear();
void screen_write_char(uint8_t col, uint8_t row, uint8_t attr, uint8_t c);
void screen_write_string(uint8_t col, uint8_t row, uint8_t attr, uint8_t *str);
// keyboard.c
typedef void(*keyboard_func)(uint8_t scancode);
void keyboard_init(keyboard_func func);
// pci.c
typedef void (*pci_scan_func)(uint32_t ids);
uint32_t pci_get_device_ids(uint8_t bus, uint8_t slot, uint8_t func);
uint16_t pci_get_device_class_ids(uint8_t bus, uint8_t slot, uint8_t func);
uint8_t pci_get_device_header_type(uint8_t bus, uint8_t slot, uint8_t func);
void pci_enumerate_devices(pci_scan_func cb);
// interrupts.c
typedef void(*interrupt_irq_func)();
void interrupts_init();
void interrupt_irq_handler(int32_t irq_num, interrupt_irq_func handler);
// debug.c
void debug_init();
void debug_puts(char *msg);
void debug_putsl(char *msg, uint32_t val);
// main.c
void main();