summaryrefslogtreecommitdiffhomepage
path: root/Kernel/KernelKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-07-09 20:51:20 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-07-09 20:52:00 +0200
commitdfaf137915094e7ba72f7d7f1f57dc5158d1b6ab (patch)
tree802a5bf263d606b59bb52d5e7434a04c8644d07e /Kernel/KernelKit
parent891245c6c9a78cea6074e336d1b04a2264b2fcce (diff)
MHR-36: A set of major fixes for bootloader and kernel alongside new
implementations. - Implement realloc for kernel scheduler improvements. - Fixed readAll on bootloader's BFileReader. - Add resources for zeta installation. - Add STB header. - Process Heap which replaced the previous User Heap. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Kernel/KernelKit')
-rw-r--r--Kernel/KernelKit/KernelHeap.hpp21
-rw-r--r--Kernel/KernelKit/ProcessHeap.hpp (renamed from Kernel/KernelKit/UserHeap.hpp)6
-rw-r--r--Kernel/KernelKit/ProcessScheduler.hxx6
3 files changed, 18 insertions, 15 deletions
diff --git a/Kernel/KernelKit/KernelHeap.hpp b/Kernel/KernelKit/KernelHeap.hpp
index 0d2f2188..dad0b83e 100644
--- a/Kernel/KernelKit/KernelHeap.hpp
+++ b/Kernel/KernelKit/KernelHeap.hpp
@@ -15,29 +15,34 @@
namespace Kernel
{
/// @brief Declare pointer as free.
- /// @param heapPtr the pointer.
+ /// @param allocatedPtr the pointer.
/// @return
Int32 ke_delete_ke_heap(voidPtr allocatedPtr);
+ /// @brief Declare a new size for allocatedPtr.
+ /// @param allocatedPtr the pointer.
+ /// @return
+ voidPtr ke_realloc_ke_heap(voidPtr allocatedPtr, SizeT newSz);
+
/// @brief Check if pointer is a valid kernel pointer.
- /// @param heapPtr the pointer
+ /// @param allocatedPtr the pointer
/// @return if it exists.
- Boolean ke_is_valid_heap(VoidPtr ptr);
+ Boolean ke_is_valid_heap(VoidPtr allocatedPtr);
/// @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);
+ voidPtr ke_new_ke_heap(const SizeT sz, const Bool rw, const Bool user);
/// @brief Protect the heap with a CRC value.
- /// @param heapPtr HIB pointer.
+ /// @param allocatedPtr pointer.
/// @return if it valid: point has crc now., otherwise fail.
- Boolean ke_protect_ke_heap(VoidPtr heapPtr);
+ Boolean ke_protect_ke_heap(VoidPtr allocatedPtr);
/// @brief Makes a kernel heap page.
- /// @param heapPtr
+ /// @param allocatedPtr the page pointer.
/// @return
- Int32 ke_make_ke_page(VoidPtr heapPtr);
+ Int32 ke_make_ke_page(VoidPtr allocatedPtr);
} // namespace Kernel
diff --git a/Kernel/KernelKit/UserHeap.hpp b/Kernel/KernelKit/ProcessHeap.hpp
index 6f125fdc..0682d969 100644
--- a/Kernel/KernelKit/UserHeap.hpp
+++ b/Kernel/KernelKit/ProcessHeap.hpp
@@ -14,8 +14,8 @@
#include <NewKit/Pmm.hpp>
/// @version 5/11/23
-/// @file UserHeap.hpp
-/// @brief memory heap for user programs.
+/// @file ProcessHeap.hpp
+/// @brief memory heap for user processes.
#define kUserHeapMaxSz (4096)
#define kUserHeapMag (0xFAF0FEF0)
@@ -24,8 +24,6 @@ namespace Kernel
{
typedef enum
{
- /// @brief Driver only heap.
- kUserHeapDriver = 0x2,
/// @brief Shared heap.
kUserHeapShared = 0x4,
/// @brief User and private heap.
diff --git a/Kernel/KernelKit/ProcessScheduler.hxx b/Kernel/KernelKit/ProcessScheduler.hxx
index 7616e91a..578dc163 100644
--- a/Kernel/KernelKit/ProcessScheduler.hxx
+++ b/Kernel/KernelKit/ProcessScheduler.hxx
@@ -10,7 +10,7 @@
#include <ArchKit/ArchKit.hpp>
#include <KernelKit/LockDelegate.hpp>
#include <KernelKit/PermissionSelector.hxx>
-#include <KernelKit/UserHeap.hpp>
+#include <KernelKit/ProcessHeap.hpp>
#include <NewKit/MutableArray.hpp>
#define kSchedMinMicroTime (AffinityKind::kHartStandard)
@@ -254,8 +254,8 @@ namespace Kernel
ProcessTeam& CurrentTeam();
public:
- SizeT Add(Ref<ProcessHeader>& headerRef);
- bool Remove(SizeT headerIndex);
+ SizeT Add(Ref<ProcessHeader>& processRef);
+ Bool Remove(SizeT processSlot);
public:
Ref<ProcessHeader>& TheCurrent();