20 #ifndef KERNEL_PROCESSOR_PPC32_COMMON_PHYSICALMEMORYMANAGER_H 21 #define KERNEL_PROCESSOR_PPC32_COMMON_PHYSICALMEMORYMANAGER_H 23 #include "../ppc32/Translation.h" 24 #include "pedigree/kernel/processor/PhysicalMemoryManager.h" 25 #include "pedigree/kernel/utilities/RangeList.h" 55 virtual physical_uintptr_t allocatePage();
56 virtual void freePage(physical_uintptr_t page);
58 MemoryRegion &Region,
size_t cPages,
size_t pageConstraints,
59 size_t Flags, physical_uintptr_t start = -1);
61 void initialise(
Translations &translations, uintptr_t ramMax);
137 #define PMM_INITIAL_START 0x2000000 physical_uintptr_t * m_Stack
#define INITIALISATION_ONLY
static PpcCommonPhysicalMemoryManager & instance()
PageStack & operator=(const PageStack &)
physical_uintptr_t m_NextPage
PpcCommonPhysicalMemoryManager()
RangeList< uintptr_t > m_MemoryRegions
RangeList< uint64_t > m_PhysicalRanges
uintptr_t physicalAddress(physical_uintptr_t address) PURE
Special memory entity in the kernel's virtual address space.
void unmapRegion(MemoryRegion *pRegion)
physical_uintptr_t allocate()
void free(uintptr_t physicalAddress)
Implementation of the PhysicalMemoryManager for common ppc.
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)
PpcCommonPhysicalMemoryManager & operator=(const PpcCommonPhysicalMemoryManager &)
static PpcCommonPhysicalMemoryManager m_Instance
virtual ~PpcCommonPhysicalMemoryManager()
PageStack() INITIALISATION_ONLY