Introduce page coloring support to memory manager

This commit is contained in:
2025-12-23 14:27:12 +01:00
parent c7cc536685
commit 288b2f8b24
5 changed files with 143 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/includes/mm/colors.hh
* DESCRIPTION: Memory manager page coloring subsystem
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
*/
#ifndef __XTOSKRNL_MM_COLORS_HH
#define __XTOSKRNL_MM_COLORS_HH
#include <xtos.hh>
/* Memory Manager */
namespace MM
{
class Colors
{
private:
STATIC PMMCOLOR_TABLES FreePages[FreePageList + 1];
STATIC ULONG PagingColors;
STATIC ULONG PagingColorsMask;
public:
STATIC XTAPI VOID ComputePageColoring(VOID);
STATIC XTAPI PMMCOLOR_TABLES GetFreePages(MMPAGELISTS PageList,
ULONG Color);
STATIC XTAPI ULONG GetNextColor();
STATIC XTAPI ULONG GetPagingColors();
STATIC XTAPI ULONG GetPagingColorsMask();
};
}
#endif /* __XTOSKRNL_MM_PFN_HH */