The Pedigree Project
0.1
|
Implementation of the PhysicalMemoryManager for common mips. More...
#include <PhysicalMemoryManager.h>
Public Member Functions | |
virtual physical_uintptr_t | allocatePage () |
virtual void | freePage (physical_uintptr_t page) |
virtual bool | allocateRegion (MemoryRegion &Region, size_t cPages, size_t pageConstraints, size_t Flags, physical_uintptr_t start=-1) |
Public Member Functions inherited from PhysicalMemoryManager | |
virtual physical_uintptr_t | allocatePage (size_t pageConstraints=0)=0 |
virtual void | pin (physical_uintptr_t page)=0 |
void | allocateMemoryRegionList (Vector< MemoryRegionInfo * > &MemoryRegions) |
void | freeMemoryRegionList (Vector< MemoryRegionInfo * > &MemoryRegions) |
virtual size_t | freePageCount () const |
Static Public Member Functions | |
static MipsCommonPhysicalMemoryManager & | instance () |
Static Public Member Functions inherited from PhysicalMemoryManager | |
static PhysicalMemoryManager & | instance () |
static size_t | getPageSize () PURE |
Protected Member Functions | |
MipsCommonPhysicalMemoryManager () | |
virtual | ~MipsCommonPhysicalMemoryManager () |
Protected Member Functions inherited from PhysicalMemoryManager | |
PhysicalMemoryManager () | |
virtual | ~PhysicalMemoryManager () |
Private Member Functions | |
MipsCommonPhysicalMemoryManager (const MipsCommonPhysicalMemoryManager &) | |
MipsCommonPhysicalMemoryManager & | operator= (const MipsCommonPhysicalMemoryManager &) |
Private Attributes | |
uintptr_t | m_NextPage |
Static Private Attributes | |
static MipsCommonPhysicalMemoryManager | m_Instance |
Additional Inherited Members | |
Static Public Attributes inherited from PhysicalMemoryManager | |
static const size_t | continuous = 1 << 0 |
static const size_t | nonRamMemory = 1 << 1 |
static const size_t | force = 1 << 2 |
static const size_t | virtualOnly = 1 << 3 |
static const size_t | below1MB = 1 << 4 |
static const size_t | below16MB = 1 << 5 |
static const size_t | below4GB = 1 << 6 |
static const size_t | below64GB = 1 << 7 |
static const size_t | addressConstraints |
static const size_t | anonymous = 1 << 8 |
Protected Attributes inherited from PhysicalMemoryManager | |
Vector< MemoryRegion * > | m_MemoryRegions |
Implementation of the PhysicalMemoryManager for common mips.
Definition at line 34 of file kernel/core/processor/mips_common/PhysicalMemoryManager.h.
|
protected |
The constructor
Definition at line 45 of file mips_common/PhysicalMemoryManager.cc.
Referenced by instance().
|
protectedvirtual |
The destructor
Definition at line 49 of file mips_common/PhysicalMemoryManager.cc.
Referenced by instance().
|
private |
The copy-constructor
|
virtual |
Allocate a memory-region with specific constraints the pages need to fullfill.
[in] | Region | reference to the MemoryRegion object |
[in] | cPages | the number of pages to allocate for the MemoryRegion object |
[in] | pageConstraints | the constraints the pages have to fullfill |
[in] | Flags | flags from the VirtualAddressSpace class namespace |
[in] | start | the physical address of the beginning of the region (optional) |
Implements PhysicalMemoryManager.
Definition at line 37 of file mips_common/PhysicalMemoryManager.cc.
Referenced by instance().
|
virtual |
Free a page allocated with the allocatePage() function
[in] | page | physical address of the page |
Implements PhysicalMemoryManager.
Definition at line 33 of file mips_common/PhysicalMemoryManager.cc.
Referenced by instance().
|
inlinestatic |
Get the MipsCommonPhysicalMemoryManager instance
Definition at line 39 of file kernel/core/processor/mips_common/PhysicalMemoryManager.h.
References allocateRegion(), freePage(), m_Instance, MipsCommonPhysicalMemoryManager(), operator=(), and ~MipsCommonPhysicalMemoryManager().
|
private |
The copy-constructor
Referenced by instance().
|
staticprivate |
The MipsCommonPhysicalMemoryManager class instance
Definition at line 71 of file kernel/core/processor/mips_common/PhysicalMemoryManager.h.
Referenced by instance().