31 lines
		
	
	
		
			880 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			880 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_PWT	0x008	/* Write through */
 | 
						|
#define I386_VM_PCD	0x010	/* Cache disable */
 | 
						|
#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 */		
 |