summaryrefslogtreecommitdiffhomepage
path: root/dev/ZKA/Sources
diff options
context:
space:
mode:
Diffstat (limited to 'dev/ZKA/Sources')
-rw-r--r--dev/ZKA/Sources/CodeMgr.cxx2
-rw-r--r--dev/ZKA/Sources/CxxAbi-AMD64.cxx2
-rw-r--r--dev/ZKA/Sources/CxxAbi-ARM64.cxx2
-rw-r--r--dev/ZKA/Sources/DLLMain.cxx26
-rw-r--r--dev/ZKA/Sources/DriveMgr.cxx2
-rw-r--r--dev/ZKA/Sources/FS/NewFS.cxx70
-rw-r--r--dev/ZKA/Sources/Heap.cxx11
-rw-r--r--dev/ZKA/Sources/IndexableProperty.cxx2
-rw-r--r--dev/ZKA/Sources/KernelCheck.cxx13
-rw-r--r--dev/ZKA/Sources/NewFS+FileMgr.cxx4
-rw-r--r--dev/ZKA/Sources/ThreadLocalStorage.cxx8
-rw-r--r--dev/ZKA/Sources/User.cxx2
-rw-r--r--dev/ZKA/Sources/UserProcessScheduler.cxx19
13 files changed, 84 insertions, 79 deletions
diff --git a/dev/ZKA/Sources/CodeMgr.cxx b/dev/ZKA/Sources/CodeMgr.cxx
index c4ff2ee3..1d4f4a6e 100644
--- a/dev/ZKA/Sources/CodeMgr.cxx
+++ b/dev/ZKA/Sources/CodeMgr.cxx
@@ -23,7 +23,7 @@ namespace Kernel
proc.SetImageStart(reinterpret_cast<VoidPtr>(main));
proc.Kind = UserProcess::kExeKind;
- proc.StackSize = kib_cast(4);
+ proc.StackSize = mib_cast(4);
rt_copy_memory((VoidPtr)processName, proc.Name, rt_string_len(processName));
diff --git a/dev/ZKA/Sources/CxxAbi-AMD64.cxx b/dev/ZKA/Sources/CxxAbi-AMD64.cxx
index 0b26e9da..908e26f4 100644
--- a/dev/ZKA/Sources/CxxAbi-AMD64.cxx
+++ b/dev/ZKA/Sources/CxxAbi-AMD64.cxx
@@ -19,7 +19,7 @@ Kernel::UIntPtr __dso_handle;
EXTERN_C void __cxa_pure_virtual()
{
- Kernel::kcout << "newoskrnl.exe: C++ placeholder method.\n";
+ kcout << "C++ placeholder method.\n";
}
EXTERN_C void ___chkstk_ms(void)
diff --git a/dev/ZKA/Sources/CxxAbi-ARM64.cxx b/dev/ZKA/Sources/CxxAbi-ARM64.cxx
index c11baf72..679be041 100644
--- a/dev/ZKA/Sources/CxxAbi-ARM64.cxx
+++ b/dev/ZKA/Sources/CxxAbi-ARM64.cxx
@@ -68,7 +68,7 @@ EXTERN_C void __cdecl _Init_thread_footer(int* const pOnce) noexcept
EXTERN_C void _purecall()
{
- Kernel::kcout << "newoskrnl.exe: C++ placeholder method.\n";
+ kcout << "C++ placeholder method.\n";
}
#endif // ifdef __ZKA_ARM64__
diff --git a/dev/ZKA/Sources/DLLMain.cxx b/dev/ZKA/Sources/DLLMain.cxx
index 75fb24ff..db1a80d1 100644
--- a/dev/ZKA/Sources/DLLMain.cxx
+++ b/dev/ZKA/Sources/DLLMain.cxx
@@ -52,7 +52,7 @@ namespace Kernel::Detail
{
if (Kernel::FilesystemMgrInterface::GetMounted())
{
- CG::CGDrawStringToWnd(cKernelWnd, "newoskrnl.exe: NewFS IFS already mounted by HAL (A:)", 10, 10, RGB(0, 0, 0));
+ CG::CGDrawStringToWnd(cKernelWnd, "NewFS IFS already mounted by HAL (A:)", 10, 10, RGB(0, 0, 0));
fNewFS = reinterpret_cast<Kernel::NewFilesystemMgr*>(Kernel::FilesystemMgrInterface::GetMounted());
}
else
@@ -62,7 +62,7 @@ namespace Kernel::Detail
Kernel::FilesystemMgrInterface::Mount(fNewFS);
- CG::CGDrawStringToWnd(cKernelWnd, "newoskrnl.exe: Mounted NewFS IFS (A:)", 10, 10, RGB(0, 0, 0));
+ CG::CGDrawStringToWnd(cKernelWnd, "Mounted NewFS IFS (A:)", 10, 10, RGB(0, 0, 0));
}
const Kernel::SizeT cDirCount = 7UL;
@@ -79,8 +79,8 @@ namespace Kernel::Detail
if (catalogDir)
{
- CG::CGDrawStringToWnd(cKernelWnd, "newoskrnl.exe: Catalog directory already exists: ", 10 + (10 * (dirIndx + 1)), 10, RGB(0, 0, 0));
- CG::CGDrawStringToWnd(cKernelWnd, catalogDir->Name, 10 + (10 * (dirIndx + 1)), 10 + (FONT_SIZE_X * rt_string_len("newoskrnl.exe: Catalog directory already exists: ")), RGB(0, 0, 0));
+ CG::CGDrawStringToWnd(cKernelWnd, "Catalog directory already exists: ", 10 + (10 * (dirIndx + 1)), 10, RGB(0, 0, 0));
+ CG::CGDrawStringToWnd(cKernelWnd, catalogDir->Name, 10 + (10 * (dirIndx + 1)), 10 + (FONT_SIZE_X * rt_string_len("Catalog directory already exists: ")), RGB(0, 0, 0));
delete catalogDir;
continue;
@@ -89,8 +89,8 @@ namespace Kernel::Detail
catalogDir = fNewFS->GetParser()->CreateCatalog(cDirStr[dirIndx], 0,
kNewFSCatalogKindDir);
- CG::CGDrawStringToWnd(cKernelWnd, "newoskrnl.exe: Catalog directory has been created: ", 10 + (10 * (dirIndx + 1)), 10, RGB(0, 0, 0));
- CG::CGDrawStringToWnd(cKernelWnd, catalogDir->Name, 10 + (10 * (dirIndx + 1)), 10 + (FONT_SIZE_X * rt_string_len("newoskrnl.exe: Catalog directory has been created: ")), RGB(0, 0, 0));
+ CG::CGDrawStringToWnd(cKernelWnd, "Catalog directory has been created: ", 10 + (10 * (dirIndx + 1)), 10, RGB(0, 0, 0));
+ CG::CGDrawStringToWnd(cKernelWnd, catalogDir->Name, 10 + (10 * (dirIndx + 1)), 10 + (FONT_SIZE_X * rt_string_len("Catalog directory has been created: ")), RGB(0, 0, 0));
delete catalogDir;
}
@@ -102,15 +102,15 @@ namespace Kernel::Detail
if (catalogDisk)
{
- CG::CGDrawStringToWnd(cKernelWnd, "newoskrnl.exe: Catalog swap file already exists: ", 10 + (10 * (cDirCount + 1)), 10, RGB(0, 0, 0));
- CG::CGDrawStringToWnd(cKernelWnd, kSysPage, 10 + (10 * (cDirCount + 1)), 10 + (FONT_SIZE_X * rt_string_len("newoskrnl.exe: Catalog swap file already exists: ")), RGB(0, 0, 0));
+ CG::CGDrawStringToWnd(cKernelWnd, "Catalog swap file already exists: ", 10 + (10 * (cDirCount + 1)), 10, RGB(0, 0, 0));
+ CG::CGDrawStringToWnd(cKernelWnd, kSysPage, 10 + (10 * (cDirCount + 1)), 10 + (FONT_SIZE_X * rt_string_len("Catalog swap file already exists: ")), RGB(0, 0, 0));
delete catalogDisk;
}
else
{
- CG::CGDrawStringToWnd(cKernelWnd, "newoskrnl.exe: Catalog swap file created: ", 10 + (10 * (cDirCount + 1)), 10, RGB(0, 0, 0));
- CG::CGDrawStringToWnd(cKernelWnd, kSysPage, 10 + (10 * (cDirCount + 1)), 10 + (FONT_SIZE_X * rt_string_len("newoskrnl.exe: Catalog swap file created: ")), RGB(0, 0, 0));
+ CG::CGDrawStringToWnd(cKernelWnd, "Catalog swap file created: ", 10 + (10 * (cDirCount + 1)), 10, RGB(0, 0, 0));
+ CG::CGDrawStringToWnd(cKernelWnd, kSysPage, 10 + (10 * (cDirCount + 1)), 10 + (FONT_SIZE_X * rt_string_len("Catalog swap file created: ")), RGB(0, 0, 0));
catalogDisk =
(NFS_CATALOG_STRUCT*)this->Leak()->CreateSwapFile(kSysPage);
@@ -184,10 +184,10 @@ EXTERN_C Kernel::Void ke_dll_entrypoint(Kernel::Void)
CG::CGDrawWindowList(&cKernelWnd, 1);
- CG::CGDrawStringToWnd(cKernelWnd, "newoskrnl.exe: Running System Component: ", 10, 10, RGB(0, 0, 0));
- CG::CGDrawStringToWnd(cKernelWnd, kSysDrv, 10, 10 + (FONT_SIZE_X * Kernel::rt_string_len("newoskrnl.exe: Running System Component: ")), RGB(0, 0, 0));
+ CG::CGDrawStringToWnd(cKernelWnd, "Running System Component: ", 10, 10, RGB(0, 0, 0));
+ CG::CGDrawStringToWnd(cKernelWnd, kSysDrv, 10, 10 + (FONT_SIZE_X * Kernel::rt_string_len("Running System Component: ")), RGB(0, 0, 0));
- CG::CGDrawStringToWnd(cKernelWnd, "newoskrnl.exe: Starting ZKA System...", 20, 10, RGB(0, 0, 0));
+ CG::CGDrawStringToWnd(cKernelWnd, "Starting ZKA System...", 20, 10, RGB(0, 0, 0));
Kernel::UserProcessHelper::Init();
diff --git a/dev/ZKA/Sources/DriveMgr.cxx b/dev/ZKA/Sources/DriveMgr.cxx
index 376eb158..e39c9c33 100644
--- a/dev/ZKA/Sources/DriveMgr.cxx
+++ b/dev/ZKA/Sources/DriveMgr.cxx
@@ -139,7 +139,7 @@ namespace Kernel
trait.fVerify = ke_drv_check_disk;
trait.fDriveKind = io_drive_kind;
- kcout << "newoskrnl.exe: Construct drive with success.\r";
+ kcout << "Construct drive with success.\r";
return trait;
}
diff --git a/dev/ZKA/Sources/FS/NewFS.cxx b/dev/ZKA/Sources/FS/NewFS.cxx
index e3ec6184..37b2a44c 100644
--- a/dev/ZKA/Sources/FS/NewFS.cxx
+++ b/dev/ZKA/Sources/FS/NewFS.cxx
@@ -67,7 +67,7 @@ _Output NFS_FORK_STRUCT* NewFSParser::CreateFork(_Input NFS_CATALOG_STRUCT* cata
Lba lba = (theFork.Kind == kNewFSDataForkKind) ? catalog->DataFork
: catalog->ResourceFork;
- kcout << "newoskrnl.exe: fork lba: " << hex_number(lba) << endl;
+ kcout << "fork lba: " << hex_number(lba) << endl;
if (lba <= kNewFSCatalogStartAddress)
return nullptr;
@@ -96,22 +96,22 @@ _Output NFS_FORK_STRUCT* NewFSParser::CreateFork(_Input NFS_CATALOG_STRUCT* cata
if (curFork.NextSibling > kBadAddress)
{
- kcout << "newoskrnl.exe: bad fork: " << hex_number(curFork.NextSibling) << endl;
+ kcout << "bad fork: " << hex_number(curFork.NextSibling) << endl;
break;
}
- kcout << "newoskrnl.exe: next fork: " << hex_number(curFork.NextSibling) << endl;
+ kcout << "next fork: " << hex_number(curFork.NextSibling) << endl;
if (curFork.Flags == kNewFSFlagCreated)
{
- kcout << "newoskrnl.exe: fork already exists.\r";
+ kcout << "fork already exists.\r";
/// sanity check.
if (StringBuilder::Equals(curFork.ForkName, theFork.ForkName) &&
StringBuilder::Equals(curFork.CatalogName, catalog->Name))
return nullptr;
- kcout << "newoskrnl.exe: next fork: " << hex_number(curFork.NextSibling) << endl;
+ kcout << "next fork: " << hex_number(curFork.NextSibling) << endl;
lbaOfPreviousFork = lba;
lba = curFork.NextSibling;
@@ -153,10 +153,10 @@ _Output NFS_FORK_STRUCT* NewFSParser::CreateFork(_Input NFS_CATALOG_STRUCT* cata
drv.fOutput(&drv.fPacket);
/// log what we have now.
- kcout << "newoskrnl.exe: Wrote fork data at: " << hex_number(theFork.DataOffset)
+ kcout << "Wrote fork data at: " << hex_number(theFork.DataOffset)
<< endl;
- kcout << "newoskrnl.exe: Wrote fork at: " << hex_number(lba) << endl;
+ kcout << "Wrote fork at: " << hex_number(lba) << endl;
return &theFork;
}
@@ -241,11 +241,11 @@ _Output NFS_CATALOG_STRUCT* NewFSParser::CreateCatalog(_Input const Char* name,
_Input const Int32& flags,
_Input const Int32& kind)
{
- kcout << "newoskrnl.exe: CreateCatalog(...)\r";
+ kcout << "CreateCatalog(...)\r";
Lba out_lba = 0UL;
- kcout << "newoskrnl.exe: Checking for extension...\r";
+ kcout << "Checking for extension...\r";
/// a directory should have a slash in the end.
if (kind == kNewFSCatalogKindDir &&
@@ -261,7 +261,7 @@ _Output NFS_CATALOG_STRUCT* NewFSParser::CreateCatalog(_Input const Char* name,
if (catalog_copy)
{
- kcout << "newoskrnl.exe: Catalog already exists: " << name << ".\r";
+ kcout << "Catalog already exists: " << name << ".\r";
ErrLocal() = kErrorFileExists;
return catalog_copy;
@@ -276,7 +276,7 @@ _Output NFS_CATALOG_STRUCT* NewFSParser::CreateCatalog(_Input const Char* name,
if (*parentName == 0)
{
- kcout << "newoskrnl.exe: Parent name is NUL.\r";
+ kcout << "Parent name is NUL.\r";
ErrLocal() = kErrorFileNotFound;
return nullptr;
}
@@ -308,7 +308,7 @@ _Output NFS_CATALOG_STRUCT* NewFSParser::CreateCatalog(_Input const Char* name,
if (catalog && catalog->Kind == kNewFSCatalogKindFile)
{
- kcout << "newoskrnl.exe: Parent name is file.\r";
+ kcout << "Parent name is file.\r";
delete catalog;
return nullptr;
}
@@ -433,9 +433,9 @@ _Output NFS_CATALOG_STRUCT* NewFSParser::CreateCatalog(_Input const Char* name,
drive.fOutput(&drive.fPacket);
- kcout << "newoskrnl.exe: Create new catalog, status: "
+ kcout << "Create new catalog, status: "
<< hex_number(catalogChild->Flags) << endl;
- kcout << "newoskrnl.exe: Create new catalog, name: " << catalogChild->Name
+ kcout << "Create new catalog, name: " << catalogChild->Name
<< endl;
delete catalog;
@@ -599,14 +599,14 @@ bool NewFSParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endL
drive->fOutput(&drive->fPacket);
- kcout << "newoskrnl.exe: drive kind: " << drive->fDriveKind() << endl;
+ kcout << "drive kind: " << drive->fDriveKind() << endl;
- kcout << "newoskrnl.exe: partition name: " << partBlock->PartitionName << endl;
- kcout << "newoskrnl.exe: start: " << hex_number(partBlock->StartCatalog) << endl;
- kcout << "newoskrnl.exe: number of catalogs: " << hex_number(partBlock->CatalogCount) << endl;
- kcout << "newoskrnl.exe: free catalog: " << hex_number(partBlock->FreeCatalog) << endl;
- kcout << "newoskrnl.exe: free sectors: " << hex_number(partBlock->FreeSectors) << endl;
- kcout << "newoskrnl.exe: sector size: " << hex_number(partBlock->SectorSize) << endl;
+ kcout << "partition name: " << partBlock->PartitionName << endl;
+ kcout << "start: " << hex_number(partBlock->StartCatalog) << endl;
+ kcout << "number of catalogs: " << hex_number(partBlock->CatalogCount) << endl;
+ kcout << "free catalog: " << hex_number(partBlock->FreeCatalog) << endl;
+ kcout << "free sectors: " << hex_number(partBlock->FreeSectors) << endl;
+ kcout << "sector size: " << hex_number(partBlock->SectorSize) << endl;
// write the root catalog.
this->CreateCatalog(kNewFSRoot, 0, kNewFSCatalogKindDir);
@@ -614,7 +614,7 @@ bool NewFSParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endL
return true;
}
- kcout << "newoskrnl.exe: partition block already exists.\r";
+ kcout << "partition block already exists.\r";
start += partBlock->DiskSize;
@@ -659,7 +659,7 @@ bool NewFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, Bool
{
ErrLocal() = kErrorDiskIsCorrupted;
- kcout << "newoskrnl.exe: Invalid fork offset.\r";
+ kcout << "Invalid fork offset.\r";
return false;
}
@@ -688,7 +688,7 @@ bool NewFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, Bool
drive.fPacket.fPacketSize = sizeOfData;
drive.fPacket.fLba = startFork + sizeof(NFS_FORK_STRUCT);
- kcout << "newoskrnl.exe: data offset: " << hex_number(forkDataIn->DataOffset) << endl;
+ kcout << "data offset: " << hex_number(forkDataIn->DataOffset) << endl;
drive.fOutput(&drive.fPacket);
@@ -698,7 +698,7 @@ bool NewFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, Bool
drive.fOutput(&drive.fPacket);
- kcout << "newoskrnl.exe: wrote fork at offset: " << hex_number(forkDataIn->DataOffset) << endl;
+ kcout << "wrote fork at offset: " << hex_number(forkDataIn->DataOffset) << endl;
delete catalog;
@@ -721,7 +721,7 @@ bool NewFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, Bool
_Output NFS_CATALOG_STRUCT* NewFSParser::FindCatalog(_Input const Char* catalogName,
Lba& out_lba)
{
- kcout << "newoskrnl.exe: start finding catalog...\r";
+ kcout << "start finding catalog...\r";
NFS_ROOT_PARTITION_BLOCK fs_buf{0};
auto drive = sMountpointInterface.A();
@@ -789,7 +789,7 @@ _Output NFS_CATALOG_STRUCT* NewFSParser::FindCatalog(_Input const Char* catalogN
}
}
- kcout << "newoskrnl.exe: fetching catalog...\r";
+ kcout << "fetching catalog...\r";
NewFSSearchThroughCatalogList:
while (drive.fPacket.fPacketGood)
@@ -813,8 +813,8 @@ NewFSSearchThroughCatalogList:
NFS_CATALOG_STRUCT* catalogPtr = new NFS_CATALOG_STRUCT();
rt_copy_memory(catalog, catalogPtr, sizeof(NFS_CATALOG_STRUCT));
- kcout << "newoskrnl.exe: found catalog at: " << hex_number(startCatalogList) << endl;
- kcout << "newoskrnl.exe: found catalog at: " << catalog->Name << endl;
+ kcout << "found catalog at: " << hex_number(startCatalogList) << endl;
+ kcout << "found catalog at: " << catalog->Name << endl;
out_lba = startCatalogList;
return catalogPtr;
@@ -944,7 +944,7 @@ VoidPtr NewFSParser::ReadCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog,
Lba dataForkLba = (!isRsrcFork) ? catalog->DataFork : catalog->ResourceFork;
Size dataForkSize = (!isRsrcFork) ? catalog->DataForkSize : catalog->ResourceForkSize;
- kcout << "newoskrnl.exe: catalog " << catalog->Name
+ kcout << "catalog " << catalog->Name
<< ", fork: " << hex_number(dataForkLba) << endl;
NFS_FORK_STRUCT* fs_buf = new NFS_FORK_STRUCT();
@@ -965,8 +965,8 @@ VoidPtr NewFSParser::ReadCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog,
fs_fork_data = fs_buf;
- kcout << "newoskrnl.exe: ForkName: " << fs_fork_data->ForkName << endl;
- kcout << "newoskrnl.exe: CatalogName: " << fs_fork_data->CatalogName << endl;
+ kcout << "ForkName: " << fs_fork_data->ForkName << endl;
+ kcout << "CatalogName: " << fs_fork_data->CatalogName << endl;
if (StringBuilder::Equals(forkName, fs_fork_data->ForkName) &&
StringBuilder::Equals(catalog->Name, fs_fork_data->CatalogName))
@@ -1028,18 +1028,18 @@ namespace Kernel::Detail
/***********************************************************************************/
Boolean fs_init_newfs(Void) noexcept
{
- kcout << "newoskrnl.exe: Creating drives...\r";
+ kcout << "Creating drives...\r";
sMountpointInterface.A() = io_construct_main_drive();
sMountpointInterface.B() = io_construct_drive();
sMountpointInterface.C() = io_construct_drive();
sMountpointInterface.D() = io_construct_drive();
- kcout << "newoskrnl.exe: Testing A:\r";
+ kcout << "Testing A:\r";
sMountpointInterface.A().fVerify(&sMountpointInterface.A().fPacket);
- kcout << "newoskrnl.exe: Testing A: [ OK ]\r";
+ kcout << "Testing A: [ OK ]\r";
return true;
}
diff --git a/dev/ZKA/Sources/Heap.cxx b/dev/ZKA/Sources/Heap.cxx
index 0b54cbcd..1f9af6a2 100644
--- a/dev/ZKA/Sources/Heap.cxx
+++ b/dev/ZKA/Sources/Heap.cxx
@@ -20,7 +20,7 @@ namespace Kernel
{
SizeT kHeapCount = 0UL;
PageMgr kHeapPageMgr;
- Bool kOperationInProgress = No;
+ Bool kHeapLock = No;
/// @brief Contains data structures and algorithms for the heap.
namespace Detail
@@ -52,12 +52,12 @@ namespace Kernel
Void mm_alloc_init_timeout(Void) noexcept
{
- kOperationInProgress = Yes;
+ kHeapLock = Yes;
}
Void mm_alloc_fini_timeout(Void) noexcept
{
- kOperationInProgress = No;
+ kHeapLock = No;
}
} // namespace Detail
@@ -111,7 +111,7 @@ namespace Kernel
heap_info_ptr->fHeapPtr = reinterpret_cast<UIntPtr>(heap_info_ptr) + sizeof(Detail::HEAP_INFORMATION_BLOCK);
heap_info_ptr->fPage = No;
heap_info_ptr->fUser = user;
- heap_info_ptr->fPresent = No;
+ heap_info_ptr->fPresent = Yes;
++kHeapCount;
@@ -168,6 +168,7 @@ namespace Kernel
if (heap_blk && heap_blk->fMagic == kKernelHeapMagic)
{
+
if (!heap_blk->fPresent)
{
Detail::mm_alloc_fini_timeout();
@@ -196,6 +197,8 @@ namespace Kernel
PTEWrapper pageWrapper(false, false, false, reinterpret_cast<UIntPtr>(heap_blk) - sizeof(Detail::HEAP_INFORMATION_BLOCK));
Ref<PTEWrapper> pteAddress{pageWrapper};
+ kcout << "Freeing pointer address: " << hex_number(reinterpret_cast<UIntPtr>(heap_blk) - sizeof(Detail::HEAP_INFORMATION_BLOCK)) << endl;
+
kHeapPageMgr.Free(pteAddress);
--kHeapCount;
diff --git a/dev/ZKA/Sources/IndexableProperty.cxx b/dev/ZKA/Sources/IndexableProperty.cxx
index 84aabc6b..a5f1bc0b 100644
--- a/dev/ZKA/Sources/IndexableProperty.cxx
+++ b/dev/ZKA/Sources/IndexableProperty.cxx
@@ -52,7 +52,7 @@ namespace Kernel
indexer.AddFlag(kIndexerClaimed);
rt_copy_memory((VoidPtr)indexer.Leak().Path, (VoidPtr)filename, filenameLen);
- kcout << "newoskrnl.exe: filesystem: index new file: " << filename << endl;
+ kcout << "filesystem: index new file: " << filename << endl;
}
}
} // namespace Indexer
diff --git a/dev/ZKA/Sources/KernelCheck.cxx b/dev/ZKA/Sources/KernelCheck.cxx
index 0ed96593..acc01dec 100644
--- a/dev/ZKA/Sources/KernelCheck.cxx
+++ b/dev/ZKA/Sources/KernelCheck.cxx
@@ -99,11 +99,16 @@ namespace Kernel
RecoveryFactory::Recover();
break;
case RUNTIME_CHECK_UNEXCPECTED: {
- CGDrawString("0x0000000B Catasrophic Kernel failure.", start_y, x, panicTxt);
+ CGDrawString("0x0000000B Unexpected Kernel failure.", start_y, x, panicTxt);
+ break;
+ }
+ case RUNTIME_CHECK_VIRTUAL_OUT_OF_MEM: {
+ CGDrawString("0x10000001 Out of Virtual Memory. (Catastrophic Failure)", start_y, x, panicTxt);
+ RecoveryFactory::Recover();
break;
}
case RUNTIME_CHECK_FAILED: {
- CGDrawString("0x10000001 Kernel bug-check failure.", start_y, x, panicTxt);
+ CGDrawString("0x10000001 Kernel Check.", start_y, x, panicTxt);
RecoveryFactory::Recover();
break;
}
@@ -129,8 +134,8 @@ namespace Kernel
{
if (!expr)
{
- kcout << "ASSERTION FAILED: FILE: " << file << endl;
- kcout << "ASSERTION FAILED: LINE: " << line << endl;
+ kcout << "FAILED: FILE: " << file << endl;
+ kcout << "FAILED: LINE: " << line << endl;
ke_stop(RUNTIME_CHECK_FAILED); // Runtime Check failed
}
diff --git a/dev/ZKA/Sources/NewFS+FileMgr.cxx b/dev/ZKA/Sources/NewFS+FileMgr.cxx
index dd0d4a21..1ffa774a 100644
--- a/dev/ZKA/Sources/NewFS+FileMgr.cxx
+++ b/dev/ZKA/Sources/NewFS+FileMgr.cxx
@@ -21,12 +21,12 @@ namespace Kernel
fImpl = new NewFSParser();
MUST_PASS(fImpl);
- kcout << "newoskrnl.exe: We are done here... (NewFilesystemMgr).\r";
+ kcout << "We are done here... (NewFilesystemMgr).\r";
}
NewFilesystemMgr::~NewFilesystemMgr()
{
- kcout << "newoskrnl.exe: Destroying it...\r";
+ kcout << "Destroying it...\r";
if (fImpl)
{
diff --git a/dev/ZKA/Sources/ThreadLocalStorage.cxx b/dev/ZKA/Sources/ThreadLocalStorage.cxx
index e68593f6..35f2dbcd 100644
--- a/dev/ZKA/Sources/ThreadLocalStorage.cxx
+++ b/dev/ZKA/Sources/ThreadLocalStorage.cxx
@@ -72,7 +72,7 @@ Boolean tls_check_tib(THREAD_INFORMATION_BLOCK* the_tib)
Encoder encoder;
const char* tibAsBytes = encoder.AsBytes(the_tib);
- kcout << "newoskrnl.exe: checking for a valid cookie inside the TIB...\r";
+ kcout << "checking for a valid cookie inside the TIB...\r";
return tibAsBytes[0] == kCookieMag0 && tibAsBytes[1] == kCookieMag1 &&
tibAsBytes[2] == kCookieMag2;
@@ -87,7 +87,7 @@ EXTERN_C Bool tls_check_syscall_impl(Kernel::VoidPtr tib_ptr) noexcept
{
if (!tib_ptr)
{
- kcout << "newoskrnl.exe: failing because of an invalid TIB...\r";
+ kcout << "failing because of an invalid TIB...\r";
return false;
}
@@ -95,10 +95,10 @@ EXTERN_C Bool tls_check_syscall_impl(Kernel::VoidPtr tib_ptr) noexcept
if (!tls_check_tib(tib_struct))
{
- kcout << "newoskrnl.exe: crashing because of an invalid TIB...\r";
+ kcout << "crashing because of an invalid TIB...\r";
return false;
}
- kcout << "newoskrnl.exe: Verification succeeded! staying alive...\r";
+ kcout << "Verification succeeded! staying alive...\r";
return true;
}
diff --git a/dev/ZKA/Sources/User.cxx b/dev/ZKA/Sources/User.cxx
index 5aa688be..066a3e06 100644
--- a/dev/ZKA/Sources/User.cxx
+++ b/dev/ZKA/Sources/User.cxx
@@ -99,7 +99,7 @@ namespace Kernel
delete[] password;
password = nullptr;
- kcout << "newoskrnl.exe: Saved password...\r";
+ kcout << "Saved password...\r";
return true;
}
diff --git a/dev/ZKA/Sources/UserProcessScheduler.cxx b/dev/ZKA/Sources/UserProcessScheduler.cxx
index 7c576226..4d74a5b3 100644
--- a/dev/ZKA/Sources/UserProcessScheduler.cxx
+++ b/dev/ZKA/Sources/UserProcessScheduler.cxx
@@ -234,10 +234,11 @@ namespace Kernel
process.MemoryPD = reinterpret_cast<UIntPtr>(hal_read_cr3());
#endif // __ZKA_AMD64__
- process.StackFrame = (HAL::StackFrame*)process.New(sizeof(HAL::StackFrame));
+ process.StackFrame = (HAL::StackFrame*)process.New(sizeof(HAL::StackFrame));
if (!process.StackFrame)
{
+ process.Crash();
return -kErrorProcessFault;
}
@@ -246,16 +247,16 @@ namespace Kernel
{
process.DLLPtr = rtl_init_shared_object(&process);
}
-
+
if (process.Image)
{
// get preferred stack size by app.
const auto cMaxStackSize = process.StackSize;
process.StackReserve = (UInt8*)process.New(sizeof(UInt8) * cMaxStackSize);
- // if stack pointer isn't valid.
- if (!process.StackReserve)
+ if (process.StackReserve)
{
+ process.Crash();
return -kErrorProcessFault;
}
}
@@ -296,11 +297,7 @@ namespace Kernel
// check if process is within range.
if (processSlot > mTeam.AsArray().Count())
return false;
-
- // also check if the process isn't a dummy one.
- if (mTeam.AsArray()[processSlot].Image == nullptr)
- return false;
-
+
kcout << "UserProcessScheduler: Removing process...\r";
mTeam.AsArray()[processSlot].Status = ProcessStatusKind::kDead;
@@ -427,7 +424,7 @@ namespace Kernel
if (!stack || !frame_ptr || !image_ptr || new_pid < 0)
return false;
- kcout << "newoskrnl.exe: Finding hardware thread...\r";
+ kcout << "Finding hardware thread...\r";
for (SizeT index = 0UL; index < HardwareThreadScheduler::The().Count(); ++index)
{
@@ -446,7 +443,7 @@ namespace Kernel
UserProcessHelper::TheCurrentPID() = new_pid;
- kcout << "newoskrnl.exe: Found hardware thread...\r";
+ kcout << "Found hardware thread...\r";
bool ret = HardwareThreadScheduler::The()[index].Leak()->Switch(image_ptr, stack, frame_ptr);