summaryrefslogtreecommitdiff
path: root/kernel/src/arch/i686/sys.c
blob: 209fea46629aa2fc6ff64df5bfce753b91d0798d (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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <sys.h>
#include <arch/i686/asm.h>
#include <arch/i686/acpi.h>
#include <arch/i686/drivers/rtc.h>
#include <arch/i686/idt.h>
#include <arch/i686/pic.h>
#include <arch/i686/mboot.h>
#include <arch/i686/drivers/ps2ctrl.h>

void arch_init(void *boot_info) {
    rtc_update();

    idt_init();
    pic_remap();

    load_boot_info(boot_info);

    /* havent refactored to work with paging yet */
    // acpi_init();
    // memory_init();

    ps2ctrl_init();
}

extern void arch_update(void) {
    rtc_update();
}

void arch_halt(void) {
    halt();
}

void arch_wait_io(void) {
    io_wait();
}

void arch_disable_int(void) {
    int_disable();
}

void arch_enable_int(void) {
    int_enable();
}

extern void arch_wait_int(void) {
    int_wait();
}

void arch_poweroff(void) {
    acpi_poweroff();
}