
#ifndef OS_H
#define OS_H

int OS_Init(void);

void OS_Deinit(void);


unsigned int OS_Execute_IO_Block(_API_IO_Struct * IO_Block,unsigned int Size);

void * OS_Alloc_Execute_Read_Write(unsigned int Size);
void   OS_Free_Execute_Read_Write(void * Adr,unsigned int Size);

void * OS_Memory_Allocate(unsigned long Size);
void   OS_Memory_Free(void * Adr,unsigned long Size);

void * OS_Physical_Memory_Map(void * Adr,unsigned long Size);
void   OS_Physical_Memory_Unmap(void * Adr,unsigned long Size);

int OS_Microsecond_Delay(unsigned int DelayCount);
int OS_CPUID(_API_ASM_REGS_Struct * _API_ASM_REGS);
int OS_Read_MSR(_API_ASM_REGS_Struct * _API_ASM_REGS);
int OS_Write_MSR(_API_ASM_REGS_Struct * _API_ASM_REGS);


#endif // OS_H
