summaryrefslogtreecommitdiffhomepage
path: root/dev/ZKA/HALKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-08-22 18:02:40 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-08-22 18:02:40 +0200
commit10099e99847307fae60aebdf2292002d359d45b4 (patch)
tree718ab13485520d1e69b908b48baf48e988c64985 /dev/ZKA/HALKit
parentb843322161bec86e707c45962ce9b7b76b0d1826 (diff)
[FIX] Work In Progress patches regarding user login and filesystem
driver. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/ZKA/HALKit')
-rw-r--r--dev/ZKA/HALKit/AMD64/HalKernelMain.cxx27
-rw-r--r--dev/ZKA/HALKit/AMD64/HalPageAlloc.cxx8
-rw-r--r--dev/ZKA/HALKit/AMD64/Processor.hxx6
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;