summaryrefslogtreecommitdiffhomepage
path: root/dev/ZKAKit/src
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-11-21 20:50:22 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-11-21 20:50:22 +0100
commit47a0e9b901e9e51b3f0ee5dd30d52ff1a5c8fcc0 (patch)
tree1c2e86bd4313bb40dfa3e70e7e31a8be71bf0c61 /dev/ZKAKit/src
parentd5397d2f3be6f3de742736e5d1fdfc3121879f70 (diff)
IMP: Compile using -Wall and scheduler improvements.
Diffstat (limited to 'dev/ZKAKit/src')
-rw-r--r--dev/ZKAKit/src/CodeMgr.cc8
-rw-r--r--dev/ZKAKit/src/DriveMgr.cc8
-rw-r--r--dev/ZKAKit/src/FS/NeFS.cc46
-rw-r--r--dev/ZKAKit/src/NeFS+FileMgr.cc2
-rw-r--r--dev/ZKAKit/src/PEFCodeMgr.cc4
-rw-r--r--dev/ZKAKit/src/UserProcessScheduler.cc41
6 files changed, 54 insertions, 55 deletions
diff --git a/dev/ZKAKit/src/CodeMgr.cc b/dev/ZKAKit/src/CodeMgr.cc
index c7d1843a..0133d653 100644
--- a/dev/ZKAKit/src/CodeMgr.cc
+++ b/dev/ZKAKit/src/CodeMgr.cc
@@ -18,14 +18,14 @@ namespace Kernel
{
if (!main ||
!process_name ||
- *process_name == 0)
+ *process_name == 0)
return kProcessInvalidID;
UserProcess* process_hdr = new UserProcess();
- process_hdr->Image.fCode = reinterpret_cast<VoidPtr>(main);
- process_hdr->Kind = UserProcess::kExectuableKind;
- process_hdr->StackSize = kib_cast(16);
+ process_hdr->Image.fCode = reinterpret_cast<VoidPtr>(main);
+ process_hdr->Kind = UserProcess::kExectuableKind;
+ process_hdr->StackSize = kib_cast(16);
rt_set_memory(process_hdr->Name, 0, kProcessNameLen);
diff --git a/dev/ZKAKit/src/DriveMgr.cc b/dev/ZKAKit/src/DriveMgr.cc
index 462e037c..8db3bd67 100644
--- a/dev/ZKAKit/src/DriveMgr.cc
+++ b/dev/ZKAKit/src/DriveMgr.cc
@@ -160,7 +160,7 @@ namespace Kernel
{
static _BOOT_BLOCK_STRUCT block_struct;
- trait->fPacket.fPacketLba = kEPMBaseLba;
+ trait->fPacket.fPacketLba = kEPMBaseLba;
trait->fPacket.fPacketSize = sizeof(_BOOT_BLOCK_STRUCT);
trait->fPacket.fPacketContent = &block_struct;
@@ -174,13 +174,13 @@ namespace Kernel
if (rt_string_cmp(((BOOT_BLOCK_STRUCT*)trait->fPacket.fPacketContent)->Magic, kEPMMagic, kEPMMagicLength) == 0)
{
trait->fPacket.fPacketReadOnly = NO;
- trait->fKind = kMassStorageDisc | kEPMDrive;
+ trait->fKind = kMassStorageDisc | kEPMDrive;
kcout << "Formatted Disc is EPM (Mass Storage).\r";
}
else
{
trait->fPacket.fPacketReadOnly = YES;
- trait->fKind = kMassStorageDisc | kUnformattedDrive | kReadOnlyDrive;
+ trait->fKind = kMassStorageDisc | kUnformattedDrive | kReadOnlyDrive;
kcout << "Scheme Found: " << block_struct.Name << endl;
if (block_struct.Name[0] == 0)
@@ -190,7 +190,7 @@ namespace Kernel
rt_copy_memory((VoidPtr) "*/*", trait->fPacket.fPacketMime,
rt_string_len("*/*"));
- trait->fPacket.fPacketLba = 0;
+ trait->fPacket.fPacketLba = 0;
trait->fPacket.fPacketSize = 0UL;
trait->fPacket.fPacketContent = nullptr;
}
diff --git a/dev/ZKAKit/src/FS/NeFS.cc b/dev/ZKAKit/src/FS/NeFS.cc
index 4d2f29aa..b73b6be6 100644
--- a/dev/ZKAKit/src/FS/NeFS.cc
+++ b/dev/ZKAKit/src/FS/NeFS.cc
@@ -90,7 +90,7 @@ _Output NFS_FORK_STRUCT* NeFSParser::CreateFork(_Input NFS_CATALOG_STRUCT* catal
if (lba <= kNeFSCatalogStartAddress)
break;
- drv.fPacket.fPacketLba = lba;
+ drv.fPacket.fPacketLba = lba;
drv.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT);
drv.fPacket.fPacketContent = &curFork;
@@ -126,7 +126,7 @@ _Output NFS_FORK_STRUCT* NeFSParser::CreateFork(_Input NFS_CATALOG_STRUCT* catal
/// entry.
if (lba >= kNeFSCatalogStartAddress)
{
- drv.fPacket.fPacketLba = lbaOfPreviousFork;
+ drv.fPacket.fPacketLba = lbaOfPreviousFork;
drv.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT);
drv.fPacket.fPacketContent = &prevFork;
@@ -145,7 +145,7 @@ _Output NFS_FORK_STRUCT* NeFSParser::CreateFork(_Input NFS_CATALOG_STRUCT* catal
the_fork.PreviousSibling = lbaOfPreviousFork;
the_fork.NextSibling = the_fork.DataOffset - the_fork.DataSize - sizeof(NFS_FORK_STRUCT);
- drv.fPacket.fPacketLba = lba;
+ drv.fPacket.fPacketLba = lba;
drv.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT);
drv.fPacket.fPacketContent = &the_fork;
@@ -180,7 +180,7 @@ _Output NFS_FORK_STRUCT* NeFSParser::FindFork(_Input NFS_CATALOG_STRUCT* catalog
while (lba != 0)
{
- drv.fPacket.fPacketLba = lba;
+ drv.fPacket.fPacketLba = lba;
drv.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT);
drv.fPacket.fPacketContent = (VoidPtr)the_fork;
@@ -317,7 +317,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name,
drive.fPacket.fPacketContent = sectorBufPartBlock;
drive.fPacket.fPacketSize = kNeFSSectorSz;
- drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress;
+ drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress;
drive.fInput(&drive.fPacket);
@@ -353,7 +353,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name,
drive.fPacket.fPacketContent = &temporary_catalog;
drive.fPacket.fPacketSize = kNeFSSectorSz;
- drive.fPacket.fPacketLba = start_free;
+ drive.fPacket.fPacketLba = start_free;
drive.fInput(&drive.fPacket);
@@ -387,7 +387,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name,
drive.fPacket.fPacketContent = sectorBufPartBlock;
drive.fPacket.fPacketSize = kNeFSSectorSz;
- drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress;
+ drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress;
drive.fInput(&drive.fPacket);
@@ -414,7 +414,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name,
drive.fPacket.fPacketContent = child_catalog;
drive.fPacket.fPacketSize = sizeof(NFS_CATALOG_STRUCT);
- drive.fPacket.fPacketLba = start_free;
+ drive.fPacket.fPacketLba = start_free;
drive.fOutput(&drive.fPacket);
@@ -422,7 +422,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name,
drive.fPacket.fPacketContent = sectorBufPartBlock;
drive.fPacket.fPacketSize = kNeFSSectorSz;
- drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress;
+ drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress;
drive.fInput(&drive.fPacket);
@@ -453,7 +453,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name,
drive.fPacket.fPacketContent = &temporary_catalog;
drive.fPacket.fPacketSize = kNeFSSectorSz;
- drive.fPacket.fPacketLba = start_free;
+ drive.fPacket.fPacketLba = start_free;
drive.fInput(&drive.fPacket);
}
@@ -490,7 +490,7 @@ bool NeFSParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endLb
drive->fPacket.fPacketContent = fs_buf;
drive->fPacket.fPacketSize = kNeFSSectorSz;
- drive->fPacket.fPacketLba = start;
+ drive->fPacket.fPacketLba = start;
drive->fInput(&drive->fPacket);
@@ -526,7 +526,7 @@ bool NeFSParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endLb
{
drive->fPacket.fPacketContent = buf;
drive->fPacket.fPacketSize = kNeFSSectorSz;
- drive->fPacket.fPacketLba = outEpmLba;
+ drive->fPacket.fPacketLba = outEpmLba;
drive->fInput(&drive->fPacket);
@@ -542,7 +542,7 @@ bool NeFSParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endLb
drive->fPacket.fPacketContent = bufEpmHdr;
drive->fPacket.fPacketSize = kNeFSSectorSz;
- drive->fPacket.fPacketLba = outEpmLba;
+ drive->fPacket.fPacketLba = outEpmLba;
drive->fOutput(&drive->fPacket);
@@ -594,7 +594,7 @@ bool NeFSParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endLb
drive->fPacket.fPacketContent = fs_buf;
drive->fPacket.fPacketSize = kNeFSSectorSz;
- drive->fPacket.fPacketLba = kNeFSRootCatalogStartAddress;
+ drive->fPacket.fPacketLba = kNeFSRootCatalogStartAddress;
drive->fOutput(&drive->fPacket);
@@ -619,7 +619,7 @@ bool NeFSParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endLb
drive->fPacket.fPacketContent = fs_buf;
drive->fPacket.fPacketSize = kNeFSSectorSz;
- drive->fPacket.fPacketLba = start;
+ drive->fPacket.fPacketLba = start;
drive->fInput(&drive->fPacket);
}
@@ -658,7 +658,7 @@ bool NeFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, Bool i
{
drive.fPacket.fPacketContent = fork_data_input;
drive.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT);
- drive.fPacket.fPacketLba = startFork;
+ drive.fPacket.fPacketLba = startFork;
drive.fInput(&drive.fPacket);
@@ -686,7 +686,7 @@ bool NeFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, Bool i
drive.fPacket.fPacketContent = buf;
drive.fPacket.fPacketSize = kNeFSForkDataSz;
- drive.fPacket.fPacketLba = fork_data_input->DataOffset;
+ drive.fPacket.fPacketLba = fork_data_input->DataOffset;
kcout << "data offset: " << hex_number(fork_data_input->DataOffset) << endl;
@@ -694,7 +694,7 @@ bool NeFSParser::WriteCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog, Bool i
drive.fPacket.fPacketContent = fork_data_input;
drive.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT);
- drive.fPacket.fPacketLba = startFork - sizeof(NFS_FORK_STRUCT);
+ drive.fPacket.fPacketLba = startFork - sizeof(NFS_FORK_STRUCT);
drive.fOutput(&drive.fPacket);
@@ -732,7 +732,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::FindCatalog(_Input const Char* catalogNa
drive.fPacket.fPacketContent = &fs_buf;
drive.fPacket.fPacketSize = sizeof(NFS_ROOT_PARTITION_BLOCK);
- drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress;
+ drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress;
drive.fInput(&drive.fPacket);
@@ -745,7 +745,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::FindCatalog(_Input const Char* catalogNa
NFS_CATALOG_STRUCT temporary_catalog{0};
- drive.fPacket.fPacketLba = startCatalogList;
+ drive.fPacket.fPacketLba = startCatalogList;
drive.fPacket.fPacketContent = &temporary_catalog;
drive.fPacket.fPacketSize = sizeof(NFS_CATALOG_STRUCT);
@@ -799,7 +799,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::FindCatalog(_Input const Char* catalogNa
NeFSSearchThroughCatalogList:
while (drive.fPacket.fPacketGood)
{
- drive.fPacket.fPacketLba = startCatalogList;
+ drive.fPacket.fPacketLba = startCatalogList;
drive.fPacket.fPacketContent = &temporary_catalog;
drive.fPacket.fPacketSize = sizeof(NFS_CATALOG_STRUCT);
@@ -901,7 +901,7 @@ Boolean NeFSParser::RemoveCatalog(_Input const Char* catalogName)
Char partitionBlockBuf[sizeof(NFS_ROOT_PARTITION_BLOCK)] = {0};
- drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress;
+ drive.fPacket.fPacketLba = kNeFSRootCatalogStartAddress;
drive.fPacket.fPacketContent = partitionBlockBuf;
drive.fPacket.fPacketSize = sizeof(NFS_ROOT_PARTITION_BLOCK);
@@ -962,7 +962,7 @@ VoidPtr NeFSParser::ReadCatalog(_Input _Output NFS_CATALOG_STRUCT* catalog,
while (dataForkLba > kNeFSCatalogStartAddress)
{
- drive.fPacket.fPacketLba = dataForkLba;
+ drive.fPacket.fPacketLba = dataForkLba;
drive.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT);
drive.fPacket.fPacketContent = fs_buf;
diff --git a/dev/ZKAKit/src/NeFS+FileMgr.cc b/dev/ZKAKit/src/NeFS+FileMgr.cc
index 341e6cea..0ea1e752 100644
--- a/dev/ZKAKit/src/NeFS+FileMgr.cc
+++ b/dev/ZKAKit/src/NeFS+FileMgr.cc
@@ -19,7 +19,7 @@ namespace Kernel
NeFileSystemMgr::NeFileSystemMgr()
{
MUST_PASS(Detail::fs_init_newfs());
-
+
NeFSParser* fImpl;
mm_new_class<NeFSParser>(&fImpl);
MUST_PASS(fImpl);
diff --git a/dev/ZKAKit/src/PEFCodeMgr.cc b/dev/ZKAKit/src/PEFCodeMgr.cc
index 90b4a697..d7a6edac 100644
--- a/dev/ZKAKit/src/PEFCodeMgr.cc
+++ b/dev/ZKAKit/src/PEFCodeMgr.cc
@@ -256,8 +256,8 @@ namespace Kernel
STATIC UserProcess proc;
proc.Kind = procKind;
- proc.Image.fCode = errOrStart.Leak().Leak();
- proc.Image.fBlob = exec.GetBlob().Leak().Leak();
+ proc.Image.fCode = errOrStart.Leak().Leak();
+ proc.Image.fBlob = exec.GetBlob().Leak().Leak();
proc.StackSize = *(UIntPtr*)exec.FindSymbol(kPefStackSizeSymbol, kPefData);
proc.MemoryLimit = *(UIntPtr*)exec.FindSymbol(kPefHeapSizeSymbol, kPefData);
proc.PTime = 0UL;
diff --git a/dev/ZKAKit/src/UserProcessScheduler.cc b/dev/ZKAKit/src/UserProcessScheduler.cc
index eb754ade..b96fd6a8 100644
--- a/dev/ZKAKit/src/UserProcessScheduler.cc
+++ b/dev/ZKAKit/src/UserProcessScheduler.cc
@@ -40,7 +40,7 @@ namespace Kernel
STATIC UserProcessScheduler kProcessScheduler;
- UserProcess::UserProcess() = default;
+ UserProcess::UserProcess() = default;
UserProcess::~UserProcess() = default;
/// @brief Gets the last exit code.
@@ -133,7 +133,7 @@ namespace Kernel
}
else
{
- UserProcessHeapList* entry = this->MemoryHeap;
+ UserProcessHeapList* entry = this->MemoryHeap;
UserProcessHeapList* prev_entry = nullptr;
while (!entry)
@@ -235,32 +235,29 @@ namespace Kernel
void UserProcess::Exit(const Int32& exit_code)
{
- if (exit_code > 0)
- this->Status = ProcessStatusKind::kKilled;
- else
- this->Status = ProcessStatusKind::kDead;
+ this->Status = exit_code > 0 ? ProcessStatusKind::kKilled : ProcessStatusKind::KFinishing;
+ this->fLastExitCode = exit_code;
- fLastExitCode = exit_code;
kLastExitCode = exit_code;
auto memory_list = this->MemoryHeap;
+#ifdef __ZKA_AMD64__
+ auto pd = hal_read_cr3();
+ hal_write_cr3(this->VMRegister);
+#endif
+
// Deleting memory lists. Make sure to free all of them.
while (memory_list)
{
if (memory_list->MemoryEntry)
{
-#ifdef __ZKA_AMD64__
- auto pd = hal_read_cr3();
- hal_write_cr3(this->VMRegister);
-#endif
-
MUST_PASS(mm_delete_heap(memory_list->MemoryEntry));
+ }
#ifdef __ZKA_AMD64__
- hal_write_cr3(pd);
+ hal_write_cr3(pd);
#endif
- }
auto next = memory_list->MemoryNext;
@@ -283,14 +280,14 @@ namespace Kernel
if (this->StackFrame && mm_is_valid_heap(this->StackFrame))
mm_delete_heap((VoidPtr)this->StackFrame);
- this->Image.fBlob = nullptr;
- this->Image.fCode = nullptr;
- this->StackFrame = nullptr;
+ this->Image.fBlob = nullptr;
+ this->Image.fCode = nullptr;
+ this->StackFrame = nullptr;
if (this->Kind == kExectuableDLLKind)
{
Bool success = false;
-
+
rtl_fini_dll(this, reinterpret_cast<IPEFDLLObject*>(this->PefDLLDelegate), &success);
if (!success)
@@ -305,6 +302,8 @@ namespace Kernel
mm_delete_heap(reinterpret_cast<VoidPtr>(this->StackReserve));
this->ProcessId = 0;
+
+ this->Status = ProcessStatusKind::kFinished;
}
/***********************************************************************************/
@@ -430,7 +429,7 @@ namespace Kernel
/***********************************************************************************/
/// @brief Run User scheduler object.
- /// @return Process executed within team.
+ /// @return Process count executed within a team.
/***********************************************************************************/
@@ -511,7 +510,7 @@ namespace Kernel
Bool UserProcessHelper::CanBeScheduled(const UserProcess& process)
{
if (process.Status == ProcessStatusKind::kKilled ||
- process.Status == ProcessStatusKind::kDead ||
+ process.Status == ProcessStatusKind::kFinished ||
process.Status == ProcessStatusKind::kFrozen)
return No;
@@ -533,7 +532,7 @@ namespace Kernel
{
return kProcessScheduler.Run();
}
-
+
/***********************************************************************************/
/**
* \brief Does a context switch in a CPU.