Refactor memory manager initialization into MM::Manager
This commit is contained in:
@@ -56,8 +56,8 @@ list(APPEND XTOSKRNL_SOURCE
|
|||||||
${XTOSKRNL_SOURCE_DIR}/mm/${ARCH}/paging.cc
|
${XTOSKRNL_SOURCE_DIR}/mm/${ARCH}/paging.cc
|
||||||
${XTOSKRNL_SOURCE_DIR}/mm/data.cc
|
${XTOSKRNL_SOURCE_DIR}/mm/data.cc
|
||||||
${XTOSKRNL_SOURCE_DIR}/mm/hlpool.cc
|
${XTOSKRNL_SOURCE_DIR}/mm/hlpool.cc
|
||||||
${XTOSKRNL_SOURCE_DIR}/mm/init.cc
|
|
||||||
${XTOSKRNL_SOURCE_DIR}/mm/kpool.cc
|
${XTOSKRNL_SOURCE_DIR}/mm/kpool.cc
|
||||||
|
${XTOSKRNL_SOURCE_DIR}/mm/mmgr.cc
|
||||||
${XTOSKRNL_SOURCE_DIR}/mm/paging.cc
|
${XTOSKRNL_SOURCE_DIR}/mm/paging.cc
|
||||||
${XTOSKRNL_SOURCE_DIR}/po/idle.cc
|
${XTOSKRNL_SOURCE_DIR}/po/idle.cc
|
||||||
${XTOSKRNL_SOURCE_DIR}/rtl/${ARCH}/dispatch.cc
|
${XTOSKRNL_SOURCE_DIR}/rtl/${ARCH}/dispatch.cc
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
#include XTOS_ARCH_HEADER(mm, paging.hh)
|
#include XTOS_ARCH_HEADER(mm, paging.hh)
|
||||||
|
|
||||||
#include <mm/hlpool.hh>
|
#include <mm/hlpool.hh>
|
||||||
#include <mm/init.hh>
|
|
||||||
#include <mm/kpool.hh>
|
#include <mm/kpool.hh>
|
||||||
|
#include <mm/mmgr.hh>
|
||||||
|
|
||||||
#endif /* __XTOSKRNL_MM_HH */
|
#endif /* __XTOSKRNL_MM_HH */
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
/**
|
/**
|
||||||
* PROJECT: ExectOS
|
* PROJECT: ExectOS
|
||||||
* COPYRIGHT: See COPYING.md in the top level directory
|
* COPYRIGHT: See COPYING.md in the top level directory
|
||||||
* FILE: xtoskrnl/includes/mm/init.hh
|
* FILE: xtoskrnl/includes/mm/mmgr.hh
|
||||||
* DESCRIPTION: Memory Manager initialization
|
* DESCRIPTION: Memory Manager
|
||||||
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
|
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __XTOSKRNL_MM_INIT_HH
|
#ifndef __XTOSKRNL_MM_MMGR_HH
|
||||||
#define __XTOSKRNL_MM_INIT_HH
|
#define __XTOSKRNL_MM_MMGR_HH
|
||||||
|
|
||||||
#include <xtos.hh>
|
#include <xtos.hh>
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
/* Memory Manager */
|
/* Memory Manager */
|
||||||
namespace MM
|
namespace MM
|
||||||
{
|
{
|
||||||
class Init
|
class Manager
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
STATIC PLOADER_MEMORY_DESCRIPTOR FreeDescriptor;
|
STATIC PLOADER_MEMORY_DESCRIPTOR FreeDescriptor;
|
||||||
@@ -36,4 +36,4 @@ namespace MM
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* __XTOSKRNL_MM_INIT_HH */
|
#endif /* __XTOSKRNL_MM_MMGR_HH */
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
/**
|
/**
|
||||||
* PROJECT: ExectOS
|
* PROJECT: ExectOS
|
||||||
* COPYRIGHT: See COPYING.md in the top level directory
|
* COPYRIGHT: See COPYING.md in the top level directory
|
||||||
* FILE: xtoskrnl/mm/init.cc
|
* FILE: xtoskrnl/mm/mmgr.cc
|
||||||
* DESCRIPTION: Memory Manager initialization routines
|
* DESCRIPTION: Memory Manager
|
||||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||||
|
* Aiken Harris <harraiken91@gmail.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <xtos.hh>
|
#include <xtos.hh>
|
||||||
@@ -18,7 +19,7 @@
|
|||||||
*/
|
*/
|
||||||
XTAPI
|
XTAPI
|
||||||
VOID
|
VOID
|
||||||
MM::Init::InitializeMemoryManager(VOID)
|
MM::Manager::InitializeMemoryManager(VOID)
|
||||||
{
|
{
|
||||||
/* Scan memory descriptors provided by the boot loader */
|
/* Scan memory descriptors provided by the boot loader */
|
||||||
ScanMemoryDescriptors();
|
ScanMemoryDescriptors();
|
||||||
@@ -44,7 +45,7 @@ MM::Init::InitializeMemoryManager(VOID)
|
|||||||
*/
|
*/
|
||||||
XTAPI
|
XTAPI
|
||||||
VOID
|
VOID
|
||||||
MM::Init::ScanMemoryDescriptors(VOID)
|
MM::Manager::ScanMemoryDescriptors(VOID)
|
||||||
{
|
{
|
||||||
PLIST_ENTRY LoaderMemoryDescriptors, MemoryMappings;
|
PLIST_ENTRY LoaderMemoryDescriptors, MemoryMappings;
|
||||||
PLOADER_MEMORY_DESCRIPTOR MemoryDescriptor;
|
PLOADER_MEMORY_DESCRIPTOR MemoryDescriptor;
|
||||||
@@ -124,7 +125,7 @@ MM::Init::ScanMemoryDescriptors(VOID)
|
|||||||
*/
|
*/
|
||||||
XTAPI
|
XTAPI
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
MM::Init::VerifyMemoryTypeFree(LOADER_MEMORY_TYPE MemoryType)
|
MM::Manager::VerifyMemoryTypeFree(LOADER_MEMORY_TYPE MemoryType)
|
||||||
{
|
{
|
||||||
return ((MemoryType == LoaderFree) || (MemoryType == LoaderFirmwareTemporary) ||
|
return ((MemoryType == LoaderFree) || (MemoryType == LoaderFirmwareTemporary) ||
|
||||||
(MemoryType == LoaderLoadedProgram) || (MemoryType == LoaderOsloaderStack));
|
(MemoryType == LoaderLoadedProgram) || (MemoryType == LoaderOsloaderStack));
|
||||||
@@ -142,7 +143,7 @@ MM::Init::VerifyMemoryTypeFree(LOADER_MEMORY_TYPE MemoryType)
|
|||||||
*/
|
*/
|
||||||
XTAPI
|
XTAPI
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
MM::Init::VerifyMemoryTypeInvisible(LOADER_MEMORY_TYPE MemoryType)
|
MM::Manager::VerifyMemoryTypeInvisible(LOADER_MEMORY_TYPE MemoryType)
|
||||||
{
|
{
|
||||||
return ((MemoryType == LoaderFirmwarePermanent) ||
|
return ((MemoryType == LoaderFirmwarePermanent) ||
|
||||||
(MemoryType == LoaderSpecialMemory) ||
|
(MemoryType == LoaderSpecialMemory) ||
|
||||||
Reference in New Issue
Block a user