diff options
| author | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-11-21 15:48:03 +0100 |
|---|---|---|
| committer | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-11-21 15:48:03 +0100 |
| commit | 779b66cef292e1b52bce4599c9dfe1e0c10858eb (patch) | |
| tree | 8011852695f113c012315514986f6428f06b2155 /dev/ZKAKit/src | |
| parent | dc008570233d0dbfac32eb87367b7e4a08302e32 (diff) | |
IMP: Improvements over the microkernel, did lots of refactors.
Signed-off-by: Amlal EL Mahrouss <amlalelmahrouss@icloud.com>
Diffstat (limited to 'dev/ZKAKit/src')
| -rw-r--r-- | dev/ZKAKit/src/DriveMgr.cc | 32 | ||||
| -rw-r--r-- | dev/ZKAKit/src/FS/NeFS.cc | 50 | ||||
| -rw-r--r-- | dev/ZKAKit/src/Storage/ATADeviceInterface.cc | 4 | ||||
| -rw-r--r-- | dev/ZKAKit/src/UserProcessScheduler.cc | 6 |
4 files changed, 50 insertions, 42 deletions
diff --git a/dev/ZKAKit/src/DriveMgr.cc b/dev/ZKAKit/src/DriveMgr.cc index b609c2f7..899c5f67 100644 --- a/dev/ZKAKit/src/DriveMgr.cc +++ b/dev/ZKAKit/src/DriveMgr.cc @@ -33,9 +33,9 @@ namespace Kernel } #ifdef __AHCI__ - drv_std_read(pckt->fLba, (Char*)pckt->fPacketContent, kAHCISectorSize, pckt->fPacketSize); + drv_std_read(pckt->fPacketLba, (Char*)pckt->fPacketContent, kAHCISectorSize, pckt->fPacketSize); #elif defined(__ATA_PIO__) || defined(__ATA_DMA__) - drv_std_read(pckt->fLba, kATAIO, kATAMaster, (Char*)pckt->fPacketContent, kATASectorSize, pckt->fPacketSize); + drv_std_read(pckt->fPacketLba, kATAIO, kATAMaster, (Char*)pckt->fPacketContent, kATASectorSize, pckt->fPacketSize); #endif } @@ -50,9 +50,9 @@ namespace Kernel } #ifdef __AHCI__ - drv_std_write(pckt->fLba, (Char*)pckt->fPacketContent, kAHCISectorSize, pckt->fPacketSize); + drv_std_write(pckt->fPacketLba, (Char*)pckt->fPacketContent, kAHCISectorSize, pckt->fPacketSize); #elif defined(__ATA_PIO__) || defined(__ATA_DMA__) - drv_std_write(pckt->fLba, kATAIO, kATAMaster, (Char*)pckt->fPacketContent, kATASectorSize, pckt->fPacketSize); + drv_std_write(pckt->fPacketLba, kATAIO, kATAMaster, (Char*)pckt->fPacketContent, kATASectorSize, pckt->fPacketSize); #endif } @@ -83,14 +83,18 @@ namespace Kernel kATAIO = ATA_SECONDARY_IO; if (!drv_std_init(kATAIO, kATAMaster, kATAIO, kATAMaster)) + { return; + } pckt->fPacketGood = YES; #elif defined(__AHCI__) UInt16 pi = 0; if (!drv_std_init(pi)) + { return; + } #endif // if defined(__ATA_PIO__) || defined (__ATA_DMA__) } @@ -137,7 +141,7 @@ namespace Kernel DriveTrait trait; rt_copy_memory((VoidPtr) "/Disks/NUL:", trait.fName, rt_string_len("/Disks/NUL:")); - trait.fKind = kInvalidStorage; + trait.fKind = kInvalidDisc; trait.fInput = io_drv_unimplemented; trait.fOutput = io_drv_unimplemented; @@ -156,7 +160,7 @@ namespace Kernel { static _BOOT_BLOCK_STRUCT block_struct; - trait->fPacket.fLba = kEPMBaseLba; + trait->fPacket.fPacketLba = kEPMBaseLba; trait->fPacket.fPacketSize = sizeof(_BOOT_BLOCK_STRUCT); trait->fPacket.fPacketContent = &block_struct; @@ -169,20 +173,24 @@ namespace Kernel if (rt_string_cmp(((BOOT_BLOCK_STRUCT*)trait->fPacket.fPacketContent)->Magic, kEPMMagic, kEPMMagicLength) == 0) { - trait->fKind = kMassStorage; - trait->fKind |= kEPMDrive; - kcout << "Formatted drive is EPM.\r"; + trait->fPacket.fPacketReadOnly = NO; + trait->fKind = kMassStorageDisc | kEPMDrive; + kcout << "Formatted Disc is EPM (Mass Storage).\r"; } else { - trait->fKind = kUnformattedDrive; + trait->fPacket.fPacketReadOnly = YES; + trait->fKind = kMassStorageDisc | kUnformattedDrive | kReadOnlyDrive; kcout << "Scheme Found: " << block_struct.Name << endl; if (block_struct.Name[0] == 0) - kcout << "Formatted drive is blank.\r"; + kcout << "Disc partition is unknown (set to Read Only).\r"; } - trait->fPacket.fLba = 0; + rt_copy_memory((VoidPtr) "*/*", trait->fPacket.fPacketMime, + rt_string_len("*/*")); + + 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 bf1b54c5..2a7ff93c 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.fLba = 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.fLba = 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.fLba = 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.fLba = 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.fLba = 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.fLba = start_free; + drive.fPacket.fPacketLba = start_free; drive.fInput(&drive.fPacket); @@ -363,7 +363,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name, child_catalog->PrevSibling = out_lba; - drive.fPacket.fLba = start_free; + drive.fPacket.fPacketLba = start_free; drive.fInput(&drive.fPacket); while (drive.fPacket.fPacketGood) @@ -387,7 +387,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name, drive.fPacket.fPacketContent = sectorBufPartBlock; drive.fPacket.fPacketSize = kNeFSSectorSz; - drive.fPacket.fLba = 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.fLba = 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.fLba = 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.fLba = 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.fLba = 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.fLba = 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.fLba = 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.fLba = 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.fLba = 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.fLba = 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.fLba = 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.fLba = 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.fLba = 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.fLba = 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.fLba = startCatalogList; + drive.fPacket.fPacketLba = startCatalogList; drive.fPacket.fPacketContent = &temporary_catalog; drive.fPacket.fPacketSize = sizeof(NFS_CATALOG_STRUCT); @@ -892,7 +892,7 @@ Boolean NeFSParser::RemoveCatalog(_Input const Char* catalogName) rt_copy_memory((VoidPtr) "fs/nefs-packet", drive.fPacket.fPacketMime, rt_string_len("fs/nefs-packet")); - drive.fPacket.fLba = out_lba; // the catalog position. + drive.fPacket.fPacketLba = out_lba; // the catalog position. drive.fPacket.fPacketSize = sizeof(NFS_CATALOG_STRUCT); // size of catalog. roughly the sector size. drive.fPacket.fPacketContent = catalog; // the catalog itself. @@ -901,7 +901,7 @@ Boolean NeFSParser::RemoveCatalog(_Input const Char* catalogName) Char partitionBlockBuf[sizeof(NFS_ROOT_PARTITION_BLOCK)] = {0}; - drive.fPacket.fLba = 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.fLba = dataForkLba; + drive.fPacket.fPacketLba = dataForkLba; drive.fPacket.fPacketSize = sizeof(NFS_FORK_STRUCT); drive.fPacket.fPacketContent = fs_buf; diff --git a/dev/ZKAKit/src/Storage/ATADeviceInterface.cc b/dev/ZKAKit/src/Storage/ATADeviceInterface.cc index e80dd533..df987dff 100644 --- a/dev/ZKAKit/src/Storage/ATADeviceInterface.cc +++ b/dev/ZKAKit/src/Storage/ATADeviceInterface.cc @@ -43,7 +43,7 @@ ATADeviceInterface& ATADeviceInterface::operator<<(MountpointInterface* Data) if (!Data) return *this; - for (SizeT driveCount = 0; driveCount < kMaxDriveCountPerMountpoint; ++driveCount) + for (SizeT driveCount = 0; driveCount < kDriveMaxCount; ++driveCount) { auto interface = Data->GetAddressOf(driveCount); if ((interface) && rt_string_cmp((interface)->fDriveKind(), "ATA-", 5) == 0) @@ -69,7 +69,7 @@ ATADeviceInterface& ATADeviceInterface::operator>>(MountpointInterface* Data) if (!Data) return *this; - for (SizeT driveCount = 0; driveCount < kMaxDriveCountPerMountpoint; ++driveCount) + for (SizeT driveCount = 0; driveCount < kDriveMaxCount; ++driveCount) { auto interface = Data->GetAddressOf(driveCount); if ((interface) && rt_string_cmp((interface)->fDriveKind(), "ATA-", 5) == 0) diff --git a/dev/ZKAKit/src/UserProcessScheduler.cc b/dev/ZKAKit/src/UserProcessScheduler.cc index 79e07385..3fb063a4 100644 --- a/dev/ZKAKit/src/UserProcessScheduler.cc +++ b/dev/ZKAKit/src/UserProcessScheduler.cc @@ -9,7 +9,7 @@ /***********************************************************************************/ /// @file UserProcessScheduler.cc -/// @brief EL0/Ring-3 Process scheduler. +/// @brief EL0/Ring-3 process scheduler. /***********************************************************************************/ #include <KernelKit/UserProcessScheduler.h> @@ -52,7 +52,7 @@ namespace Kernel } /***********************************************************************************/ - /// @brief crash current process. + /// @brief Crashes the current process. /***********************************************************************************/ Void UserProcess::Crash() @@ -87,7 +87,7 @@ namespace Kernel Int32& UserProcess::GetLocalCode() noexcept { - return fLocalCode; + return this->fLocalCode; } /***********************************************************************************/ |
