XenevaOS
Loading...
Searching...
No Matches
lowlevel.h
Go to the documentation of this file.
1
30#ifndef __LOW_LEVEL_H__
31#define __LOW_LEVEL_H__
32
33#include <stdint.h>
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
42 void outportb(uint16_t port, uint8_t val);
43 void outportw(uint16_t port, uint16_t val);
44 void outportd(uint16_t port, uint32_t val);
45
46 void cpuid(size_t page, size_t* a, size_t* b, size_t* c, size_t* d, size_t subpage = 0);
47 void cacheflush();
48 void tlbflush(void* addr);
53 uint64_t rdmsr(size_t reg);
54 void wrmsr(size_t reg, uint64_t val);
55 size_t read_cr0();
56 void write_cr0(size_t);
57 void call_kernel(void* param, void* entry, void* stack, size_t stacksz);
58
59#ifdef __cplusplus
60}
61#endif
62
63#endif
void wrmsr(size_t reg, uint64_t val)
void outportw(uint16_t port, uint16_t val)
void cacheflush()
void * get_paging_root()
void memory_barrier()
void cpu_startup()
void write_cr0(size_t)
void outportb(uint16_t port, uint8_t val)
void cpuid(size_t page, size_t *a, size_t *b, size_t *c, size_t *d, size_t subpage=0)
void set_paging_root(uint64_t)
uint16_t inportw(uint16_t port)
size_t read_cr0()
uint8_t inportb(uint16_t port)
uint64_t rdmsr(size_t reg)
void tlbflush(void *addr)
void call_kernel(void *param, void *entry, void *stack, size_t stacksz)
uint16_t inportd(uint16_t port)
void outportd(uint16_t port, uint32_t val)
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
void(* entry)(void *)
Definition process.h:91