summaryrefslogtreecommitdiffhomepage
path: root/dev/ZKA/Sources
diff options
context:
space:
mode:
authorAmlal <amlal@el-mahrouss-logic.com>2024-09-07 09:23:23 +0200
committerAmlal <amlal@el-mahrouss-logic.com>2024-09-07 09:23:23 +0200
commit4cceb09f45b5bd8efa15927fb9a33d0347369709 (patch)
tree55344ecf9c03f19de51ea9ecdb24fe40de197024 /dev/ZKA/Sources
parent1003d7a20bab6885b4edde7d11103a199de30d21 (diff)
[ IMP ] Found issue, address of HangCPU isn't in paged area, so it doesn't really work well.
Signed-off-by: Amlal <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'dev/ZKA/Sources')
-rw-r--r--dev/ZKA/Sources/KernelCheck.cxx4
-rw-r--r--dev/ZKA/Sources/UserProcessScheduler.cxx4
2 files changed, 6 insertions, 2 deletions
diff --git a/dev/ZKA/Sources/KernelCheck.cxx b/dev/ZKA/Sources/KernelCheck.cxx
index acc01dec..ff71950a 100644
--- a/dev/ZKA/Sources/KernelCheck.cxx
+++ b/dev/ZKA/Sources/KernelCheck.cxx
@@ -64,6 +64,10 @@ namespace Kernel
RecoveryFactory::Recover();
break;
}
+ case RUNTIME_CHECK_PAGE: {
+ CGDrawString("0x0000000B Write/Read in non paged area.", start_y, x, panicTxt);
+ RecoveryFactory::Recover();
+ }
case RUNTIME_CHECK_FILESYSTEM: {
CGDrawString("0x0000000A Filesystem corruption error.", start_y, x, panicTxt);
RecoveryFactory::Recover();
diff --git a/dev/ZKA/Sources/UserProcessScheduler.cxx b/dev/ZKA/Sources/UserProcessScheduler.cxx
index a2541d57..eba81677 100644
--- a/dev/ZKA/Sources/UserProcessScheduler.cxx
+++ b/dev/ZKA/Sources/UserProcessScheduler.cxx
@@ -239,7 +239,7 @@ namespace Kernel
process.MemoryPD = reinterpret_cast<UIntPtr>(hal_read_cr3());
#endif // __ZKA_AMD64__
- process.StackFrame = new HAL::StackFrame(0);
+ process.StackFrame = (HAL::StackFramePtr)mm_new_ke_heap(sizeof(HAL::StackFrame), Yes, Yes);
if (!process.StackFrame)
{
@@ -264,7 +264,7 @@ namespace Kernel
// get preferred stack size by app.
const auto cMaxStackSize = process.StackSize;
- process.StackReserve = new UInt8[cMaxStackSize];
+ process.StackReserve = (UInt8*)mm_new_ke_heap(sizeof(UInt8) * cMaxStackSize, Yes, Yes);
if (!process.StackReserve)
{