diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-08-19 10:14:36 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-08-19 10:14:36 +0200 |
| commit | 933d1ef6721903895b15c45917a0fc705763fbf5 (patch) | |
| tree | 1aed4505be011528b6a9799bcd29bbc846eefb4a /dev/ZKA/HALKit | |
| parent | da70596895d8135e08f8caac6978117697b4c021 (diff) | |
[IMP]
+ Fixed big parts of the user manager's code.
+ Fixed New FS kernel support.
+ Allocate 2GB of RAM for kernel.
- Reported bug to Jira regarding UserManager's TryLogin method.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/ZKA/HALKit')
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/HalKernelMain.cxx | 23 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/Processor.hxx | 3 |
2 files changed, 15 insertions, 11 deletions
diff --git a/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx b/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx index 49ddfa6c..17502b7c 100644 --- a/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx +++ b/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx @@ -86,10 +86,12 @@ EXTERN_C void hal_init_platform( } Kernel::Void hal_real_init(Kernel::Void) noexcept -{ +{ // reset kAllocationInProgress field to zero. kAllocationInProgress = false; + kKernelVMTStart = kHandoverHeader->f_HeapStart; + // get page size. kKernelVirtualSize = kHandoverHeader->f_VirtualSize; @@ -215,36 +217,39 @@ Kernel::Void hal_real_init(Kernel::Void) noexcept kSyscalls[cLastExitInterrupt].Leak().Leak()->fHooked = true; kSyscalls[cShutdownInterrupt].Leak().Leak()->fHooked = true; kSyscalls[cRebootInterrupt].Leak().Leak()->fHooked = true; - + Kernel::HAL::hal_system_get_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr); Kernel::kcout << "newoskrnl: Creating filesystem and such.\r"; auto fs = new Kernel::NewFilesystemManager(); - + MUST_PASS(fs); MUST_PASS(fs->GetParser()); Kernel::NewFilesystemManager::Mount(fs); - delete fs->GetParser()->CreateCatalog("\\Users\\", 0, kNewFSCatalogKindDir); - - Kernel::kcout << "newoskrnl: Created filesystem and now creating " << kSuperUser << "..." << Kernel::endl; + if (auto node = fs->GetParser()->GetCatalog("\\Users\\"); + !node) + { + delete fs->GetParser()->CreateCatalog("\\Users\\", 0, kNewFSCatalogKindDir); + } cRoot = new Kernel::User(Kernel::RingKind::kRingSuperUser, kSuperUser); #ifdef __DEBUG__ - const auto cPassword = "6aa162f3-20f6-4143-92f9-5dd37066aedc"; + const auto cPassword = "infdev"; #else const auto cPassword = "password"; #endif - + Kernel::UserManager::The()->fRootUser = cRoot; Kernel::kcout << "newoskrnl: Root is " << kSuperUser << "." << Kernel::endl; cRoot->TrySave(cPassword); - + + /// TODO: Fix this now! Kernel::UserManager::The()->TryLogIn(cRoot, cPassword); Kernel::ke_stop(RUNTIME_CHECK_FAILED); diff --git a/dev/ZKA/HALKit/AMD64/Processor.hxx b/dev/ZKA/HALKit/AMD64/Processor.hxx index d80a2834..8d9fc1b8 100644 --- a/dev/ZKA/HALKit/AMD64/Processor.hxx +++ b/dev/ZKA/HALKit/AMD64/Processor.hxx @@ -40,7 +40,6 @@ EXTERN_C #define kTaskGate (0b10001100) #define kGdtCodeSelector (0x08) #define kGdtUserCodeSelector (0x10) -#define cHeapStartOffset (0x80000000) namespace Kernel { @@ -341,7 +340,7 @@ EXTERN_C Kernel::Void hal_load_gdt(Kernel::HAL::RegisterGDT ptr); #define kKernelIdtSize 0x100 #define kKernelInterruptId 0x32 -inline Kernel::VoidPtr kKernelVMTStart = (Kernel::VoidPtr)cHeapStartOffset; +inline Kernel::VoidPtr kKernelVMTStart = nullptr; inline Kernel::VoidPtr kKernelVirtualStart = nullptr; inline Kernel::UIntPtr kKernelVirtualSize = 0UL; |
