Main Page   Modules   Alphabetical List   Data Structures   File List   Data Fields  

ToyVirtualMem.h

00001 /***************************************************************************
00002                           ToyVirtualMem.h  - Glue logic to simplify
00003     use of virtual memory and pages in toy memory manager
00004                              -------------------
00005     begin                : Sat Feb 22 2003
00006     copyright            : (C) 2003 by Tyler Montbriand
00007     email                : monttyle@heavyspace.ca
00008  ***************************************************************************/
00009 #ifndef __TOYVIRTUALMEM_H__
00010 #define __TOYVIRTUALMEM_H__
00011 
00012 #ifdef __cplusplus
00013 extern "C" {
00014 #endif
00015 
00021 int TMM_PagingEnabled(ToyMM *tmm);
00022 
00024 int TMM_GetRealAddress(ToyMM *tmm, int process, int vaddr);
00025 
00027 int TMM_GetNumPages(ToyMM *tmm);
00028 
00030 int TMM_GetFramedSize(ToyMM *tmm, int size);
00031 
00033 int TMM_VirtualToReal(ToyMM *tmm, Process *proc, int vaddr);
00034 
00036 int TMM_GetNumFrames(ToyMM *tmm, int length);
00037 
00039 void TMM_AssignFrame(ToyMM *tmm, int process, int frame, int page);
00040 
00042 void TMM_EmptyFrame(ToyMM *tmm, int frame);
00043 
00045 void TMM_FreeFrame(ToyMM *tmm, int process, int page);
00046 
00048 int TMM_FindFreeFrame(ToyMM *tmm);
00049 
00051 int TMM_FrameFree(ToyMM *tmm, int frame);
00052 
00054 struct InvPageTable *TMM_GetFrame(ToyMM *tmm, int frame);
00055 
00057 struct PageTable *TMM_GetPage(ToyMM *tmm, int process, int page);
00058 
00060 int TMM_PageFree(ToyMM *tmm, int process, int page);
00061 
00063 int TMM_CountFreePages(ToyMM *tmm, int process);
00065 void TMM_IncrementLinearScan(ToyMM *tmm);
00067 int TMM_PageSwappedOut(ToyMM *tmm, int process, int page);
00069 int TMM_PageSwappedIn(ToyMM *tmm, int process, int page);
00071 void TMM_MarkPageSwappedOut(ToyMM *tmm,int process,int page);
00073 void TMM_ClearFrameStatus(ToyMM *tmm, int frame);
00075 void TMM_SetFrameStatus(ToyMM *tmm, int frame);
00076 
00079 #ifdef __cplusplus
00080   }
00081 #endif
00082 
00083 #endif/*__TOYVIRTUALMEM_H__*/
00084 

Generated on Fri Apr 4 14:29:07 2003 for ToyMem by doxygen1.3-rc3