30 lines
1.1 KiB
C
30 lines
1.1 KiB
C
|
#ifndef __PAGE_DIRECTORY_ENTRY_
|
||
|
#define __PAGE_DIRECTORY_ENTRY_
|
||
|
|
||
|
enum __PAGE_PDE_FLAGS {
|
||
|
_I86_PDE_PRESENT = 1,
|
||
|
_I86_PDE_WRITABLE = 2,
|
||
|
_I86_PDE_USER = 4,
|
||
|
_I86_PDE_PWT = 8,
|
||
|
_I86_PDE_PCD = 0x10,
|
||
|
_I86_PDE_ACCESSED = 0x20,
|
||
|
_I86_PDE_DIRTY = 0x40,
|
||
|
_I86_PDE_4MB = 0x80,
|
||
|
_I86_PDE_CPU_GLOBAL = 0x100,
|
||
|
_I86_PDE_LV4_GLOBAL = 0x200,
|
||
|
_I86_PDE_FRAME = 0x7FFFF000
|
||
|
};
|
||
|
|
||
|
typedef unsigned pd_entry;
|
||
|
|
||
|
extern void pd_entry_add_attrib (pd_entry* entry, unsigned mask);
|
||
|
extern void pd_entry_del_attrib (pd_entry* entry, unsigned mask);
|
||
|
extern void pd_entry_set_frame (pd_entry* entry, unsigned address);
|
||
|
extern unsigned pd_entry_get_frame (pd_entry entry);
|
||
|
|
||
|
extern unsigned char pd_entry_is_present (pd_entry entry);
|
||
|
extern unsigned char pd_entry_is_user (pd_entry entry);
|
||
|
extern unsigned char pd_entry_is_4mb (pd_entry entry);
|
||
|
extern unsigned char pd_entry_is_writable (pd_entry entry);
|
||
|
extern void pd_entry_enable_global (pd_entry entry);
|
||
|
#endif
|