diff options
Diffstat (limited to 'kernel.soso/vmm.h')
-rw-r--r-- | kernel.soso/vmm.h | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/kernel.soso/vmm.h b/kernel.soso/vmm.h deleted file mode 100644 index f7955afb..00000000 --- a/kernel.soso/vmm.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef VMM_H -#define VMM_H - -#include "common.h" - -typedef struct Process Process; -typedef struct List List; - -extern uint32 *gKernelPageDirectory; - -extern uint8 gKernelPageHeapBitmap[]; - - -#define SET_PAGEFRAME_USED(bitmap, pageIndex) bitmap[((uint32) pageIndex)/8] |= (1 << (((uint32) pageIndex)%8)) -#define SET_PAGEFRAME_UNUSED(bitmap, p_addr) bitmap[((uint32) p_addr/PAGESIZE_4M)/8] &= ~(1 << (((uint32) p_addr/PAGESIZE_4M)%8)) -#define IS_PAGEFRAME_USED(bitmap, pageIndex) (bitmap[((uint32) pageIndex)/8] & (1 << (((uint32) pageIndex)%8))) - -#define SET_PAGEHEAP_USED(pageIndex) gKernelPageHeapBitmap[((uint32) pageIndex)/8] |= (1 << (((uint32) pageIndex)%8)) -#define SET_PAGEHEAP_UNUSED(p_addr) gKernelPageHeapBitmap[((uint32) p_addr/PAGESIZE_4K)/8] &= ~(1 << (((uint32) p_addr/PAGESIZE_4K)%8)) -#define IS_PAGEHEAP_USED(pageIndex) (gKernelPageHeapBitmap[((uint32) pageIndex)/8] & (1 << (((uint32) pageIndex)%8))) - -char* getPageFrame4M(); -void releasePageFrame4M(uint32 p_addr); - -uint32 *getPdFromReservedArea4K(); -void releasePdFromReservedArea4K(uint32 *); - -void initializeMemory(uint32 high_mem); - -uint32 *createPd(); -void destroyPd(uint32 *); -uint32 *copyPd(uint32* pd); - -BOOL addPageToPd(uint32* pd, char *v_addr, char *p_addr, int flags); -BOOL removePageFromPd(uint32* pd, char *v_addr, BOOL releasePageFrame); - -void enablePaging(); -void disablePaging(); - -uint32 getTotalPageCount(); -uint32 getUsedPageCount(); -uint32 getFreePageCount(); - -void initializeProcessMmap(Process* process); -void* mapMemory(Process* process, uint32 nBytes, uint32 pAddress, List* pAddressList); -BOOL unmapMemory(Process* process, uint32 nBytes, uint32 vAddress); - -#endif // VMM_H |