diff options
| author | Amlal <amlalelmahrouss@icloud.com> | 2024-12-23 11:59:23 +0100 |
|---|---|---|
| committer | Amlal <amlalelmahrouss@icloud.com> | 2024-12-23 11:59:23 +0100 |
| commit | 055aac915186d99ec526116e634c040f12733825 (patch) | |
| tree | c0f94fa7aa217e281517128be5334320722283c5 /dev | |
| parent | 78772d95f14818efadc676651d30b04f6ae57c7d (diff) | |
#4 WIP fixes (CUSA)
Signed-off-by: Amlal <amlalelmahrouss@icloud.com>
Diffstat (limited to 'dev')
| -rw-r--r-- | dev/BootLoader/amd64-efi.make | 4 | ||||
| -rw-r--r-- | dev/Kernel/HALKit/AMD64/HalKernelMain.cc | 7 | ||||
| -rw-r--r-- | dev/Kernel/KernelKit/UserProcessScheduler.h | 4 | ||||
| -rw-r--r-- | dev/Kernel/NewKit/Utils.h | 2 | ||||
| -rw-r--r-- | dev/Kernel/src/CodeMgr.cc | 3 | ||||
| -rw-r--r-- | dev/Kernel/src/UserProcessScheduler.cc | 2 | ||||
| -rw-r--r-- | dev/Kernel/src/Utils.cc | 4 |
7 files changed, 17 insertions, 9 deletions
diff --git a/dev/BootLoader/amd64-efi.make b/dev/BootLoader/amd64-efi.make index 05323172..9bffe5c7 100644 --- a/dev/BootLoader/amd64-efi.make +++ b/dev/BootLoader/amd64-efi.make @@ -17,7 +17,7 @@ ifneq ($(findstring CYGWIN_NT-10.0,$(shell uname)), ) EMU=qemu-system-x86_64w.exe else # this for NT distributions -EMU=qemu-system-x86_64 +EMU=qemu-system-x86_64 -net none endif ifeq ($(NEWS_MODEL), ) @@ -92,7 +92,7 @@ run-efi-amd64-ata: # img_2 is the rescue disk. img is the bootable disk, as provided by the Zeta specs. .PHONY: epm-img epm-img: - qemu-img create -f raw $(IMG) 10G + qemu-img create -f raw $(IMG) 4G qemu-img create -f raw $(IMG_2) 4G qemu-img create -f raw $(IMG_3) 4G diff --git a/dev/Kernel/HALKit/AMD64/HalKernelMain.cc b/dev/Kernel/HALKit/AMD64/HalKernelMain.cc index 2de886ca..e9350af9 100644 --- a/dev/Kernel/HALKit/AMD64/HalKernelMain.cc +++ b/dev/Kernel/HALKit/AMD64/HalKernelMain.cc @@ -86,7 +86,12 @@ EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept { CG::CGDrawBackground(); - Kernel::rtl_create_process(rtl_kernel_main, "ZkaOS System Kernel"); + auto str_proc = Kernel::rt_alloc_string("System"); + + Kernel::rtl_create_process(rtl_kernel_main, str_proc); + + delete str_proc; + str_proc = nullptr; if (kHandoverHeader->f_HardwareTables.f_MultiProcessingEnabled) Kernel::HAL::mp_get_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr); diff --git a/dev/Kernel/KernelKit/UserProcessScheduler.h b/dev/Kernel/KernelKit/UserProcessScheduler.h index ab4c4ff1..ab8a52a1 100644 --- a/dev/Kernel/KernelKit/UserProcessScheduler.h +++ b/dev/Kernel/KernelKit/UserProcessScheduler.h @@ -131,9 +131,9 @@ namespace Kernel ImagePtr fCode; ImagePtr fBlob; - operator bool() + Bool HasCode() { - return this->fCode; + return this->fCode != nullptr; } Bool HasImage() diff --git a/dev/Kernel/NewKit/Utils.h b/dev/Kernel/NewKit/Utils.h index 3c72ba8e..cafcfec9 100644 --- a/dev/Kernel/NewKit/Utils.h +++ b/dev/Kernel/NewKit/Utils.h @@ -16,7 +16,7 @@ namespace Kernel voidPtr rt_set_memory(voidPtr dst, UInt32 val, Size len); void rt_zero_memory(voidPtr pointer, Size len); Int rt_string_cmp(const Char* src, const Char* cmp, Size len); - const Char* alloc_string(const Char* text); + const Char* rt_alloc_string(const Char* text); Size rt_string_len(const Char* str); Size rt_string_len(const Char* str, SizeT _len); Boolean rt_to_string(Char* buf, Int limit, Int base); diff --git a/dev/Kernel/src/CodeMgr.cc b/dev/Kernel/src/CodeMgr.cc index 7946d424..3811b4eb 100644 --- a/dev/Kernel/src/CodeMgr.cc +++ b/dev/Kernel/src/CodeMgr.cc @@ -10,10 +10,13 @@ namespace Kernel { + /***********************************************************************************/ /// @brief Executes a new process from a function. Kernel code only. /// @note This sets up a new stack, anything on the main function that calls the Kernel will not be accessible. /// @param main the start of the process. /// @return if the process was started or not. + /***********************************************************************************/ + ProcessID rtl_create_process(rtl_main_kind main, const Char* process_name) noexcept { if (!process_name || diff --git a/dev/Kernel/src/UserProcessScheduler.cc b/dev/Kernel/src/UserProcessScheduler.cc index cdf5dcee..4560f6eb 100644 --- a/dev/Kernel/src/UserProcessScheduler.cc +++ b/dev/Kernel/src/UserProcessScheduler.cc @@ -285,7 +285,7 @@ namespace Kernel ProcessID UserProcessScheduler::Spawn(UserProcess* process) { if (!process || - !process->Image) + !process->Image.HasCode()) { return kProcessInvalidID; } diff --git a/dev/Kernel/src/Utils.cc b/dev/Kernel/src/Utils.cc index c0574dca..277de6ce 100644 --- a/dev/Kernel/src/Utils.cc +++ b/dev/Kernel/src/Utils.cc @@ -117,9 +117,9 @@ namespace Kernel return index; } - const Char* alloc_string(const Char* text) + const Char* rt_alloc_string(const Char* text) { - if (!text) + if (!text[0]) return nullptr; const Char* string = new Char[rt_string_len(text)]; |
