Go to the documentation of this file.
   29 #ifndef _VMM_PAGING_H_ 
   30 #define _VMM_PAGING_H_ 
   36 #define PAGE_SHIFT      12              // Page Shift 
   37 #define PAGE_SIZE       0x1000          // Page Size 
   38 #define PAGE_MASK       (PAGE_SIZE-1)   // Page Mask 
   40 #define PD_INDEX(v_addr)  (v_addr >> 22)                        // Calc Page Directory Index 
   41 #define PD_OFFSET(v_addr) (v_addr >> 0xA)                       // Calc Page Directory OFfset 
   42 #define PT_INDEX(v_addr)  ((v_addr >> 12) & 0x03FF)             // Calc Page Table Offset 
   43 #define PD_BASE_ADDR2     ((PAGE_SIZE << 0xA) + VMM_KERN_START) // Find Out What This Was For 
   45 #define PD_BASE_ADDR      0xC0400000 // Page Directory Addressable Base Address 
   46 #define PT_BASE_ADDR      0xC0000000 // Page Table Addressable Base Address 
   48 #define PD_ENTRIES        (PAGE_SIZE/4) //Return Page Directory Entries 
   49 #define PT_ENTRIES        (PAGE_SIZE/4) //Return Page Table Entries 
   51 #define VM_THRD           0 // Thread 
   52 #define VM_TASK           1 // Task 
   55 #define PAGE_PRESENT        0x00000001 
   56 #define PAGE_WRITE          0x00000002 
   57 #define PAGE_USER           0x00000004 
   58 #define PAGE_WRITE_THROUGH  0x00000008 
   59 #define PAGE_CACHE_DISABLED 0x00000010 
   60 #define PAGE_ACCESSED       0x00000020 
   61 #define PAGE_DIRTY          0x00000040 
   62 #define PAGE_GLOBAL         0x00000080 
   63 #define PAGE_               0x00000100 
   64 #define PAGE_COW            0x00000200 
   65 #define PAGE_STACK          0x00000400 
   66 #define PAGE_WIRED          0x00000800 
   68 #define PAGE_DEFAULT        (PAGE_PRESENT|PAGE_WRITE|PAGE_USER) 
   69 #define KERNEL_PAGE_DEFAULT (PAGE_PRESENT|PAGE_WRITE) 
   71 #define trunc_page(x)   ((x) & ~PAGE_MASK) 
   72 #define round_page(x)   (((x) + PAGE_MASK) & ~PAGE_MASK) 
   74 #define ctob(x)         ((x)<<PAGE_SHIFT) 
   75 #define btoc(x)         (((vm_offset_t)(x)+PAGE_MASK)>>PAGE_SHIFT) 
  
 
int vmm_cleanVirtualSpace(uint32_t)
void * vmm_createVirtualSpace(pidType)
uint32_t vmm_getPhysicalAddr(uint32_t)
void * vmm_getFreeVirtualPage(pidType, int, int)
int vmm_setPageAttributes(uint32_t, uint16_t)
void vmm_pageFault(struct trapframe *, uint32_t)
uint32_t * kernelPageDirectory
int vmmClearVirtualPage(uint32_t pageAddr)
int mmap(struct thread *, struct sys_mmap_args *)
uint32_t vmm_getRealAddr(uint32_t)
int vmm_remapPage(uint32_t, uint32_t, uint16_t, pidType, int haveLock)
int obreak(struct thread *, struct obreak_args *)
void * vmm_copyVirtualSpace(pidType)
void * vmm_getFreeMallocPage(uint16_t count)
void * vmm_getFreePage(pidType)
void * vmm_getFreeKernelPage(pidType pid, uint16_t count)
int munmap(struct thread *, struct sys_munmap_args *)
void * vmm_mapFromTask(pidType, void *, uint32_t)