#pragma once

extern "C"{

void io_hlt(void);
void io_cli(void);
void io_sti(void);
void io_stihlt(void);
DWORD io_in8(DWORD port);
void io_out8(DWORD port, DWORD data);
DWORD io_load_eflags(void);
void io_store_eflags(DWORD eflags);
void load_gdtr(DWORD limit, DWORD addr);
void load_idtr(DWORD limit, DWORD addr);
DWORD load_cr0(void);
void store_cr0(DWORD cr0);
DWORD load_cr3(void);
void store_cr3(DWORD cr3);
void load_tr(DWORD tr);
void asm_inthandler00(void);
void asm_inthandler0a(void);
void asm_inthandler0b(void);
void asm_inthandler0c(void);
void asm_inthandler0d(void);
void asm_inthandler20(void);
void asm_inthandler0e(void);
void asm_inthandler21(void);
void asm_inthandler2c(void);
void farjmp(DWORD eip, DWORD cs);

};