summaryrefslogtreecommitdiffhomepage
path: root/dev/ZKA/Sources
diff options
context:
space:
mode:
Diffstat (limited to 'dev/ZKA/Sources')
-rw-r--r--dev/ZKA/Sources/CodeManager.cxx7
-rw-r--r--dev/ZKA/Sources/KernelCheck.cxx2
-rw-r--r--dev/ZKA/Sources/PEFCodeManager.cxx6
-rw-r--r--dev/ZKA/Sources/UserProcessScheduler.cxx2
4 files changed, 12 insertions, 5 deletions
diff --git a/dev/ZKA/Sources/CodeManager.cxx b/dev/ZKA/Sources/CodeManager.cxx
index f50457a4..585c7c01 100644
--- a/dev/ZKA/Sources/CodeManager.cxx
+++ b/dev/ZKA/Sources/CodeManager.cxx
@@ -19,8 +19,11 @@ namespace Kernel
if (!main)
return false;
- UserProcess proc;
- proc.SetEntrypoint(reinterpret_cast<VoidPtr>(main));
+ UserProcess proc((VoidPtr)main);
+
+ if (mm_is_valid_heap((VoidPtr)main))
+ proc.SetEntrypoint(reinterpret_cast<VoidPtr>(main));
+
proc.Kind = UserProcess::kExeKind;
proc.StackSize = mib_cast(1);
diff --git a/dev/ZKA/Sources/KernelCheck.cxx b/dev/ZKA/Sources/KernelCheck.cxx
index 8e5f0827..db157601 100644
--- a/dev/ZKA/Sources/KernelCheck.cxx
+++ b/dev/ZKA/Sources/KernelCheck.cxx
@@ -55,7 +55,7 @@ namespace Kernel
switch (id)
{
case RUNTIME_CHECK_PROCESS: {
- CGDrawString("0x00000008 UserProcess execution fault, this is a catasrophic failure.", start_y, x, panicTxt);
+ CGDrawString("0x00000008 No more processes to run, this is because that ZKA ran out of processes.", start_y, x, panicTxt);
break;
}
case RUNTIME_CHECK_ACPI: {
diff --git a/dev/ZKA/Sources/PEFCodeManager.cxx b/dev/ZKA/Sources/PEFCodeManager.cxx
index 5b797ee3..3d740a87 100644
--- a/dev/ZKA/Sources/PEFCodeManager.cxx
+++ b/dev/ZKA/Sources/PEFCodeManager.cxx
@@ -202,12 +202,14 @@ namespace Kernel
UserProcess proc;
proc.SetEntrypoint(errOrStart.Leak().Leak());
- proc.Kind = procKind;
+ proc.Kind = procKind;
proc.StackSize = *(UIntPtr*)exec.FindSymbol("__STACK_SIZE", kPefData);
if (!proc.StackSize)
{
- proc.StackSize = mib_cast(8);
+ const auto cDefaultStackSizeMib = 8;
+
+ proc.StackSize = mib_cast(cDefaultStackSizeMib);
}
return UserProcessScheduler::The().Add(proc);
diff --git a/dev/ZKA/Sources/UserProcessScheduler.cxx b/dev/ZKA/Sources/UserProcessScheduler.cxx
index b5d9660c..b762f1cd 100644
--- a/dev/ZKA/Sources/UserProcessScheduler.cxx
+++ b/dev/ZKA/Sources/UserProcessScheduler.cxx
@@ -58,6 +58,8 @@ namespace Kernel
this->Status = ProcessStatus::kDead;
this->Exit(kErrorProcessFault);
+
+ ProcessHelper::StartScheduling();
}
/// @brief Gets the local last exit code.