NeKernel dev
Loading...
Searching...
No Matches
HeapMgr.cc File Reference

Heap system that serves as the main memory manager. More...

#include <ArchKit/ArchKit.h>
#include <KernelKit/DebugOutput.h>
#include <KernelKit/HeapMgr.h>
#include <KernelKit/KPC.h>
#include <NeKit/Crc32.h>
#include <NeKit/PageMgr.h>
#include <NeKit/Utils.h>

Classes

struct  Kernel::Detail::MM_INFORMATION_BLOCK
 Kernel heap information block. Located before the address bytes. | HIB | CLASS/STRUCT/DATA TYPES... |. More...

Namespaces

namespace  Kernel
 UPS inline definitions.
namespace  Kernel::Detail
 Implementation details namespace.

Macros

#define kHeapMgrMagic   (0xD4D75)
#define kHeapMgrAlignSz   (4U)

Typedefs

typedef MM_INFORMATION_BLOCKKernel::Detail::MM_INFORMATION_BLOCK_PTR

Functions

_Output auto Kernel::Detail::mm_check_ptr_address (VoidPtr heap_ptr) -> Bool
 Check for heap address validity.
VoidPtr Kernel::mm_alloc_ptr (SizeT sz, Bool wr, Bool user, SizeT pad_amount=0)
 Allocate chunk of memory.
Int32 Kernel::mm_make_page (VoidPtr heap_ptr)
 Makes a Kernel page.
Int32 Kernel::mm_set_ptr_flags (VoidPtr heap_ptr, UInt64 flags)
 Overwrites and set the flags of a heap header.
UInt64 Kernel::mm_get_ptr_flags (VoidPtr heap_ptr)
 Gets the flags of a heap header.
Int32 Kernel::mm_free_ptr (VoidPtr heap_ptr)
 Declare pointer as free.
Boolean Kernel::mm_is_valid_ptr (VoidPtr heap_ptr)
 Check if pointer is a valid Kernel pointer.
Boolean Kernel::mm_protect_ptr (VoidPtr heap_ptr)
 Protect the heap with a CRC value.

Variables

struct PACKED Kernel::Detail::MM_INFORMATION_BLOCK
STATIC PageMgr Kernel::kPageMgr

Detailed Description

Heap system that serves as the main memory manager.

Macro Definition Documentation

◆ kHeapMgrAlignSz

#define kHeapMgrAlignSz   (4U)

◆ kHeapMgrMagic

#define kHeapMgrMagic   (0xD4D75)