29 lines
788 B
C
29 lines
788 B
C
|
/*
|
||
|
sys/vm.h
|
||
|
*/
|
||
|
|
||
|
#define PAGE_SIZE 4096
|
||
|
|
||
|
/* MIOCMAP */
|
||
|
struct mapreq
|
||
|
{
|
||
|
void *base;
|
||
|
size_t size;
|
||
|
off_t offset;
|
||
|
int readonly;
|
||
|
};
|
||
|
|
||
|
/* i386 paging constants */
|
||
|
#define I386_VM_PRESENT 0x001 /* Page is present */
|
||
|
#define I386_VM_WRITE 0x002 /* Read/write access allowed */
|
||
|
#define I386_VM_USER 0x004 /* User access allowed */
|
||
|
#define I386_VM_ADDR_MASK 0xFFFFF000 /* physical address */
|
||
|
|
||
|
#define I386_VM_PT_ENT_SIZE 4 /* Size of a page table entry */
|
||
|
#define I386_VM_DIR_ENTRIES 1024 /* Number of entries in a page dir */
|
||
|
#define I386_VM_DIR_ENT_SHIFT 22 /* Shift to get entry in page dir. */
|
||
|
#define I386_VM_PT_ENT_SHIFT 12 /* Shift to get entry in page table */
|
||
|
#define I386_VM_PT_ENT_MASK 0x3FF /* Mask to get entry in page table */
|
||
|
|
||
|
#define I386_CR0_PG 0x80000000 /* Enable paging */
|