summaryrefslogtreecommitdiffhomepage
path: root/Private
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-04-08 17:41:48 +0200
committerAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-04-08 17:41:48 +0200
commit79886caeb4bf17b01fcc42c0891a61bcd5863a75 (patch)
treed98c7f7bd4cf5b425c7783e6402d1f28d15c63ab /Private
parent7ec2bda484072982e75666508863ef9903331191 (diff)
Kernel: Thoroughly document code.
Diffstat (limited to 'Private')
-rw-r--r--Private/KernelKit/KernelHeap.hpp18
-rw-r--r--Private/Source/KernelHeap.cxx6
2 files changed, 21 insertions, 3 deletions
diff --git a/Private/KernelKit/KernelHeap.hpp b/Private/KernelKit/KernelHeap.hpp
index 69c84b7f..5358236e 100644
--- a/Private/KernelKit/KernelHeap.hpp
+++ b/Private/KernelKit/KernelHeap.hpp
@@ -13,8 +13,26 @@
#include <NewKit/Defines.hpp>
namespace NewOS {
+
+/// @brief Declare pointer as free.
+/// @param heapPtr the pointer.
+/// @return
Int32 ke_delete_ke_heap(voidPtr allocatedPtr);
+
+/// @brief Check if pointer is a valid kernel pointer.
+/// @param heapPtr the pointer
+/// @return if it exists.
Boolean ke_is_valid_heap(VoidPtr ptr);
+
+/// @brief allocate chunk of memory.
+/// @param sz size of pointer
+/// @param rw read write (true to enable it)
+/// @param user is it accesible by user processes?
+/// @return the pointer
voidPtr ke_new_ke_heap(SizeT sz, const bool rw, const bool user);
+
+/// @brief Protect the heap pointer with a CRC32.
+/// @param heapPtr HIB pointer.
+/// @return if it valid: point has crc now., otherwise fail.
Boolean ke_protect_ke_heap(VoidPtr heapPtr);
} // namespace NewOS
diff --git a/Private/Source/KernelHeap.cxx b/Private/Source/KernelHeap.cxx
index 0f2f57dd..72d291a8 100644
--- a/Private/Source/KernelHeap.cxx
+++ b/Private/Source/KernelHeap.cxx
@@ -127,15 +127,15 @@ Boolean ke_is_valid_heap(VoidPtr heapPtr) {
}
/// @brief Protect the heap pointer with a CRC32.
-/// @param heapPtr
-/// @return
+/// @param heapPtr HIB pointer.
+/// @return if it valid: point has crc now., otherwise fail.
Boolean ke_protect_ke_heap(VoidPtr heapPtr) {
if (heapPtr) {
Detail::HeapInformationBlockPtr virtualAddress =
reinterpret_cast<Detail::HeapInformationBlockPtr>(
(UIntPtr)heapPtr - sizeof(Detail::HeapInformationBlock));
- if (virtualAddress->fPresent && virtualAddress->fMagic == kKernelHeapMagic) {
+ if (virtualAddress->fPresent && kKernelHeapMagic == virtualAddress->fMagic) {
virtualAddress->fCRC32 =
ke_calculate_crc32((Char *)heapPtr, virtualAddress->fTargetPtrSize);
return true;