diff options
Diffstat (limited to 'dev/ZKA/HALKit')
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/HalKernelMain.cxx | 27 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/HalPageAlloc.cxx | 8 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/Processor.hxx | 6 |
3 files changed, 18 insertions, 23 deletions
diff --git a/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx b/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx index 17502b7c..de5ea494 100644 --- a/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx +++ b/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx @@ -67,8 +67,6 @@ STATIC Kernel::HAL::Detail::NewOSGDT cGdt = { Kernel::Void hal_real_init(Kernel::Void) noexcept; -static Kernel::User* cRoot; - EXTERN_C void hal_init_platform( Kernel::HEL::HandoverInformationHeader* HandoverHeader) { @@ -90,7 +88,7 @@ Kernel::Void hal_real_init(Kernel::Void) noexcept // reset kAllocationInProgress field to zero. kAllocationInProgress = false; - kKernelVMTStart = kHandoverHeader->f_HeapStart; + kKernelVMHStart = kHandoverHeader->f_HeapStart; // get page size. kKernelVirtualSize = kHandoverHeader->f_VirtualSize; @@ -233,24 +231,21 @@ Kernel::Void hal_real_init(Kernel::Void) noexcept !node) { delete fs->GetParser()->CreateCatalog("\\Users\\", 0, kNewFSCatalogKindDir); + delete fs->GetParser()->CreateCatalog(kUsersFile, 0, kNewFSCatalogKindFile); } - cRoot = new Kernel::User(Kernel::RingKind::kRingSuperUser, kSuperUser); - #ifdef __DEBUG__ - const auto cPassword = "infdev"; -#else - const auto cPassword = "password"; -#endif - - Kernel::UserManager::The()->fRootUser = cRoot; + const auto cPassword = "debug_usr"; + const auto cPasswordIncorrect = "debug_usr_invalid"; + Kernel::User user{Kernel::RingKind::kRingSuperUser, kSuperUser}; - Kernel::kcout << "newoskrnl: Root is " << kSuperUser << "." << Kernel::endl; - - cRoot->TrySave(cPassword); + if (!user.TrySave(cPassword)) + { + Kernel::ke_stop(RUNTIME_CHECK_UNEXCPECTED); + } - /// TODO: Fix this now! - Kernel::UserManager::The()->TryLogIn(cRoot, cPassword); + Kernel::UserManager::The()->TryLogIn(user, cPassword); +#endif Kernel::ke_stop(RUNTIME_CHECK_FAILED); } diff --git a/dev/ZKA/HALKit/AMD64/HalPageAlloc.cxx b/dev/ZKA/HALKit/AMD64/HalPageAlloc.cxx index 0e39a0f1..3677a1f2 100644 --- a/dev/ZKA/HALKit/AMD64/HalPageAlloc.cxx +++ b/dev/ZKA/HALKit/AMD64/HalPageAlloc.cxx @@ -7,6 +7,7 @@ #include <ArchKit/ArchKit.hxx> #define cVMHMagic (0xDEEFD00D) +#define cPaddingVMH (512) #ifdef __NEWOS_AMD64__ #include <HALKit/AMD64/HalPageAlloc.hxx> @@ -21,7 +22,6 @@ Kernel::Boolean kAllocationInProgress = false; namespace Kernel { - namespace HAL { namespace Detail @@ -43,7 +43,7 @@ namespace Kernel VIRTUAL_MEMORY_HEADER* Next(VIRTUAL_MEMORY_HEADER* current) { if (current->Magic != cVMHMagic) - current->Size = 8196; + current->Size = cPaddingVMH; return current + sizeof(VIRTUAL_MEMORY_HEADER) + current->Size; } @@ -54,7 +54,7 @@ namespace Kernel VIRTUAL_MEMORY_HEADER* Prev(VIRTUAL_MEMORY_HEADER* current) { if (current->Magic != cVMHMagic) - current->Size = 8196; + current->Size = cPaddingVMH; return current - sizeof(VIRTUAL_MEMORY_HEADER) - current->Size; } @@ -74,7 +74,7 @@ namespace Kernel kAllocationInProgress = true; //! fetch from the start. - Detail::VIRTUAL_MEMORY_HEADER* vmh_header = reinterpret_cast<Detail::VIRTUAL_MEMORY_HEADER*>(kKernelVMTStart); + Detail::VIRTUAL_MEMORY_HEADER* vmh_header = reinterpret_cast<Detail::VIRTUAL_MEMORY_HEADER*>(kKernelVMHStart); Detail::VirtualMemoryHeaderTraits traits; while (vmh_header->Present && diff --git a/dev/ZKA/HALKit/AMD64/Processor.hxx b/dev/ZKA/HALKit/AMD64/Processor.hxx index 8d9fc1b8..b6ae0ab3 100644 --- a/dev/ZKA/HALKit/AMD64/Processor.hxx +++ b/dev/ZKA/HALKit/AMD64/Processor.hxx @@ -87,13 +87,13 @@ namespace Kernel::HAL pde->Pte[pml4_index].User = flags & eFlagsUser; pde->Pte[pml4_index].ExecDisable = flags & eFlagsExecDisable; - kcout << "PTE is present now.\r"; + kcout << "newoskrnl: PTE is present now.\r"; return 0; } else { - kcout << "PM is already present.\r"; + kcout << "newoskrnl: PM is already present.\r"; kcout << "PhysicalAddress: " << hex_number(pde->Pte[pml4_index].PhysicalAddress); kcout << "\r"; @@ -340,7 +340,7 @@ EXTERN_C Kernel::Void hal_load_gdt(Kernel::HAL::RegisterGDT ptr); #define kKernelIdtSize 0x100 #define kKernelInterruptId 0x32 -inline Kernel::VoidPtr kKernelVMTStart = nullptr; +inline Kernel::VoidPtr kKernelVMHStart = nullptr; inline Kernel::VoidPtr kKernelVirtualStart = nullptr; inline Kernel::UIntPtr kKernelVirtualSize = 0UL; |
