summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--dev/ddk/ddk.json2
-rw-r--r--dev/ddk/src/KernelAlloc.c (renamed from dev/ddk/KernelAlloc.c)0
-rw-r--r--dev/ddk/src/KernelCall.c (renamed from dev/ddk/KernelCall.c)0
-rw-r--r--dev/ddk/src/KernelCallDispatch.S (renamed from dev/ddk/DispatchKernelCall.S)0
-rw-r--r--dev/ddk/src/KernelCxxRt.cxx (renamed from dev/ddk/KernelCxxRt.cxx)0
-rw-r--r--dev/ddk/src/KernelDev.c (renamed from dev/ddk/KernelDev.c)0
-rw-r--r--dev/ddk/src/KernelPrint.c (renamed from dev/ddk/KernelPrint.c)0
-rw-r--r--dev/ddk/src/KernelString.c (renamed from dev/ddk/KernelString.c)0
-rw-r--r--dev/ddk/src/KernelVersion.c (renamed from dev/ddk/KernelVersion.c)0
-rw-r--r--dev/hpfs/epm/blob.json (renamed from dev/hpfs/EPM/blob.json)0
-rw-r--r--dev/hpfs/epm/ebs.i (renamed from dev/hpfs/EPM/EBS.i)0
-rw-r--r--dev/hpfs/epm/epm.asm (renamed from dev/hpfs/EPM/EPM.asm)0
-rw-r--r--dev/hpfs/hpfs_specs.hxx3
-rw-r--r--dev/hpfs/src/hpfs_main.cxx6
-rw-r--r--dev/zba/src/HEL/AMD64/BootMain.cxx4
-rw-r--r--dev/zba/src/Root/zka/startup.wav (renamed from dev/zba/src/Root/ZKA/startup.wav)bin1045048 -> 1045048 bytes
-rw-r--r--dev/zba/src/Root/zka/urbanist.ttf (renamed from dev/zba/src/Root/ZKA/urbanist.ttf)bin42752 -> 42752 bytes
-rw-r--r--dev/zka/HALKit/AMD64/HalCPU.cxx (renamed from dev/zka/HALKit/AMD64/HalCommAPI.cxx)19
-rw-r--r--dev/zka/HALKit/AMD64/HalPaging.cxx75
-rw-r--r--dev/zka/KernelKit/Heap.hxx2
-rw-r--r--dev/zwm/src/zwm_main.cxx5
21 files changed, 88 insertions, 28 deletions
diff --git a/dev/ddk/ddk.json b/dev/ddk/ddk.json
index b930f99c..32c32bd1 100644
--- a/dev/ddk/ddk.json
+++ b/dev/ddk/ddk.json
@@ -2,7 +2,7 @@
"compiler_path": "x86_64-w64-mingw32-gcc",
"compiler_std": "c++20",
"headers_path": ["../", "./"],
- "sources_path": ["*.c", "*.cxx", "*.S"],
+ "sources_path": ["src/*.c", "src/*.cxx", "src/*.S"],
"output_name": "ddk.dll",
"compiler_flags": [
"-ffreestanding",
diff --git a/dev/ddk/KernelAlloc.c b/dev/ddk/src/KernelAlloc.c
index af99f23b..af99f23b 100644
--- a/dev/ddk/KernelAlloc.c
+++ b/dev/ddk/src/KernelAlloc.c
diff --git a/dev/ddk/KernelCall.c b/dev/ddk/src/KernelCall.c
index ccb401af..ccb401af 100644
--- a/dev/ddk/KernelCall.c
+++ b/dev/ddk/src/KernelCall.c
diff --git a/dev/ddk/DispatchKernelCall.S b/dev/ddk/src/KernelCallDispatch.S
index 3a9a57b5..3a9a57b5 100644
--- a/dev/ddk/DispatchKernelCall.S
+++ b/dev/ddk/src/KernelCallDispatch.S
diff --git a/dev/ddk/KernelCxxRt.cxx b/dev/ddk/src/KernelCxxRt.cxx
index 947e2de7..947e2de7 100644
--- a/dev/ddk/KernelCxxRt.cxx
+++ b/dev/ddk/src/KernelCxxRt.cxx
diff --git a/dev/ddk/KernelDev.c b/dev/ddk/src/KernelDev.c
index 3cf7ed48..3cf7ed48 100644
--- a/dev/ddk/KernelDev.c
+++ b/dev/ddk/src/KernelDev.c
diff --git a/dev/ddk/KernelPrint.c b/dev/ddk/src/KernelPrint.c
index 7f8c8604..7f8c8604 100644
--- a/dev/ddk/KernelPrint.c
+++ b/dev/ddk/src/KernelPrint.c
diff --git a/dev/ddk/KernelString.c b/dev/ddk/src/KernelString.c
index 0030aa02..0030aa02 100644
--- a/dev/ddk/KernelString.c
+++ b/dev/ddk/src/KernelString.c
diff --git a/dev/ddk/KernelVersion.c b/dev/ddk/src/KernelVersion.c
index c40e8ff9..c40e8ff9 100644
--- a/dev/ddk/KernelVersion.c
+++ b/dev/ddk/src/KernelVersion.c
diff --git a/dev/hpfs/EPM/blob.json b/dev/hpfs/epm/blob.json
index 4ce4fc1c..4ce4fc1c 100644
--- a/dev/hpfs/EPM/blob.json
+++ b/dev/hpfs/epm/blob.json
diff --git a/dev/hpfs/EPM/EBS.i b/dev/hpfs/epm/ebs.i
index c137b6f4..c137b6f4 100644
--- a/dev/hpfs/EPM/EBS.i
+++ b/dev/hpfs/epm/ebs.i
diff --git a/dev/hpfs/EPM/EPM.asm b/dev/hpfs/epm/epm.asm
index 2197d2cd..2197d2cd 100644
--- a/dev/hpfs/EPM/EPM.asm
+++ b/dev/hpfs/epm/epm.asm
diff --git a/dev/hpfs/hpfs_specs.hxx b/dev/hpfs/hpfs_specs.hxx
index 4fc24c21..5c82be90 100644
--- a/dev/hpfs/hpfs_specs.hxx
+++ b/dev/hpfs/hpfs_specs.hxx
@@ -9,7 +9,4 @@
#pragma once
-typedef __INT32_TYPE__ HPFS_INT32;
-typedef void HPFS_VOID;
-
#define cHPFSVersion 0x0100
diff --git a/dev/hpfs/src/hpfs_main.cxx b/dev/hpfs/src/hpfs_main.cxx
index eaa64dc5..187fb3ce 100644
--- a/dev/hpfs/src/hpfs_main.cxx
+++ b/dev/hpfs/src/hpfs_main.cxx
@@ -10,11 +10,15 @@
#include <hpfs/hpfs_specs.hxx>
#include <ddk/KernelStd.h>
+static DDK_OBJECT_MANIFEST* cIFSObject = nullptr;
+
/** @brief HPFS IFS main. */
-HPFS_INT32 ModuleMain(HPFS_VOID)
+int32_t ModuleMain(void)
{
auto ifs_handle = KernelGetObject(0, "IFS_OBJECT");
// TODO: Register this IFS with necessary I/O functions...
+ cIFSObject = ifs_handle;
+
return 0;
}
diff --git a/dev/zba/src/HEL/AMD64/BootMain.cxx b/dev/zba/src/HEL/AMD64/BootMain.cxx
index 5557f8dd..11edebdd 100644
--- a/dev/zba/src/HEL/AMD64/BootMain.cxx
+++ b/dev/zba/src/HEL/AMD64/BootMain.cxx
@@ -204,8 +204,8 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
// Update handover file specific table and phyiscal start field.
//-----------------------------------------------------------//
- handover_hdr->f_BitMapStart = nullptr; /* # of pages */
- handover_hdr->f_BitMapSize = kHandoverBitMapSz; /* # of pages */
+ handover_hdr->f_BitMapStart = nullptr; /* Start of bitmap. */
+ handover_hdr->f_BitMapSize = kHandoverBitMapSz; /* Size of bitmap. */
while (BS->AllocatePool(EfiLoaderData, handover_hdr->f_BitMapSize, &handover_hdr->f_BitMapStart) != kEfiOk)
{
diff --git a/dev/zba/src/Root/ZKA/startup.wav b/dev/zba/src/Root/zka/startup.wav
index 524921f5..524921f5 100644
--- a/dev/zba/src/Root/ZKA/startup.wav
+++ b/dev/zba/src/Root/zka/startup.wav
Binary files differ
diff --git a/dev/zba/src/Root/ZKA/urbanist.ttf b/dev/zba/src/Root/zka/urbanist.ttf
index e9a6dbb0..e9a6dbb0 100644
--- a/dev/zba/src/Root/ZKA/urbanist.ttf
+++ b/dev/zba/src/Root/zka/urbanist.ttf
Binary files differ
diff --git a/dev/zka/HALKit/AMD64/HalCommAPI.cxx b/dev/zka/HALKit/AMD64/HalCPU.cxx
index 11c442b4..0af8a921 100644
--- a/dev/zka/HALKit/AMD64/HalCommAPI.cxx
+++ b/dev/zka/HALKit/AMD64/HalCPU.cxx
@@ -2,7 +2,7 @@
Copyright ZKA Technologies.
- File: HalProcessor.cxx
+ File: HalCPU.cxx
Purpose: Platform processor routines.
------------------------------------------- */
@@ -11,27 +11,12 @@
#include <HALKit/AMD64/Processor.hxx>
/**
- * @file HalCommAPI.cxx
+ * @file HalCPU.cxx
* @brief CPU Common API.
*/
-#define PhysShift36(ADDR) ((UInt64)ADDR >> 12)
-
namespace Kernel::HAL
{
- /// @brief Maps or allocates a page from virt_addr.
- /// @param virt_addr a valid virtual address.
- /// @param phys_addr point to physical address.
- /// @param flags the flags to put on the page.
- /// @return Status code of page manip.
- EXTERN_C Int32 mm_map_page(VoidPtr virt_addr, UInt32 flags)
- {
- ZKA_UNUSED(virt_addr);
- ZKA_UNUSED(flags);
-
- return 0;
- }
-
Void Out8(UInt16 port, UInt8 value)
{
asm volatile("outb %%al, %1"
diff --git a/dev/zka/HALKit/AMD64/HalPaging.cxx b/dev/zka/HALKit/AMD64/HalPaging.cxx
new file mode 100644
index 00000000..ac8b1a73
--- /dev/null
+++ b/dev/zka/HALKit/AMD64/HalPaging.cxx
@@ -0,0 +1,75 @@
+/* -------------------------------------------
+
+ Copyright ZKA Technologies.
+
+ File: HalProcessor.cxx
+ Purpose: Platform processor routines.
+
+------------------------------------------- */
+
+#include <HALKit/AMD64/Paging.hxx>
+#include <HALKit/AMD64/Processor.hxx>
+
+namespace Kernel::HAL
+{
+ STATIC Void mm_map_page_status(PTE* pte)
+ {
+ if (!pte)
+ return;
+
+ kcout << (pte->Present ? "Present" : "Not Present") << endl;
+ kcout << (pte->Wr ? "W/R" : "Not W/R") << endl;
+ kcout << (pte->User ? "User" : "Not User") << endl;
+ }
+
+ /// @brief Maps or allocates a page from virt_addr.
+ /// @internal
+ /// @param virt_addr a valid virtual address.
+ /// @param phys_addr point to physical address.
+ /// @param flags the flags to put on the page.
+ /// @return Status code of page manipulation process.
+ EXTERN_C Int32 mm_map_page(VoidPtr virt_addr, UInt32 flags)
+ {
+ return 0;
+ }
+
+ /// @brief Maps or allocates a page from virt_addr.
+ /// @internal
+ /// @param virt_addr a valid virtual address.
+ /// @param phys_addr point to physical address.
+ /// @param flags the flags to put on the page.
+ /// @return Status code of page manipulation process.
+ EXTERN_C Int32 _mm_map_page(VoidPtr virt_addr, UInt32 flags, ZKA_PDE* pde, SizeT pte)
+ {
+ if (!virt_addr || !pde || !pte)
+ return -1;
+
+ if (pde->fEntries[pte]->Present)
+ {
+ rt_cli();
+
+ if (flags & ~eFlagsPresent)
+ pde->fEntries[pte]->Present = false;
+ else if (flags & eFlagsPresent)
+ pde->fEntries[pte]->Present = true;
+
+ if (flags & eFlagsRw)
+ pde->fEntries[pte]->Wr = true;
+ else if (flags & ~eFlagsRw)
+ pde->fEntries[pte]->Wr = false;
+
+ if (flags & eFlagsUser)
+ pde->fEntries[pte]->User = true;
+ else if (flags & ~eFlagsUser)
+ pde->fEntries[pte]->User = false;
+
+ mm_map_page_status(pde->fEntries[pte]);
+
+ rt_sti();
+
+ return 0;
+ }
+
+ return -2;
+ }
+} // namespace Kernel::HAL
diff --git a/dev/zka/KernelKit/Heap.hxx b/dev/zka/KernelKit/Heap.hxx
index cb8da37d..53eec98e 100644
--- a/dev/zka/KernelKit/Heap.hxx
+++ b/dev/zka/KernelKit/Heap.hxx
@@ -53,7 +53,7 @@ namespace Kernel
T* cls = (T*)mm_new_heap(sizeof(T), No, No);
MUST_PASS(cls);
- *cls = T(move(args)...);
+ *cls = T(move(args)...);
return cls;
}
diff --git a/dev/zwm/src/zwm_main.cxx b/dev/zwm/src/zwm_main.cxx
index f5f4024e..7fbd9ccb 100644
--- a/dev/zwm/src/zwm_main.cxx
+++ b/dev/zwm/src/zwm_main.cxx
@@ -2,13 +2,12 @@
Copyright ZKA Technologies.
- FILE: IFSMain.cxx
- PURPOSE: HPFS IFS entrypoint.
+ FILE: main.cxx
+ PURPOSE: ZWM entrypoint.
------------------------------------------- */
#include <ddk/KernelStd.h>
-#include <cstdint>
static uint32_t cGPUIndexHW = 0U;
static struct DDK_OBJECT_MANIFEST* cGPUObject = nullptr;