summaryrefslogtreecommitdiffhomepage
path: root/dev/zka/src
diff options
context:
space:
mode:
Diffstat (limited to 'dev/zka/src')
-rw-r--r--dev/zka/src/CxxAbi-AMD64.cxx2
-rw-r--r--dev/zka/src/CxxAbi-ARM64.cxx4
-rw-r--r--dev/zka/src/DriveMgr.cxx10
-rw-r--r--dev/zka/src/FS/NeFS.cxx20
-rw-r--r--dev/zka/src/Stop.cxx2
-rw-r--r--dev/zka/src/Storage/SCSIDeviceInterface.cxx2
-rw-r--r--dev/zka/src/UserProcessScheduler.cxx29
7 files changed, 41 insertions, 28 deletions
diff --git a/dev/zka/src/CxxAbi-AMD64.cxx b/dev/zka/src/CxxAbi-AMD64.cxx
index 87801eb8..32e3ff37 100644
--- a/dev/zka/src/CxxAbi-AMD64.cxx
+++ b/dev/zka/src/CxxAbi-AMD64.cxx
@@ -25,8 +25,6 @@ EXTERN_C Kernel::Void __cxa_pure_virtual(void* self)
EXTERN_C void ___chkstk_ms(void)
{
- kcout << "Stack pointer has grown too much.\r";
- Kernel::ke_stop(RUNTIME_CHECK_FAILED);
}
EXTERN_C int atexit(void (*f)(void*), void* arg, void* dso)
diff --git a/dev/zka/src/CxxAbi-ARM64.cxx b/dev/zka/src/CxxAbi-ARM64.cxx
index 34c3f09c..759c2a7f 100644
--- a/dev/zka/src/CxxAbi-ARM64.cxx
+++ b/dev/zka/src/CxxAbi-ARM64.cxx
@@ -17,7 +17,9 @@ uarch_t __atexit_func_count;
/// @brief Dynamic Shared Object Handle.
Kernel::UIntPtr __dso_handle;
-EXTERN_C void __chkstk(void) {}
+EXTERN_C void __chkstk(void)
+{
+}
EXTERN_C int atexit(void (*f)(void*), void* arg, void* dso)
{
diff --git a/dev/zka/src/DriveMgr.cxx b/dev/zka/src/DriveMgr.cxx
index eabe8978..ecec5cec 100644
--- a/dev/zka/src/DriveMgr.cxx
+++ b/dev/zka/src/DriveMgr.cxx
@@ -23,7 +23,7 @@ namespace Kernel
STATIC UInt8 kATAMaster = 0U;
/// @brief reads from an ATA drive.
- /// @param pckt
+ /// @param pckt Packet structure (fPacketContent must be non null)
/// @return
Void io_drv_input(DriveTrait::DrivePacket* pckt)
{
@@ -33,9 +33,9 @@ namespace Kernel
}
#ifdef __AHCI__
- drv_std_read(pckt->fLba, (Char*)pckt->fPacketContent, kAHCISectorSize, pckt->fPacketSize);
+ drv_std_read(pckt->fLba, (Char*)pckt->fPacketContent.Leak(), 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->fLba, kATAIO, kATAMaster, (Char*)pckt->fPacketContent.Leak(), 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->fLba, (Char*)pckt->fPacketContent.Leak(), 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->fLba, kATAIO, kATAMaster, (Char*)pckt->fPacketContent.Leak(), kATASectorSize, pckt->fPacketSize);
#endif
}
diff --git a/dev/zka/src/FS/NeFS.cxx b/dev/zka/src/FS/NeFS.cxx
index f1b60c70..48bd441f 100644
--- a/dev/zka/src/FS/NeFS.cxx
+++ b/dev/zka/src/FS/NeFS.cxx
@@ -327,7 +327,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name,
constexpr auto cNeFSCatalogPadding = 4;
NFS_ROOT_PARTITION_BLOCK* part_block = (NFS_ROOT_PARTITION_BLOCK*)sectorBufPartBlock;
- out_lba = part_block->StartCatalog;
+ out_lba = part_block->StartCatalog;
}
constexpr SizeT cDefaultForkSize = kNeFSForkSize;
@@ -337,12 +337,12 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name,
Int32 flagsList = flags;
child_catalog->ResourceForkSize = cDefaultForkSize;
- child_catalog->DataForkSize = cDefaultForkSize;
+ child_catalog->DataForkSize = cDefaultForkSize;
child_catalog->NextSibling = out_lba;
child_catalog->PrevSibling = out_lba;
- child_catalog->Kind = kind;
- child_catalog->Flags = kNeFSFlagCreated | flagsList;
+ child_catalog->Kind = kind;
+ child_catalog->Flags = kNeFSFlagCreated | flagsList;
rt_copy_memory((VoidPtr)name, (VoidPtr)child_catalog->Name,
rt_string_len(name));
@@ -404,7 +404,7 @@ _Output NFS_CATALOG_STRUCT* NeFSParser::CreateCatalog(_Input const Char* name,
return nullptr;
}
- child_catalog->DataFork = part_block->DiskSize - start_free;
+ child_catalog->DataFork = part_block->DiskSize - start_free;
child_catalog->ResourceFork = child_catalog->DataFork;
// Write the new catalog next sibling, if we don't know this parent. //
@@ -587,13 +587,13 @@ bool NeFSParser::Format(_Input _Output DriveTrait* drive, _Input const Lba endLb
SizeT sectorCount = drv_get_sector_count();
SizeT diskSize = drv_get_size();
- part_block->Kind = kNeFSPartitionTypeStandard;
+ part_block->Kind = kNeFSPartitionTypeStandard;
part_block->StartCatalog = kNeFSCatalogStartAddress;
- part_block->Flags = kNeFSPartitionTypeStandard;
+ part_block->Flags = kNeFSPartitionTypeStandard;
part_block->CatalogCount = sectorCount / sizeof(NFS_CATALOG_STRUCT);
- part_block->SectorCount = sectorCount;
- part_block->DiskSize = diskSize;
- part_block->FreeCatalog = sectorCount / sizeof(NFS_CATALOG_STRUCT);
+ part_block->SectorCount = sectorCount;
+ part_block->DiskSize = diskSize;
+ part_block->FreeCatalog = sectorCount / sizeof(NFS_CATALOG_STRUCT);
drive->fPacket.fPacketContent = fs_buf;
drive->fPacket.fPacketSize = kNeFSSectorSz;
diff --git a/dev/zka/src/Stop.cxx b/dev/zka/src/Stop.cxx
index 1992fc38..afbc223b 100644
--- a/dev/zka/src/Stop.cxx
+++ b/dev/zka/src/Stop.cxx
@@ -15,7 +15,7 @@
#include <modules/FB/FB.hxx>
#include <modules/FB/Text.hxx>
-#define cWebsiteMacro "https://help.zka-technologies.com/"
+#define cWebsiteMacro "https://help.zws.com/"
/* Each error code is attributed with an ID, which will prompt a string onto the
* screen. Wait for debugger... */
diff --git a/dev/zka/src/Storage/SCSIDeviceInterface.cxx b/dev/zka/src/Storage/SCSIDeviceInterface.cxx
index c228ae54..bda16961 100644
--- a/dev/zka/src/Storage/SCSIDeviceInterface.cxx
+++ b/dev/zka/src/Storage/SCSIDeviceInterface.cxx
@@ -8,4 +8,4 @@
///! @brief ATAPI SCSI packet.
const scsi_packet_type<12> kCDRomPacketTemplate = {0x43, 0, 1, 0, 0, 0,
- 0, 12, 0x40, 0, 0};
+ 0, 12, 0x40, 0, 0};
diff --git a/dev/zka/src/UserProcessScheduler.cxx b/dev/zka/src/UserProcessScheduler.cxx
index d0236578..af9ab5d3 100644
--- a/dev/zka/src/UserProcessScheduler.cxx
+++ b/dev/zka/src/UserProcessScheduler.cxx
@@ -35,10 +35,12 @@ namespace Kernel
STATIC UInt32 cLastExitCode = 0U;
/***********************************************************************************/
- /// @brief User Process scheduler global object.
+ /// @brief User Process scheduler global and external reference of thread scheduler.
/***********************************************************************************/
UserProcessScheduler* cProcessScheduler = nullptr;
+ EXTERN HardwareThreadScheduler* cHardwareThreadScheduler;
+
/// @brief Gets the last exit code.
/// @note Not thread-safe.
@@ -54,8 +56,15 @@ namespace Kernel
Void UserProcess::Crash()
{
- if (*this->Name != 0)
- kcout << this->Name << ": crashed, error id: " << number(kErrorProcessFault) << endl;
+ if (*this->Name != 0 &&
+ *this->Name > 'A')
+{
+ kcout << this->Name << ": crashed, error id: " << number(kErrorProcessFault) << endl;
+}
+ else
+ {
+ return;
+ }
this->Exit(kErrorProcessFault);
}
@@ -505,11 +514,15 @@ namespace Kernel
{
if (!cProcessScheduler)
{
- cProcessScheduler = mm_new_class<UserProcessScheduler>();
- return Yes;
+ cProcessScheduler = new UserProcessScheduler();
}
+
+ if (!cHardwareThreadScheduler)
+ {
+ cHardwareThreadScheduler = new HardwareThreadScheduler();
+ }
- return No;
+ return Yes;
}
/***********************************************************************************/
@@ -520,12 +533,12 @@ namespace Kernel
SizeT UserProcessHelper::StartScheduling()
{
- kcout << "Sched: Trying to schedule processes...\r";
+ kcout << "UserProcessScheduler: Trying to schedule user processes...\r";
if (!cProcessScheduler)
return 0;
- kcout << "Sched: Scheduling processes...\r";
+ kcout << "UserProcessScheduler: Object is valid, scheduling user processes...\r";
SizeT ret = cProcessScheduler->Run();
return ret;