summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--dev/crt/defines.hxx6
-rw-r--r--dev/crt/src/hal/x86/base_alloc.cxx4
-rw-r--r--dev/hpfs/hpfs_specs.hxx4
-rw-r--r--dev/modules/FB/FB.hxx32
-rw-r--r--dev/zba/src/BootSupport.cxx4
-rw-r--r--dev/zba/src/HEL/AMD64/BootMain.cxx8
-rw-r--r--dev/zba/src/HEL/ARM64/BootMain.cxx2
-rw-r--r--dev/zba/src/HEL/ARM64/BootPlatform.cxx7
-rw-r--r--dev/zba/src/Thread.cxx4
-rw-r--r--dev/zka/FSKit/HPFS.hxx4
-rw-r--r--dev/zka/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cxx4
-rw-r--r--dev/zka/HALKit/AMD64/HalDescriptorLoader.cxx7
-rw-r--r--dev/zka/HALKit/AMD64/HalKernelMain.cxx24
-rw-r--r--dev/zka/HALKit/AMD64/Processor.hxx6
-rw-r--r--dev/zka/HALKit/ARM64/HalKernelMain.cxx4
-rw-r--r--dev/zka/HALKit/ARM64/HalPagingMgr.cxx1
-rw-r--r--dev/zka/HALKit/ARM64/HalSchedulerCore.cxx4
-rw-r--r--dev/zka/HALKit/ARM64/Processor.hxx1
-rw-r--r--dev/zka/KernelKit/DriveMgr.hxx33
-rw-r--r--dev/zka/KernelKit/Heap.hxx8
-rw-r--r--dev/zka/KernelKit/UserProcessScheduler.hxx11
-rw-r--r--dev/zka/NewKit/Ref.hxx2
-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
-rw-r--r--tools/framework.hxx6
-rw-r--r--tools/src/make_framework.cxx2
31 files changed, 135 insertions, 122 deletions
diff --git a/dev/crt/defines.hxx b/dev/crt/defines.hxx
index 8bcceaae..f23bdaa3 100644
--- a/dev/crt/defines.hxx
+++ b/dev/crt/defines.hxx
@@ -15,9 +15,9 @@
typedef void* ptr_type;
typedef __SIZE_TYPE__ size_type;
-typedef void* voidptr_t;
-typedef void* any_t;
-typedef char* caddr_t;
+typedef void* voidptr_t;
+typedef void* any_t;
+typedef char* caddr_t;
#ifndef NULL
#define NULL ((voidptr_t)0)
diff --git a/dev/crt/src/hal/x86/base_alloc.cxx b/dev/crt/src/hal/x86/base_alloc.cxx
index c9634dbd..55a53c9d 100644
--- a/dev/crt/src/hal/x86/base_alloc.cxx
+++ b/dev/crt/src/hal/x86/base_alloc.cxx
@@ -20,7 +20,7 @@ void* operator new(size_t length)
: "=r"(ptr));
if (!ptr)
- std::__throw_bad_alloc();
+ std::__throw_bad_alloc();
return ptr;
}
@@ -35,7 +35,7 @@ void* operator new[](size_t length)
: "=r"(ptr));
if (!ptr)
- std::__throw_bad_alloc();
+ std::__throw_bad_alloc();
return ptr;
}
diff --git a/dev/hpfs/hpfs_specs.hxx b/dev/hpfs/hpfs_specs.hxx
index 851623a4..5b22ce31 100644
--- a/dev/hpfs/hpfs_specs.hxx
+++ b/dev/hpfs/hpfs_specs.hxx
@@ -11,8 +11,8 @@
#include <ddk/ddk.h>
-#define kHPFSVersion 0x01000
-#define kHPFSMagic " HPFS"
+#define kHPFSVersion 0x01000
+#define kHPFSMagic " HPFS"
#define kHPFSMagicLen 8
/** @brief Drive type enum. */
diff --git a/dev/modules/FB/FB.hxx b/dev/modules/FB/FB.hxx
index 1b30fb8e..0f3dbfd6 100644
--- a/dev/modules/FB/FB.hxx
+++ b/dev/modules/FB/FB.hxx
@@ -18,7 +18,7 @@
/// @brief Performs OR drawing on the framebuffer.
#define CGDrawBitMapInRegionA(_BitMp, _Height, _Width, _BaseX, _BaseY) \
- kCGCursor = 0; \
+ kCGCursor = 0; \
\
for (Kernel::SizeT i = _BaseX; i < (_Height + _BaseX); ++i) \
{ \
@@ -27,15 +27,15 @@
*(((Kernel::UInt32*)(kHandoverHeader->f_GOP.f_The + \
4 * kHandoverHeader->f_GOP.f_PixelPerLine * \
i + \
- 4 * u))) |= (_BitMp)[kCGCursor]; \
+ 4 * u))) |= (_BitMp)[kCGCursor]; \
\
- ++kCGCursor; \
+ ++kCGCursor; \
} \
}
/// @brief Draws a resource.
#define CGDrawBitMapInRegion(_BitMp, _Height, _Width, _BaseX, _BaseY) \
- kCGCursor = 0; \
+ kCGCursor = 0; \
\
for (Kernel::SizeT i = _BaseX; i < (_Height + _BaseX); ++i) \
{ \
@@ -44,14 +44,14 @@
*(((Kernel::UInt32*)(kHandoverHeader->f_GOP.f_The + \
4 * kHandoverHeader->f_GOP.f_PixelPerLine * \
i + \
- 4 * u))) = (_BitMp)[kCGCursor]; \
+ 4 * u))) = (_BitMp)[kCGCursor]; \
\
- ++kCGCursor; \
+ ++kCGCursor; \
} \
}
#define CGDrawBitMapInRegionToRgn(_Rgn, _BitMp, _Height, _Width, _BaseX, _BaseY) \
- kCGCursor = 0; \
+ kCGCursor = 0; \
\
for (Kernel::SizeT i = _BaseX; i < (_Height + _BaseX); ++i) \
{ \
@@ -60,9 +60,9 @@
*(((Kernel::UInt32*)(_Rgn + \
4 * kHandoverHeader->f_GOP.f_PixelPerLine * \
i + \
- 4 * u))) = (_BitMp)[kCGCursor]; \
+ 4 * u))) = (_BitMp)[kCGCursor]; \
\
- ++kCGCursor; \
+ ++kCGCursor; \
} \
}
@@ -96,7 +96,7 @@
/// @brief Draws inside a zone.
#define CGDrawInRegionToRgn(_Rgn, _Clr, _Height, _Width, _BaseX, _BaseY) \
- kCGCursor = 0; \
+ kCGCursor = 0; \
\
for (Kernel::SizeT x_base = _BaseX; x_base < (_Width + _BaseX); ++x_base) \
{ \
@@ -105,13 +105,13 @@
*(((volatile Kernel::UInt32*)(_Rgn + \
4 * kHandoverHeader->f_GOP.f_PixelPerLine * \
x_base + \
- 4 * y_base))) = _Clr[kCGCursor]; \
- ++kCGCursor; \
+ 4 * y_base))) = _Clr[kCGCursor]; \
+ ++kCGCursor; \
} \
}
#define CGDrawInRegionToVideoRgn(_VideoRgn, _Clr, _Height, _Width, _BaseX, _BaseY) \
- kCGCursor = 0; \
+ kCGCursor = 0; \
\
for (Kernel::SizeT x_base = _BaseX; x_base < (_Width + _BaseX); ++x_base) \
{ \
@@ -121,12 +121,12 @@
4 * kHandoverHeader->f_GOP.f_PixelPerLine * \
x_base + \
4 * y_base))) = _Clr; \
- ++kCGCursor; \
+ ++kCGCursor; \
} \
}
#define CGDrawInRegionToVideoRgnA(_VideoRgn, _Clr, _Height, _Width, _BaseX, _BaseY) \
- kCGCursor = 0; \
+ kCGCursor = 0; \
\
for (Kernel::SizeT x_base = _BaseX; x_base < (_Width + _BaseX); ++x_base) \
{ \
@@ -136,7 +136,7 @@
4 * kHandoverHeader->f_GOP.f_PixelPerLine * \
x_base + \
4 * y_base))) |= _Clr; \
- ++kCGCursor; \
+ ++kCGCursor; \
} \
}
diff --git a/dev/zba/src/BootSupport.cxx b/dev/zba/src/BootSupport.cxx
index f0fb3def..bda7ee38 100644
--- a/dev/zba/src/BootSupport.cxx
+++ b/dev/zba/src/BootSupport.cxx
@@ -75,6 +75,8 @@ EXTERN_C int strcmp(const char* whatToCheck, const char* whatToCheckRight)
}
/// @brief something specific to the Microsoft's ABI, When the stack grows too big.
-EXTERN_C void ___chkstk_ms(void) {}
+EXTERN_C void ___chkstk_ms(void)
+{
+}
#endif
diff --git a/dev/zba/src/HEL/AMD64/BootMain.cxx b/dev/zba/src/HEL/AMD64/BootMain.cxx
index 5335ca7a..113f2d40 100644
--- a/dev/zba/src/HEL/AMD64/BootMain.cxx
+++ b/dev/zba/src/HEL/AMD64/BootMain.cxx
@@ -32,7 +32,7 @@
/** Graphics related. */
-STATIC EfiGraphicsOutputProtocol* kGop = nullptr;
+STATIC EfiGraphicsOutputProtocol* kGop = nullptr;
STATIC UInt16 kGopStride = 0U;
STATIC EfiGUID kGopGuid;
@@ -78,8 +78,8 @@ EXTERN EfiBootServices* BS;
/// @param ImageHandle Handle of this image.
/// @param SystemTable The system table of it.
/// @return nothing, never returns.
-EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle,
- EfiSystemTable* SystemTable)
+EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle,
+ EfiSystemTable* SystemTable)
{
InitEFI(SystemTable); ///! Init the EFI library.
@@ -149,7 +149,7 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle,
mp->GetNumberOfProcessors(mp, &cnt_disabled, &cnt_enabled);
#ifdef __ZKA_USE_FB__
- CGDrawString("NEWOSLDR (C) ZKA TECHNOLOGIES.", 10, 10, RGB(0xFF, 0xFF, 0xFF));
+ CGDrawString("NEWOSLDR (C) ZKA WEB SERVICES.", 10, 10, RGB(0xFF, 0xFF, 0xFF));
CGDrawString((cnt_enabled > 1) ? "MULTIPLE PROCESSORS DETECTED." : "SINGLE PROCESSOR DETECTED.", 20, 10, RGB(0xFF, 0xFF, 0xFF));
#endif // __ZKA_USE_FB__
diff --git a/dev/zba/src/HEL/ARM64/BootMain.cxx b/dev/zba/src/HEL/ARM64/BootMain.cxx
index 299b5adb..2dc940cd 100644
--- a/dev/zba/src/HEL/ARM64/BootMain.cxx
+++ b/dev/zba/src/HEL/ARM64/BootMain.cxx
@@ -19,7 +19,7 @@
EXTERN EfiBootServices* BS;
-STATIC EfiGraphicsOutputProtocol* kGop = nullptr;
+STATIC EfiGraphicsOutputProtocol* kGop = nullptr;
STATIC UInt16 kGopStride = 0U;
STATIC EfiGUID kGopGuid;
diff --git a/dev/zba/src/HEL/ARM64/BootPlatform.cxx b/dev/zba/src/HEL/ARM64/BootPlatform.cxx
index 2fb58647..b8c96a10 100644
--- a/dev/zba/src/HEL/ARM64/BootPlatform.cxx
+++ b/dev/zba/src/HEL/ARM64/BootPlatform.cxx
@@ -14,27 +14,24 @@ using namespace Boot;
EXTERN_C void rt_hlt()
{
- while (Yes);
+ while (Yes)
+ ;
}
EXTERN_C void rt_cli()
{
-
}
EXTERN_C void rt_sti()
{
-
}
EXTERN_C void rt_cld()
{
-
}
EXTERN_C void rt_std()
{
-
}
#endif // __STANDALONE__
diff --git a/dev/zba/src/Thread.cxx b/dev/zba/src/Thread.cxx
index a8b3e87c..46b9030b 100644
--- a/dev/zba/src/Thread.cxx
+++ b/dev/zba/src/Thread.cxx
@@ -39,11 +39,11 @@ namespace Boot
if (blob_bytes[0] == kMagMz0 &&
blob_bytes[1] == kMagMz1)
{
- LDR_EXEC_HEADER_PTR header_ptr = ldr_find_exec_header(blob_bytes);
+ LDR_EXEC_HEADER_PTR header_ptr = ldr_find_exec_header(blob_bytes);
LDR_OPTIONAL_HEADER_PTR opt_header_ptr = ldr_find_opt_exec_header(blob_bytes);
if (!header_ptr || !opt_header_ptr)
- return;
+ return;
#ifdef __ZKA_AMD64__
if (header_ptr->mMachine != kPeMachineAMD64 ||
diff --git a/dev/zka/FSKit/HPFS.hxx b/dev/zka/FSKit/HPFS.hxx
index 6ff49f1f..c709e48f 100644
--- a/dev/zka/FSKit/HPFS.hxx
+++ b/dev/zka/FSKit/HPFS.hxx
@@ -11,8 +11,8 @@
/// @file HPFS.hxx
/// @brief HPFS filesystem support.
-#define kHPFSVersion 0x01000
-#define kHPFSMagic " HPFS"
+#define kHPFSVersion 0x01000
+#define kHPFSMagic " HPFS"
#define kHPFSMagicLen 8
#define kHPFSMinimumDiskSize (gib_cast(64))
diff --git a/dev/zka/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cxx b/dev/zka/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cxx
index 292aea4d..a76fde89 100644
--- a/dev/zka/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cxx
+++ b/dev/zka/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cxx
@@ -92,7 +92,7 @@ EXTERN_C void idt_handle_ud(Kernel::UIntPtr rsp)
/// @return nothing.
EXTERN_C Kernel::Void hal_system_call_enter(Kernel::UIntPtr rcx, Kernel::UIntPtr rdx)
{
- Kernel::HAL::Out8(0x20, 0x20); // Acknowledge interrupt to master PIC
+ Kernel::HAL::Out8(0x20, 0x20); // Acknowledge interrupt to master PIC
if (rcx <= (kSyscalls.Count() - 1))
{
@@ -110,7 +110,7 @@ EXTERN_C Kernel::Void hal_system_call_enter(Kernel::UIntPtr rcx, Kernel::UIntPtr
/// @return nothing.
EXTERN_C Kernel::Void hal_kernel_call_enter(Kernel::UIntPtr rcx, Kernel::UIntPtr rdx, Kernel::UIntPtr r8, Kernel::UIntPtr r9)
{
- Kernel::HAL::Out8(0x20, 0x20); // Acknowledge interrupt to master PIC
+ Kernel::HAL::Out8(0x20, 0x20); // Acknowledge interrupt to master PIC
if (rcx <= (kSyscalls.Count() - 1))
{
diff --git a/dev/zka/HALKit/AMD64/HalDescriptorLoader.cxx b/dev/zka/HALKit/AMD64/HalDescriptorLoader.cxx
index d554771c..343ac9ab 100644
--- a/dev/zka/HALKit/AMD64/HalDescriptorLoader.cxx
+++ b/dev/zka/HALKit/AMD64/HalDescriptorLoader.cxx
@@ -100,10 +100,9 @@ namespace Kernel::HAL
hal_load_idt(idt);
Detail::hal_enable_pit(cPITTickForScheduler);
- Detail::hal_clear_irq_mask(32);
-
- rt_sti();
- }
+
+ rt_sti();
+ }
void GDTLoader::Load(Ref<RegisterGDT>& gdt)
{
diff --git a/dev/zka/HALKit/AMD64/HalKernelMain.cxx b/dev/zka/HALKit/AMD64/HalKernelMain.cxx
index ea8049c5..e836a239 100644
--- a/dev/zka/HALKit/AMD64/HalKernelMain.cxx
+++ b/dev/zka/HALKit/AMD64/HalKernelMain.cxx
@@ -83,19 +83,25 @@ EXTERN_C void hal_init_platform(
EXTERN_C Kernel::Void hal_real_init(Kernel::Void) noexcept
{
- Kernel::HAL::Register64 idt_reg;
- idt_reg.Base = (Kernel::UIntPtr)kInterruptVectorTable;
-
- Kernel::HAL::IDTLoader idt_loader;
- idt_loader.Load(idt_reg);
+ /* Initialize filesystem. */
+ Kernel::NeFileSystemMgr* mgr = Kernel::mm_new_class<Kernel::NeFileSystemMgr>();
+ Kernel::NeFileSystemMgr::Mount(mgr);
+
+ /* Initialize scheduler. */
+ Kernel::UserProcessHelper::InitializeScheduler();
+ /* Start any cores. */
if (kHandoverHeader->f_HardwareTables.f_MultiProcessingEnabled)
Kernel::HAL::mp_get_cores(kHandoverHeader->f_HardwareTables.f_VendorPtr);
+
+ /* Load System.exe here (TODO) */
+
+ Kernel::HAL::Register64 idt_reg;
+ idt_reg.Base = (Kernel::UIntPtr)kInterruptVectorTable;
- Kernel::NeFileSystemMgr* mgr = Kernel::mm_new_class<Kernel::NeFileSystemMgr>();
- Kernel::NeFileSystemMgr::Mount(mgr);
-
- Kernel::UserProcessHelper::InitializeScheduler();
+ /* Load interrupts. */
+ Kernel::HAL::IDTLoader idt_loader;
+ idt_loader.Load(idt_reg);
Kernel::ke_stop(RUNTIME_CHECK_BOOTSTRAP);
}
diff --git a/dev/zka/HALKit/AMD64/Processor.hxx b/dev/zka/HALKit/AMD64/Processor.hxx
index f1de4d49..2fd62820 100644
--- a/dev/zka/HALKit/AMD64/Processor.hxx
+++ b/dev/zka/HALKit/AMD64/Processor.hxx
@@ -23,10 +23,10 @@
#define kPITChannel0Port 0x40
#define kPITFrequency 1193180
-#define kPICCommand 0x20
-#define kPICData 0x21
+#define kPICCommand 0x20
+#define kPICData 0x21
#define kPIC2Command 0xA0
-#define kPIC2Data 0xA1
+#define kPIC2Data 0xA1
EXTERN_C
{
diff --git a/dev/zka/HALKit/ARM64/HalKernelMain.cxx b/dev/zka/HALKit/ARM64/HalKernelMain.cxx
index 4e445a21..52096158 100644
--- a/dev/zka/HALKit/ARM64/HalKernelMain.cxx
+++ b/dev/zka/HALKit/ARM64/HalKernelMain.cxx
@@ -40,5 +40,7 @@ EXTERN_C void hal_init_platform(
/* INITIALIZE BIT MAP. */
/************************************** */
- while (Yes) {}
+ while (Yes)
+ {
+ }
}
diff --git a/dev/zka/HALKit/ARM64/HalPagingMgr.cxx b/dev/zka/HALKit/ARM64/HalPagingMgr.cxx
index e8a41ff5..ae060af9 100644
--- a/dev/zka/HALKit/ARM64/HalPagingMgr.cxx
+++ b/dev/zka/HALKit/ARM64/HalPagingMgr.cxx
@@ -36,7 +36,6 @@ namespace Kernel::HAL
/// \brief Retrieve the page status of a PTE.
STATIC Void mmi_page_status(PTE* pte)
{
-
}
STATIC Int32 mmi_map_page_table_entry(VoidPtr virtual_address, UInt32 flags, PTE* pt_entry);
diff --git a/dev/zka/HALKit/ARM64/HalSchedulerCore.cxx b/dev/zka/HALKit/ARM64/HalSchedulerCore.cxx
index 6f2f356e..e231e0fc 100644
--- a/dev/zka/HALKit/ARM64/HalSchedulerCore.cxx
+++ b/dev/zka/HALKit/ARM64/HalSchedulerCore.cxx
@@ -8,9 +8,9 @@
namespace Kernel
{
- EXTERN_C Void __zka_pure_call(void)
+ EXTERN_C Void __zka_pure_call(void)
{
- UserProcessScheduler::The().CurrentProcess().Leak().Crash();
+ UserProcessScheduler::The().CurrentProcess().Leak().Crash();
}
Void UserProcess::SetImageStart(VoidPtr image_start) noexcept
diff --git a/dev/zka/HALKit/ARM64/Processor.hxx b/dev/zka/HALKit/ARM64/Processor.hxx
index 883ebe5c..93a9141a 100644
--- a/dev/zka/HALKit/ARM64/Processor.hxx
+++ b/dev/zka/HALKit/ARM64/Processor.hxx
@@ -62,7 +62,6 @@ namespace Kernel::HAL
{
while (Yes)
{
-
}
}
diff --git a/dev/zka/KernelKit/DriveMgr.hxx b/dev/zka/KernelKit/DriveMgr.hxx
index 6e55fc04..ddff013b 100644
--- a/dev/zka/KernelKit/DriveMgr.hxx
+++ b/dev/zka/KernelKit/DriveMgr.hxx
@@ -14,6 +14,7 @@
#include <KernelKit/LPC.hxx>
#include <NewKit/Defines.hxx>
#include <NewKit/String.hxx>
+#include <NewKit/Ref.hxx>
#define kMaxDriveCountPerMountpoint (4U)
@@ -26,18 +27,18 @@ namespace Kernel
{
enum
{
- /// Storage type.
+ /// Storage type.
kInvalidStorage = -1,
- kBlockDevice = 0xAD,
- kMassStorage = 0xDA,
- kFloppyDisc = 0xCD,
- kOpticalDisc = 0xDC, // CD-ROM/DVD-ROM/Blu-Ray
+ kBlockDevice = 0xAD,
+ kMassStorage = 0xDA,
+ kFloppyDisc = 0xCD,
+ kOpticalDisc = 0xDC, // CD-ROM/DVD-ROM/Blu-Ray
/// Storage flags, combine with below.
- kReadOnly = 0x10, // Read only drive
- kEPMDrive = 0x11, // Explicit Partition Map.
- kEPTDrive = 0x12, // ESP w/ EPM partition.
- kMBRDrive = 0x13, // PC classic partition scheme
- kGPTDrive = 0x14, // PC new partition scheme
+ kReadOnly = 0x10, // Read only drive
+ kEPMDrive = 0x11, // Explicit Partition Map.
+ kEPTDrive = 0x12, // ESP w/ EPM partition.
+ kMBRDrive = 0x13, // PC classic partition scheme
+ kGPTDrive = 0x14, // PC new partition scheme
kStorageCount = 9,
};
@@ -54,12 +55,12 @@ namespace Kernel
/// @brief Packet drive (StorageKit compilant.)
struct DrivePacket final
{
- VoidPtr fPacketContent; //! packet body.
- Char fPacketMime[kDriveNameLen]; //! identify what we're sending.
- SizeT fPacketSize; //! packet size
- UInt32 fPacketCRC32; //! sanity crc, in case if good is set to false
- Boolean fPacketGood;
- Lba fLba;
+ Ref<VoidPtr> fPacketContent; //! packet body.
+ Char fPacketMime[kDriveNameLen]; //! identify what we're sending.
+ SizeT fPacketSize; //! packet size
+ UInt32 fPacketCRC32; //! sanity crc, in case if good is set to false
+ Boolean fPacketGood;
+ Lba fLba;
} fPacket;
Void (*fInput)(DrivePacket* packetPtr);
diff --git a/dev/zka/KernelKit/Heap.hxx b/dev/zka/KernelKit/Heap.hxx
index 9ef3ff85..554ba954 100644
--- a/dev/zka/KernelKit/Heap.hxx
+++ b/dev/zka/KernelKit/Heap.hxx
@@ -51,9 +51,7 @@ namespace Kernel
template <typename T, typename... Args>
inline T* mm_new_class(Args&&... args)
{
- T* cls = (T*)mm_new_heap(sizeof(T), No, No);
- *cls = T(move(args)...);
-
+ T* cls = new T(move(args)...);
return cls;
}
@@ -61,9 +59,7 @@ namespace Kernel
template <typename T>
inline Void mm_delete_class(T* cls)
{
- cls->~T();
- mm_delete_heap((VoidPtr)cls);
-
+ delete cls;
cls = nullptr;
}
} // namespace Kernel
diff --git a/dev/zka/KernelKit/UserProcessScheduler.hxx b/dev/zka/KernelKit/UserProcessScheduler.hxx
index bd07a88e..d383251c 100644
--- a/dev/zka/KernelKit/UserProcessScheduler.hxx
+++ b/dev/zka/KernelKit/UserProcessScheduler.hxx
@@ -14,7 +14,7 @@
#define kSchedMinMicroTime (AffinityKind::kStandard)
#define kSchedInvalidPID (-1)
-#define kSchedProcessLimitPerTeam (32U)
+#define kSchedProcessLimitPerTeam (16U)
#define kSchedMaxMemoryLimit gib_cast(128)
#define kSchedMaxStackSz mib_cast(8)
@@ -106,7 +106,7 @@ namespace Kernel
kProcessSubsystemService,
kProcessSubsystemDriver,
kProcessSubsystemInvalid = 255,
- kProcessSubsystemCount = 4,
+ kProcessSubsystemCount = 4,
};
using ProcessSubsystem = ProcessSubsystemEnum;
@@ -264,8 +264,8 @@ namespace Kernel
friend class UserProcessHelper;
public:
- explicit UserProcessScheduler() = default;
- ~UserProcessScheduler() = default;
+ explicit UserProcessScheduler() = default;
+ ~UserProcessScheduler() override = default;
ZKA_COPY_DEFAULT(UserProcessScheduler)
@@ -283,7 +283,6 @@ namespace Kernel
const Bool IsKernel() override;
const Bool HasMP() override;
-
public:
Ref<UserProcess>& CurrentProcess();
SizeT Run() noexcept;
@@ -306,7 +305,7 @@ namespace Kernel
STATIC bool CanBeScheduled(const UserProcess& process);
STATIC PID& TheCurrentPID();
STATIC SizeT StartScheduling();
- STATIC Bool InitializeScheduler();
+ STATIC Bool InitializeScheduler();
};
const UInt32& sched_get_exit_code(void) noexcept;
diff --git a/dev/zka/NewKit/Ref.hxx b/dev/zka/NewKit/Ref.hxx
index 981e18c1..cf672886 100644
--- a/dev/zka/NewKit/Ref.hxx
+++ b/dev/zka/NewKit/Ref.hxx
@@ -70,7 +70,7 @@ namespace Kernel
}
private:
- T* fClass{nullptr};
+ T* fClass{nullptr};
};
template <typename T>
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;
diff --git a/tools/framework.hxx b/tools/framework.hxx
index e82c67d3..416aa8b0 100644
--- a/tools/framework.hxx
+++ b/tools/framework.hxx
@@ -7,7 +7,7 @@
#include <common_zka.hxx>
-#define kFKDLLDirectory "ZKA/DLL/"
+#define kFKDLLDirectory "ZKA/DLL/"
#define kFKManifestDirectory "ZKA/Manifests/"
-#define kFKRootDirectory "ZKA/"
-#define kFKExtension ".framework"
+#define kFKRootDirectory "ZKA/"
+#define kFKExtension ".framework"
diff --git a/tools/src/make_framework.cxx b/tools/src/make_framework.cxx
index a6efb312..2886b142 100644
--- a/tools/src/make_framework.cxx
+++ b/tools/src/make_framework.cxx
@@ -25,7 +25,7 @@ int main(int argc, char* argv[])
auto path = std::string(argv[1]);
if (!path.ends_with(kFKExtension))
- return 1;
+ return 1;
std::filesystem::path path_arg = path;