diff options
Diffstat (limited to 'dev')
| -rw-r--r-- | dev/ddk/ddk.json | 2 | ||||
| -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.hxx | 3 | ||||
| -rw-r--r-- | dev/hpfs/src/hpfs_main.cxx | 6 | ||||
| -rw-r--r-- | dev/zba/src/HEL/AMD64/BootMain.cxx | 4 | ||||
| -rw-r--r-- | dev/zba/src/Root/zka/startup.wav (renamed from dev/zba/src/Root/ZKA/startup.wav) | bin | 1045048 -> 1045048 bytes | |||
| -rw-r--r-- | dev/zba/src/Root/zka/urbanist.ttf (renamed from dev/zba/src/Root/ZKA/urbanist.ttf) | bin | 42752 -> 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.cxx | 75 | ||||
| -rw-r--r-- | dev/zka/KernelKit/Heap.hxx | 2 | ||||
| -rw-r--r-- | dev/zwm/src/zwm_main.cxx | 5 |
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 Binary files differindex 524921f5..524921f5 100644 --- a/dev/zba/src/Root/ZKA/startup.wav +++ b/dev/zba/src/Root/zka/startup.wav diff --git a/dev/zba/src/Root/ZKA/urbanist.ttf b/dev/zba/src/Root/zka/urbanist.ttf Binary files differindex e9a6dbb0..e9a6dbb0 100644 --- a/dev/zba/src/Root/ZKA/urbanist.ttf +++ b/dev/zba/src/Root/zka/urbanist.ttf 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; |
