diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-09-03 15:34:28 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-09-03 15:34:28 +0200 |
| commit | 441c1460b29f5003a5478032f17a6c5f486dd1fd (patch) | |
| tree | c74f48a17b83b62dbd9badde686e09e1bdf49f1f /dev/ZKA/HALKit | |
| parent | 7fdb28714eb98d58c55324db51cc7caf97c631bf (diff) | |
[ FIX ] Almost fixed the ring-3 switch code, which currently gives an UD
error.
[ REFACTOR ] Kernel is now a EXE, instead of being a DLL.
[ FIX ] Fixed some parts of the user scheduler and kernel, cleaned it
up also.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/ZKA/HALKit')
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/HalControlRegister.s | 4 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cxx | 8 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/HalCoreMPScheduler.cxx | 8 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/HalKernelMain.cxx | 45 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/HalMPContextSwitch.asm | 53 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/HalPageAlloc.hxx | 2 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/HalProcessor.cxx | 3 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/HalSchedulerCore.cxx | 5 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/Processor.hxx | 7 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/Storage/AHCI.cxx | 6 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/AMD64/Storage/ATA-PIO.cxx | 6 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/ARM64/HalKernelMain.cxx | 2 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/ARM64/Processor.hxx | 2 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/ARM64/Storage/HalFlash.cxx | 4 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/AXP/CoreSyscallHandlerDEC.cpp | 4 | ||||
| -rw-r--r-- | dev/ZKA/HALKit/POWER/Processor.hxx | 2 |
16 files changed, 73 insertions, 88 deletions
diff --git a/dev/ZKA/HALKit/AMD64/HalControlRegister.s b/dev/ZKA/HALKit/AMD64/HalControlRegister.s index 11c52ff3..76053921 100644 --- a/dev/ZKA/HALKit/AMD64/HalControlRegister.s +++ b/dev/ZKA/HALKit/AMD64/HalControlRegister.s @@ -28,7 +28,7 @@ hal_read_cr0: ret hal_read_cr2: - movq %cr3, %rax + movq %cr2, %rax ret hal_write_cr3: @@ -36,5 +36,5 @@ hal_write_cr3: ret hal_write_cr0: - movq %rcx, %cr3 + movq %rcx, %cr0 ret diff --git a/dev/ZKA/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cxx b/dev/ZKA/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cxx index 1101e5e2..611ec596 100644 --- a/dev/ZKA/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cxx +++ b/dev/ZKA/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cxx @@ -54,12 +54,12 @@ EXTERN_C Kernel::Void hal_system_call_enter(Kernel::UIntPtr rcx, Kernel::UIntPtr { if (rcx <= (kSyscalls.Count() - 1)) { - Kernel::kcout << "newoskrnl.dll: syscall: enter.\r"; + Kernel::kcout << "newoskrnl.exe: syscall: enter.\r"; if (kSyscalls[rcx].fHooked) (kSyscalls[rcx].fProc)((Kernel::VoidPtr)rdx); - Kernel::kcout << "newoskrnl.dll: syscall: exit.\r"; + Kernel::kcout << "newoskrnl.exe: syscall: exit.\r"; } } @@ -70,11 +70,11 @@ EXTERN_C Kernel::Void hal_kernel_call_enter(Kernel::UIntPtr rcx, Kernel::UIntPtr { if (rcx <= (kSyscalls.Count() - 1)) { - Kernel::kcout << "newoskrnl.dll: kerncall: enter.\r"; + Kernel::kcout << "newoskrnl.exe: kerncall: enter.\r"; if (kKerncalls[rcx].fHooked) (kKerncalls[rcx].fProc)((Kernel::VoidPtr)rdx); - Kernel::kcout << "newoskrnl.dll: kerncall: exit.\r"; + Kernel::kcout << "newoskrnl.exe: kerncall: exit.\r"; } } diff --git a/dev/ZKA/HALKit/AMD64/HalCoreMPScheduler.cxx b/dev/ZKA/HALKit/AMD64/HalCoreMPScheduler.cxx index 9a7e276c..2e76d73a 100644 --- a/dev/ZKA/HALKit/AMD64/HalCoreMPScheduler.cxx +++ b/dev/ZKA/HALKit/AMD64/HalCoreMPScheduler.cxx @@ -191,7 +191,7 @@ namespace Kernel::HAL cSMPInterrupt = 0; kSMPCount = 0; - kcout << "newoskrnl.dll: Probing MADT cores...\r"; + kcout << "newoskrnl.exe: Probing MADT cores...\r"; UIntPtr madt_address = kMADTBlock->Address; @@ -205,13 +205,13 @@ namespace Kernel::HAL { case 0x00: { cSMPCores[index] = kMADTBlock->List[index].LAPIC.ProcessorID; - kcout << "newoskrnl.dll: Core ID: " << number(cSMPCores[index]) << endl; + kcout << "newoskrnl.exe: Core ID: " << number(cSMPCores[index]) << endl; ++kSMPCount; break; } case 0x05: { madt_address = kMADTBlock->List[index].LAPIC_ADDRESS_OVERRIDE.Address; - kcout << "newoskrnl.dll: Address: " << number(madt_address) << endl; + kcout << "newoskrnl.exe: Address: " << number(madt_address) << endl; break; } } @@ -219,7 +219,7 @@ namespace Kernel::HAL ++index; } - kcout << "newoskrnl.dll: # of cores: " << number(kSMPCount) << endl; + kcout << "newoskrnl.exe: # of cores: " << number(kSMPCount) << endl; // Kernel is now SMP aware. // That means that the scheduler is now available (on MP Kernels) diff --git a/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx b/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx index af767938..d99431fa 100644 --- a/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx +++ b/dev/ZKA/HALKit/AMD64/HalKernelMain.cxx @@ -20,14 +20,6 @@ #include <CFKit/Property.hxx> #include <Modules/CoreCG/TextRenderer.hxx> -Kernel::Property cKernelVersion; - -Kernel::User cUserSuper{Kernel::RingKind::kRingSuperUser, kSuperUser}; - -EXTERN Kernel::Boolean kAllocationInProgress; - -EXTERN_C Kernel::VoidPtr kInterruptVectorTable[]; - struct HEAP_ALLOC_INFO final { Kernel::VoidPtr fThe; @@ -61,32 +53,37 @@ namespace Kernel::HAL EXTERN void mp_get_cores(Kernel::voidPtr rsdPtr) noexcept; } // namespace Kernel::HAL -/* GDT, mostly descriptors for user and kernel segments. */ -STATIC Kernel::HAL::Detail::ZKA_GDT_ENTRY cGdt[9] = { - {.fLimitLow = 0, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x00, .fGranularity = 0x00, .fBaseHigh = 0}, // Null entry - {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x9A, .fGranularity = 0xA0, .fBaseHigh = 0}, // Kernel code - {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x92, .fGranularity = 0xA0, .fBaseHigh = 0}, // Kernel data - {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0xFA, .fGranularity = 0xA0, .fBaseHigh = 0}, // User code - {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0xF2, .fGranularity = 0xA0, .fBaseHigh = 0}, // User data - // reserve them for later. - {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0xF2, .fGranularity = 0xA0, .fBaseHigh = 0}, // User data - {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0xF2, .fGranularity = 0xA0, .fBaseHigh = 0}, // User data - {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0xF2, .fGranularity = 0xA0, .fBaseHigh = 0}, // User data - {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0xF2, .fGranularity = 0xA0, .fBaseHigh = 0}, // User data -}; +Kernel::Property cKernelVersion; +Kernel::User cUserSuper{Kernel::RingKind::kRingSuperUser, kSuperUser}; + +EXTERN Kernel::Boolean kAllocationInProgress; +EXTERN_C Kernel::VoidPtr kInterruptVectorTable[]; Kernel::Void hal_real_init(Kernel::Void) noexcept; EXTERN_C void hal_user_code_start(void); EXTERN_C Kernel::Void ke_dll_entrypoint(Kernel::Void); + +/* GDT, mostly descriptors for user and kernel segments. */ +STATIC Kernel::HAL::Detail::ZKA_GDT_ENTRY cGdt[9] = { + {.fLimitLow = 0, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x00, .fFlags = 0x00, .fBaseHigh = 0}, // Null entry + {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x9A, .fFlags = 0xA0, .fBaseHigh = 0}, // Kernel code + {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x92, .fFlags = 0xA0, .fBaseHigh = 0}, // Kernel data + {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0xFA, .fFlags = 0xA0, .fBaseHigh = 0}, // User code + {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0xF2, .fFlags = 0xA0, .fBaseHigh = 0}, // User data + // reserve them for later. + {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x00, .fFlags = 0x00, .fBaseHigh = 0}, // User data + {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x00, .fFlags = 0x00, .fBaseHigh = 0}, // User data + {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x00, .fFlags = 0x00, .fBaseHigh = 0}, // User data + {.fLimitLow = 0xFFFF, .fBaseLow = 0, .fBaseMid = 0, .fAccessByte = 0x00, .fFlags = 0x00, .fBaseHigh = 0}, // User data +}; + EXTERN_C void hal_init_platform( Kernel::HEL::HandoverInformationHeader* HandoverHeader) { /* Setup globals. */ - sizeof(Kernel::HAL::Detail::ZKA_GDT_ENTRY); - kHandoverHeader = HandoverHeader; if (kHandoverHeader->f_Magic != kHandoverMagic && @@ -137,7 +134,7 @@ Kernel::Void hal_real_init(Kernel::Void) noexcept if (kHandoverHeader->f_HardwareTables.f_MultiProcessingEnabled) Kernel::HAL::mp_get_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr); - Kernel::kcout << "newoskrnl.dll: Creating filesystem and such.\r"; + Kernel::kcout << "newoskrnl.exe: Creating filesystem and such.\r"; auto fs = new Kernel::NewFilesystemManager(); diff --git a/dev/ZKA/HALKit/AMD64/HalMPContextSwitch.asm b/dev/ZKA/HALKit/AMD64/HalMPContextSwitch.asm index 221cd05e..ac68dfad 100644 --- a/dev/ZKA/HALKit/AMD64/HalMPContextSwitch.asm +++ b/dev/ZKA/HALKit/AMD64/HalMPContextSwitch.asm @@ -21,22 +21,21 @@ section .text ;; rcx: code ptr. ;; rdx: stack ptr. mp_do_context_switch: - jmp mp_jump_user_mode -mp_jump_user_mode: - mov r11, 0x0202 - mov r13, rdx - mov r12, rcx + mov r9, [r8 + (8 * 2)] + mov r10, [r8 + (8 * 3)] + mov fs, [r8 + (8 * 4)] + mov r12, [r8 + (8 * 5)] + mov r13, [r8 + (8 * 6)] + mov r14, [r8 + (8 * 7)] + mov r15, [r8 + (8 * 8)] + mov gs, [r8 + (8 * 9)] + mov r8, [r8] - mov eax, 0x23 - mov ds, eax - mov gs, eax - mov es, eax - mov fs, eax + mov r11, 0x202 + mov rsp, rdx - mov rcx, r12 - mov rsp, r13 - - o64 sysret + xor rax, rax + o64 sysret ;; @brief Gets the current stack frame. mp_get_current_context: @@ -46,8 +45,6 @@ mp_get_current_context: extern hal_system_call_enter mp_system_call_handler: - cli - push r8 push r9 push r10 @@ -58,21 +55,23 @@ mp_system_call_handler: pop r9 pop r8 - sti sysret mp_do_context_switch_pre: - ; Enable SCE that enables sysret and syscall + + xor rdx, rdx + mov rax, 0x202 + mov rcx, 0xc0000084 + wrmsr + xor rax, rax mov rax, mp_system_call_handler + mov rdx, rax + shr rdx, 32 mov rcx, 0xc0000082 wrmsr - mov rcx, 0xc0000080 - rdmsr - or eax, 1 + xor rax, rax + mov rdx, 0x230008 + mov rcx, 0xc0000081 wrmsr - mov rcx, 0xc0000081 - rdmsr - mov edx, 0x00180008 - wrmsr - - ret
\ No newline at end of file + + ret diff --git a/dev/ZKA/HALKit/AMD64/HalPageAlloc.hxx b/dev/ZKA/HALKit/AMD64/HalPageAlloc.hxx index 11a267e2..aadabd9c 100644 --- a/dev/ZKA/HALKit/AMD64/HalPageAlloc.hxx +++ b/dev/ZKA/HALKit/AMD64/HalPageAlloc.hxx @@ -31,7 +31,7 @@ #endif // !kAlign EXTERN_C void hal_flush_tlb(); -EXTERN_C void hal_write_cr3(Kernel::UIntPtr pde); +EXTERN_C void hal_write_cr3(Kernel::UIntPtr phys_addr); EXTERN_C void hal_write_cr0(Kernel::UIntPtr bit); EXTERN_C Kernel::VoidPtr hal_read_cr0(); // @brief CPU control register. diff --git a/dev/ZKA/HALKit/AMD64/HalProcessor.cxx b/dev/ZKA/HALKit/AMD64/HalProcessor.cxx index 706bd5bd..94d989e7 100644 --- a/dev/ZKA/HALKit/AMD64/HalProcessor.cxx +++ b/dev/ZKA/HALKit/AMD64/HalProcessor.cxx @@ -24,9 +24,6 @@ namespace Kernel::HAL if (pte) { - if (flags & eFlagsSetPhysAddress) - pte->PhysicalAddress = (UIntPtr)phys_addr >> 12; - if (flags & eFlagsPresent) pte->Present = flags & eFlagsPresent; diff --git a/dev/ZKA/HALKit/AMD64/HalSchedulerCore.cxx b/dev/ZKA/HALKit/AMD64/HalSchedulerCore.cxx index 4fa8c019..7b1f1711 100644 --- a/dev/ZKA/HALKit/AMD64/HalSchedulerCore.cxx +++ b/dev/ZKA/HALKit/AMD64/HalSchedulerCore.cxx @@ -26,9 +26,6 @@ namespace Kernel if (!stack_ptr) return false; - if (stack_ptr->BP == 0 || stack_ptr->SP == 0) - return false; - return true; } @@ -36,7 +33,7 @@ namespace Kernel /// Wakes up thread from the hang state. Void mp_wakeup_thread(HAL::StackFrame* stack) { - mp_do_context_switch((VoidPtr)stack->BP, (UInt8*)stack->SP, stack); + Kernel::UserProcessHelper::StartScheduling(); } /// @brief makes the thread sleep on a loop. diff --git a/dev/ZKA/HALKit/AMD64/Processor.hxx b/dev/ZKA/HALKit/AMD64/Processor.hxx index edbc6ae5..911af46e 100644 --- a/dev/ZKA/HALKit/AMD64/Processor.hxx +++ b/dev/ZKA/HALKit/AMD64/Processor.hxx @@ -110,13 +110,12 @@ namespace Kernel::HAL UIntPtr R8{0}; UIntPtr R9{0}; UIntPtr R10{0}; - UIntPtr R11{0}; // not tied to r11, rax this time! + UIntPtr FS{0}; UIntPtr R12{0}; UIntPtr R13{0}; UIntPtr R14{0}; UIntPtr R15{0}; - UIntPtr BP{0}; - UIntPtr SP{0}; + UIntPtr GS{0}; }; typedef StackFrame* StackFramePtr; @@ -241,7 +240,7 @@ namespace Kernel::HAL UInt16 fBaseLow; UInt8 fBaseMid; UInt8 fAccessByte; - UInt8 fGranularity; + UInt8 fFlags; UInt8 fBaseHigh; }; } // namespace Detail diff --git a/dev/ZKA/HALKit/AMD64/Storage/AHCI.cxx b/dev/ZKA/HALKit/AMD64/Storage/AHCI.cxx index 4fefee46..889b8c39 100644 --- a/dev/ZKA/HALKit/AMD64/Storage/AHCI.cxx +++ b/dev/ZKA/HALKit/AMD64/Storage/AHCI.cxx @@ -63,7 +63,7 @@ Kernel::Boolean drv_std_init(Kernel::UInt16& PortsImplemented) { if (ports_implemented) { - kcout << "newoskrnl.dll: Port is implemented by host.\r"; + kcout << "newoskrnl.exe: Port is implemented by host.\r"; UInt8 ipm = (mem_ahci->Ports[ahci_index].Ssts >> 8) & 0x0F; UInt8 det = mem_ahci->Ports[ahci_index].Ssts & 0x0F; @@ -72,8 +72,8 @@ Kernel::Boolean drv_std_init(Kernel::UInt16& PortsImplemented) det == cAhciPresent && ipm == cAhciIPMActive) { - kcout << "newoskrnl.dll: Found AHCI controller.\r"; - kcout << "newoskrnl.dll: Device is of SATA type.\r"; + kcout << "newoskrnl.exe: Found AHCI controller.\r"; + kcout << "newoskrnl.exe: Device is of SATA type.\r"; detected = true; diff --git a/dev/ZKA/HALKit/AMD64/Storage/ATA-PIO.cxx b/dev/ZKA/HALKit/AMD64/Storage/ATA-PIO.cxx index 35773924..996b93ee 100644 --- a/dev/ZKA/HALKit/AMD64/Storage/ATA-PIO.cxx +++ b/dev/ZKA/HALKit/AMD64/Storage/ATA-PIO.cxx @@ -68,7 +68,7 @@ Boolean drv_std_init(UInt16 Bus, UInt8 Drive, UInt16& OutBus, UInt8& OutMaster) drv_std_select(IO); - Kernel::kcout << "newoskrnl.dll: Initializing drive...\r"; + Kernel::kcout << "newoskrnl.exe: Initializing drive...\r"; ATAInit_Retry: // Bus init, NEIN bit. @@ -80,7 +80,7 @@ ATAInit_Retry: if (statRdy & ATA_SR_ERR) { - Kernel::kcout << "newoskrnl.dll: Failing drive...\r"; + Kernel::kcout << "newoskrnl.exe: Failing drive...\r"; return false; } @@ -107,7 +107,7 @@ ATAInit_Retry: OutMaster = (Bus == ATA_PRIMARY_IO) ? ATA_MASTER : ATA_SLAVE; - Kernel::kcout << "newoskrnl.dll: Create ATA module.\r"; + Kernel::kcout << "newoskrnl.exe: Create ATA module.\r"; return true; } diff --git a/dev/ZKA/HALKit/ARM64/HalKernelMain.cxx b/dev/ZKA/HALKit/ARM64/HalKernelMain.cxx index 6bb3d7b4..52e4f1ee 100644 --- a/dev/ZKA/HALKit/ARM64/HalKernelMain.cxx +++ b/dev/ZKA/HALKit/ARM64/HalKernelMain.cxx @@ -94,7 +94,7 @@ Kernel::Void hal_real_init(Kernel::Void) noexcept else Kernel::HAL::mp_get_cores(nullptr); - Kernel::kcout << "newoskrnl.dll: Creating filesystem and such.\r"; + Kernel::kcout << "newoskrnl.exe: Creating filesystem and such.\r"; auto fs = new Kernel::NewFilesystemManager(); diff --git a/dev/ZKA/HALKit/ARM64/Processor.hxx b/dev/ZKA/HALKit/ARM64/Processor.hxx index be4e7e3e..1880d36c 100644 --- a/dev/ZKA/HALKit/ARM64/Processor.hxx +++ b/dev/ZKA/HALKit/ARM64/Processor.hxx @@ -37,8 +37,6 @@ namespace Kernel::HAL Reg R13{0}; Reg R14{0}; Reg R15{0}; - Reg BP{0}; - Reg SP{0}; }; typedef StackFrame* StackFramePtr; diff --git a/dev/ZKA/HALKit/ARM64/Storage/HalFlash.cxx b/dev/ZKA/HALKit/ARM64/Storage/HalFlash.cxx index 53238609..97950a78 100644 --- a/dev/ZKA/HALKit/ARM64/Storage/HalFlash.cxx +++ b/dev/ZKA/HALKit/ARM64/Storage/HalFlash.cxx @@ -53,13 +53,13 @@ namespace Kernel /// @brief Enable flash memory at slot. STATIC Void drv_enable_flash(Int32 arg) { - kcout << "newoskrnl.dll: Enabled FLSH hardware.\r"; + kcout << "newoskrnl.exe: Enabled FLSH hardware.\r"; } /// @brief Disable flash memory at slot. STATIC Void drv_disable_flash(Int32 arg) { - kcout << "newoskrnl.dll: Disabled FLSH hardware.\r"; + kcout << "newoskrnl.exe: Disabled FLSH hardware.\r"; } } // namespace Kernel diff --git a/dev/ZKA/HALKit/AXP/CoreSyscallHandlerDEC.cpp b/dev/ZKA/HALKit/AXP/CoreSyscallHandlerDEC.cpp index 148fa020..5f71380d 100644 --- a/dev/ZKA/HALKit/AXP/CoreSyscallHandlerDEC.cpp +++ b/dev/ZKA/HALKit/AXP/CoreSyscallHandlerDEC.cpp @@ -14,11 +14,11 @@ EXTERN_C void rt_syscall_handle(Kernel::HAL::StackFrame* stack) { if (stack->Rcx <= (kSyscalls.Count() - 1)) { - Kernel::kcout << "newoskrnl.dll: syscall: enter.\r"; + Kernel::kcout << "newoskrnl.exe: syscall: enter.\r"; if (kSyscalls[stack->Rcx].Leak().Leak().fHooked) (kSyscalls[stack->Rcx].Leak().Leak().fProc)(stack); - Kernel::kcout << "newoskrnl.dll: syscall: exit.\r"; + Kernel::kcout << "newoskrnl.exe: syscall: exit.\r"; } } diff --git a/dev/ZKA/HALKit/POWER/Processor.hxx b/dev/ZKA/HALKit/POWER/Processor.hxx index ca11bf08..75922d88 100644 --- a/dev/ZKA/HALKit/POWER/Processor.hxx +++ b/dev/ZKA/HALKit/POWER/Processor.hxx @@ -29,8 +29,6 @@ namespace Kernel::HAL Reg R13{0}; Reg R14{0}; Reg R15{0}; - Reg BP{0}; - Reg SP{0}; }; typedef StackFrame* StackFramePtr; |
