diff options
Diffstat (limited to 'dev')
| -rw-r--r-- | dev/ZBAKit/src/HEL/AMD64/BootMain.cc | 2 | ||||
| -rw-r--r-- | dev/ZKAKit/HALKit/AMD64/HalPagingMgrAMD64.cc | 2 | ||||
| -rw-r--r-- | dev/ZKAKit/HALKit/AMD64/HalTimerAMD64.cc | 2 | ||||
| -rw-r--r-- | dev/ZKAKit/HALKit/ARM64/HalPagingMgrARM64.cc | 2 | ||||
| -rw-r--r-- | dev/ZKAKit/KernelKit/Heap.h | 11 | ||||
| -rw-r--r-- | dev/ZKAKit/src/ACPIFactoryInterface.cc | 2 | ||||
| -rw-r--r-- | dev/ZKAKit/src/CxxAbi-AMD64.cc | 2 | ||||
| -rw-r--r-- | dev/ZKAKit/src/CxxAbi-ARM64.cc | 2 | ||||
| -rw-r--r-- | dev/ZKAKit/src/Heap.cc | 53 | ||||
| -rw-r--r-- | dev/ZKAKit/src/NeFS+IO.cc | 4 | ||||
| -rw-r--r-- | dev/ZKAKit/src/Timer.cc | 2 | ||||
| -rw-r--r-- | dev/ZKAKit/src/User.cc | 2 | ||||
| -rw-r--r-- | dev/ZKAKit/src/UserProcessScheduler.cc | 8 | ||||
| -rw-r--r-- | dev/ZKAKit/src/Utils.cc | 4 |
14 files changed, 72 insertions, 26 deletions
diff --git a/dev/ZBAKit/src/HEL/AMD64/BootMain.cc b/dev/ZBAKit/src/HEL/AMD64/BootMain.cc index f7ed885b..98db6587 100644 --- a/dev/ZBAKit/src/HEL/AMD64/BootMain.cc +++ b/dev/ZBAKit/src/HEL/AMD64/BootMain.cc @@ -96,7 +96,7 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle, #ifdef __ZKA_USE_FB__ if (!boot_init_fb()) - return -1; ///! Init the GOP. + return 1; ///! Init the GOP. for (SizeT index_vt = 0; index_vt < SystemTable->NumberOfTableEntries; ++index_vt) diff --git a/dev/ZKAKit/HALKit/AMD64/HalPagingMgrAMD64.cc b/dev/ZKAKit/HALKit/AMD64/HalPagingMgrAMD64.cc index 53553a13..3c7ea836 100644 --- a/dev/ZKAKit/HALKit/AMD64/HalPagingMgrAMD64.cc +++ b/dev/ZKAKit/HALKit/AMD64/HalPagingMgrAMD64.cc @@ -129,7 +129,7 @@ namespace Kernel::HAL /***********************************************************************************/ STATIC Int32 mmi_map_page_table_entry(VoidPtr virtual_address, UInt32 flags, ZKA_PTE* pt_entry, ZKA_PDE* pd_entry) { - if (!pt_entry) return -1; + if (!pt_entry) return 1; pt_entry->Present = true; diff --git a/dev/ZKAKit/HALKit/AMD64/HalTimerAMD64.cc b/dev/ZKAKit/HALKit/AMD64/HalTimerAMD64.cc index cb572e70..289898d6 100644 --- a/dev/ZKAKit/HALKit/AMD64/HalTimerAMD64.cc +++ b/dev/ZKAKit/HALKit/AMD64/HalTimerAMD64.cc @@ -65,7 +65,7 @@ HardwareTimer::~HardwareTimer() Int32 HardwareTimer::Wait() noexcept
{
if (fWaitFor < 1)
- return -1;
+ return 1;
// if not enabled yet.
if (!(*(fDigitalTimer + cHPETConfigRegValue) & (1 << 0)))
diff --git a/dev/ZKAKit/HALKit/ARM64/HalPagingMgrARM64.cc b/dev/ZKAKit/HALKit/ARM64/HalPagingMgrARM64.cc index 5b262cf9..75973a24 100644 --- a/dev/ZKAKit/HALKit/ARM64/HalPagingMgrARM64.cc +++ b/dev/ZKAKit/HALKit/ARM64/HalPagingMgrARM64.cc @@ -64,7 +64,7 @@ namespace Kernel::HAL return mmi_map_page_table_entry(page_store.fInternalStore.fVAddr, flags, page_store.fInternalStore.fPte); } - return -1; + return 1; } /// @brief Maps flags for a specific pte. diff --git a/dev/ZKAKit/KernelKit/Heap.h b/dev/ZKAKit/KernelKit/Heap.h index 09baa40a..9fb455bb 100644 --- a/dev/ZKAKit/KernelKit/Heap.h +++ b/dev/ZKAKit/KernelKit/Heap.h @@ -46,7 +46,16 @@ namespace Kernel /// @brief Makes a Kernel page. /// @param heap_ptr the page pointer. /// @return status code - Int32 mm_make_ke_page(VoidPtr heap_ptr); + Int32 mm_make_page(VoidPtr heap_ptr); + + /// @brief Overwrites and set the flags of a heap header. + /// @param heap_ptr the pointer to update. + /// @param flags the flags to set. + Int32 mm_make_flags(VoidPtr heap_ptr, UInt64 flags) + + /// @brief Gets the flags of a heap header. + /// @param heap_ptr the pointer to get. + UInt64 mm_get_flags(VoidPtr heap_ptr); /// @brief Allocate C++ class. template <typename T, typename... Args> diff --git a/dev/ZKAKit/src/ACPIFactoryInterface.cc b/dev/ZKAKit/src/ACPIFactoryInterface.cc index 298221b3..27de28de 100644 --- a/dev/ZKAKit/src/ACPIFactoryInterface.cc +++ b/dev/ZKAKit/src/ACPIFactoryInterface.cc @@ -82,7 +82,7 @@ namespace Kernel bool ACPIFactoryInterface::Checksum(const Char* checksum, SSizeT len) { if (len == 0) - return -1; + return 1; char chr = 0; diff --git a/dev/ZKAKit/src/CxxAbi-AMD64.cc b/dev/ZKAKit/src/CxxAbi-AMD64.cc index 2eff6926..0228489f 100644 --- a/dev/ZKAKit/src/CxxAbi-AMD64.cc +++ b/dev/ZKAKit/src/CxxAbi-AMD64.cc @@ -30,7 +30,7 @@ EXTERN_C void ___chkstk_ms(void) EXTERN_C int atexit(void (*f)(void*), void* arg, void* dso) { if (__atexit_func_count >= kAtExitMacDestructors) - return -1; + return 1; __atexit_funcs[__atexit_func_count].destructor_func = f; __atexit_funcs[__atexit_func_count].obj_ptr = arg; diff --git a/dev/ZKAKit/src/CxxAbi-ARM64.cc b/dev/ZKAKit/src/CxxAbi-ARM64.cc index de3bcded..8924d32f 100644 --- a/dev/ZKAKit/src/CxxAbi-ARM64.cc +++ b/dev/ZKAKit/src/CxxAbi-ARM64.cc @@ -24,7 +24,7 @@ EXTERN_C void __chkstk(void) EXTERN_C int atexit(void (*f)(void*), void* arg, void* dso) { if (__atexit_func_count >= kAtExitMacDestructors) - return -1; + return 1; __atexit_funcs[__atexit_func_count].destructor_func = f; __atexit_funcs[__atexit_func_count].obj_ptr = arg; diff --git a/dev/ZKAKit/src/Heap.cc b/dev/ZKAKit/src/Heap.cc index 5826017a..65781f0e 100644 --- a/dev/ZKAKit/src/Heap.cc +++ b/dev/ZKAKit/src/Heap.cc @@ -52,9 +52,12 @@ namespace Kernel /// @brief Is this a page pointer? Boolean fPage : 1; - ///! @brief 32-bit CRC checksum. + /// @brief 32-bit CRC checksum. UInt32 fCRC32; + /// @brief 64-bit Allocation flags. + UInt64 fFlags; + /// @brief 64-bit pointer size. SizeT fHeapSize; @@ -99,7 +102,7 @@ namespace Kernel if (!ptr_heap || new_sz < 1) return nullptr; - kcout << "This function is not implemented in the kernel, please refrain from using that.\r"; + kcout << "This function is not implemented by the MicroKernel, please use the BSD layer realloc instead.\r"; ke_stop(RUNTIME_CHECK_PROCESS); return nullptr; @@ -147,17 +150,17 @@ namespace Kernel /// @brief Makes a page heap. /// @param heap_ptr the pointer to make a page heap. /// @return kErrorSuccess if successful, otherwise an error code. - Int32 mm_make_ke_page(VoidPtr heap_ptr) + Int32 mm_make_page(VoidPtr heap_ptr) { if (Detail::mm_check_heap_address(heap_ptr) == No) - return -kErrorHeapNotPresent; + return kErrorHeapNotPresent; Detail::HEAP_INFORMATION_BLOCK_PTR heap_info_ptr = reinterpret_cast<Detail::HEAP_INFORMATION_BLOCK_PTR>( (UIntPtr)heap_ptr - sizeof(Detail::HEAP_INFORMATION_BLOCK)); if (!heap_ptr) - return -kErrorHeapNotPresent; + return kErrorHeapNotPresent; heap_info_ptr->fPage = true; @@ -166,13 +169,47 @@ namespace Kernel return kErrorSuccess; } + /// @brief Overwrites and set the flags of a heap header. + /// @param heap_ptr the pointer to update. + /// @param flags the flags to set. + Int32 mm_make_flags(VoidPtr heap_ptr, UInt64 flags) + { + if (Detail::mm_check_heap_address(heap_ptr) == No) + return kErrorHeapNotPresent; + + Detail::HEAP_INFORMATION_BLOCK_PTR heap_info_ptr = + reinterpret_cast<Detail::HEAP_INFORMATION_BLOCK_PTR>( + (UIntPtr)heap_ptr - sizeof(Detail::HEAP_INFORMATION_BLOCK)); + + if (!heap_ptr) + return kErrorHeapNotPresent; + + heap_info_ptr->fFlags = flags; + + return kErrorSuccess; + } + + /// @brief Gets the flags of a heap header. + /// @param heap_ptr the pointer to get. + UInt64 mm_get_flags(VoidPtr heap_ptr) + { + Detail::HEAP_INFORMATION_BLOCK_PTR heap_info_ptr = + reinterpret_cast<Detail::HEAP_INFORMATION_BLOCK_PTR>( + (UIntPtr)heap_ptr - sizeof(Detail::HEAP_INFORMATION_BLOCK)); + + if (!heap_ptr) + return kErrorHeapNotPresent; + + return heap_info_ptr->fFlags; + } + /// @brief Declare pointer as free. /// @param heap_ptr the pointer. /// @return Int32 mm_delete_heap(VoidPtr heap_ptr) { if (Detail::mm_check_heap_address(heap_ptr) == No) - return -kErrorHeapNotPresent; + return kErrorHeapNotPresent; Detail::HEAP_INFORMATION_BLOCK_PTR heap_info_ptr = reinterpret_cast<Detail::HEAP_INFORMATION_BLOCK_PTR>( @@ -182,7 +219,7 @@ namespace Kernel { if (!heap_info_ptr->fPresent) { - return -kErrorHeapNotPresent; + return kErrorHeapNotPresent; } if (heap_info_ptr->fCRC32 != 0) @@ -217,7 +254,7 @@ namespace Kernel return kErrorSuccess; } - return -kErrorInternal; + return kErrorInternal; } /// @brief Check if pointer is a valid Kernel pointer. diff --git a/dev/ZKAKit/src/NeFS+IO.cc b/dev/ZKAKit/src/NeFS+IO.cc index b27f93d4..392e790b 100644 --- a/dev/ZKAKit/src/NeFS+IO.cc +++ b/dev/ZKAKit/src/NeFS+IO.cc @@ -36,7 +36,7 @@ using namespace Kernel; Int32 fs_newfs_read(MountpointInterface* Mnt, DriveTrait& DrvTrait, Int32 DrvIndex) { if (!Mnt) - return -1; + return 1; DrvTrait.fPacket.fPacketGood = false; @@ -71,7 +71,7 @@ Int32 fs_newfs_read(MountpointInterface* Mnt, DriveTrait& DrvTrait, Int32 DrvInd Int32 fs_newfs_write(MountpointInterface* Mnt, DriveTrait& DrvTrait, Int32 DrvIndex) { if (!Mnt) - return -1; + return 1; DrvTrait.fPacket.fPacketGood = false; diff --git a/dev/ZKAKit/src/Timer.cc b/dev/ZKAKit/src/Timer.cc index a85e64d1..12c688da 100644 --- a/dev/ZKAKit/src/Timer.cc +++ b/dev/ZKAKit/src/Timer.cc @@ -36,7 +36,7 @@ SoftwareTimer::~SoftwareTimer() Int32 SoftwareTimer::Wait() noexcept { if (fWaitFor < 1) - return -1; + return 1; while (*fDigitalTimer < (*fDigitalTimer + fWaitFor)) { diff --git a/dev/ZKAKit/src/User.cc b/dev/ZKAKit/src/User.cc index 39d3e2be..189d80cf 100644 --- a/dev/ZKAKit/src/User.cc +++ b/dev/ZKAKit/src/User.cc @@ -32,7 +32,7 @@ namespace Kernel const Int32 cred_construct_token(Char* password, const Char* in_password, User* user, SizeT length) { if (!password || !user) - return -1; + return 1; kcout << "Hashing password...\r"; diff --git a/dev/ZKAKit/src/UserProcessScheduler.cc b/dev/ZKAKit/src/UserProcessScheduler.cc index 61f6ba7b..c3e85716 100644 --- a/dev/ZKAKit/src/UserProcessScheduler.cc +++ b/dev/ZKAKit/src/UserProcessScheduler.cc @@ -317,7 +317,7 @@ namespace Kernel SizeT UserProcessScheduler::Add(UserProcess process) { if (mTeam.mProcessAmount > kSchedProcessLimitPerTeam) - return -kErrorInvalidData; + return kErrorInvalidData; #ifdef __ZKA_AMD64__ process.VMRegister = reinterpret_cast<UIntPtr>(mm_new_heap(sizeof(PDE), No, Yes)); @@ -328,7 +328,7 @@ namespace Kernel if (!process.StackFrame) { process.Crash(); - return -kErrorProcessFault; + return kErrorProcessFault; } // Create heap according to type of process. @@ -340,7 +340,7 @@ namespace Kernel if (!process.Image) { process.Crash(); - return -kErrorProcessFault; + return kErrorProcessFault; } // Get preferred stack size by app. @@ -350,7 +350,7 @@ namespace Kernel if (!process.StackReserve) { process.Crash(); - return -kErrorProcessFault; + return kErrorProcessFault; } ++mTeam.mProcessAmount; diff --git a/dev/ZKAKit/src/Utils.cc b/dev/ZKAKit/src/Utils.cc index 5107517d..1a691486 100644 --- a/dev/ZKAKit/src/Utils.cc +++ b/dev/ZKAKit/src/Utils.cc @@ -79,9 +79,9 @@ namespace Kernel Int rt_move_memory(const voidPtr src, voidPtr dst, Size len) { if (len < 1) - return -2; + return 2; if (!src || !dst) - return -1; + return 1; char* srcChr = reinterpret_cast<Char*>(src); char* dstChar = reinterpret_cast<Char*>(dst); |
