29 lines
958 B
C
29 lines
958 B
C
#ifndef __PAGE_TABLE_ENTRY_
|
|
#define __PAGE_TABLE_ENTRY_
|
|
|
|
enum __PAGE_FLAGS {
|
|
_I86_PTE_PRESENT = 1,
|
|
_I86_PTE_WRITABLE = 2,
|
|
_I86_PTE_USER = 4,
|
|
_I86_PTE_WRITETHROUGH = 8,
|
|
_I86_PTE_NOT_CACHEABLE = 0x10,
|
|
_I86_PTE_ACCESSED = 0x20,
|
|
_I86_PTE_DIRTY = 0x40,
|
|
_I86_PTE_PAT = 0x80,
|
|
_I86_PTE_CPU_GLOBAL = 0x100,
|
|
_I86_PTE_LV4_GLOBAL = 0x200,
|
|
_I86_PTE_FRAME = 0x7FFFF000
|
|
};
|
|
|
|
typedef unsigned pt_entry;
|
|
|
|
extern void pt_entry_add_attrib (pt_entry* entry, unsigned mask);
|
|
extern void pt_entry_del_attrib (pt_entry* entry, unsigned mask);
|
|
extern void pt_entry_set_frame (pt_entry* entry, unsigned address);
|
|
extern unsigned pt_entry_get_frame (pt_entry entry);
|
|
|
|
extern unsigned char pt_entry_is_present (pt_entry entry);
|
|
extern unsigned char pt_entry_is_writable (pt_entry entry);
|
|
|
|
extern void pt_entry_print(pt_entry entry);
|
|
#endif |