diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-07-09 20:51:20 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-07-09 20:52:00 +0200 |
| commit | dfaf137915094e7ba72f7d7f1f57dc5158d1b6ab (patch) | |
| tree | 802a5bf263d606b59bb52d5e7434a04c8644d07e /Kernel/KernelKit | |
| parent | 891245c6c9a78cea6074e336d1b04a2264b2fcce (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.hpp | 21 | ||||
| -rw-r--r-- | Kernel/KernelKit/ProcessHeap.hpp (renamed from Kernel/KernelKit/UserHeap.hpp) | 6 | ||||
| -rw-r--r-- | Kernel/KernelKit/ProcessScheduler.hxx | 6 |
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(); |
