summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-10-12 19:20:29 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-10-12 19:20:29 +0200
commitc7b637d7b68d9b7e271e70a5a5cc0c4fcf9172de (patch)
tree2d297a7250978efa7a81e101232f62254892f94b
parent3347073aaa031b71e5063192f0806d83e9021c34 (diff)
IMP: Porting stack to AARCH64.
- Bootloader and kernel were made to be ported to mulitple platforms. - Some part of the stack have to be written specifically for the platform though. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
-rw-r--r--dev/zba/BootKit/BootKit.hxx1
-rw-r--r--dev/zba/BootKit/HW/ATA.hxx2
-rw-r--r--dev/zba/BootKit/Support.hxx18
-rw-r--r--dev/zba/amd64-efi.make8
-rw-r--r--dev/zba/arm64-efi.make119
-rw-r--r--dev/zba/src/BootFileReader.cxx (renamed from dev/zba/src/HEL/AMD64/BootFileReader.cxx)0
-rw-r--r--dev/zba/src/BootString.cxx (renamed from dev/zba/src/HEL/AMD64/BootString.cxx)0
-rw-r--r--dev/zba/src/BootSupport.cxx (renamed from dev/zba/src/HEL/AMD64/Support.cxx)6
-rw-r--r--dev/zba/src/BootTextWriter.cxx (renamed from dev/zba/src/HEL/AMD64/BootTextWriter.cxx)0
-rw-r--r--dev/zba/src/HEL/AMD64/BootMain.cxx50
-rw-r--r--dev/zba/src/HEL/AMD64/BootPlatform.cxx3
-rw-r--r--dev/zba/src/HEL/ARM64/BootMain.cxx20
-rw-r--r--dev/zba/src/HEL/ARM64/BootPlatform.cxx40
-rw-r--r--dev/zba/src/New+Delete.cxx (renamed from dev/zba/src/HEL/AMD64/New+Delete.cxx)2
-rw-r--r--dev/zba/src/Thread.cxx10
-rw-r--r--dev/zka/ArchKit/ArchKit.hxx24
-rw-r--r--dev/zka/HALKit/ARM64/HalSchedulerCore.cxx17
-rw-r--r--dev/zka/HALKit/ARM64/HalTimer.cxx2
-rw-r--r--dev/zka/amd64-efi.make6
-rw-r--r--dev/zka/arm64-efi.make2
-rw-r--r--dev/zka/src/BitMapMgr.cxx (renamed from dev/zka/HALKit/AMD64/HalBMPMgr.cxx)0
21 files changed, 243 insertions, 87 deletions
diff --git a/dev/zba/BootKit/BootKit.hxx b/dev/zba/BootKit/BootKit.hxx
index 12e595e2..4dde8f1e 100644
--- a/dev/zba/BootKit/BootKit.hxx
+++ b/dev/zba/BootKit/BootKit.hxx
@@ -17,7 +17,6 @@
/// include NeFS header and Support header as well.
-#include <cstring>
#include <FSKit/NeFS.hxx>
#include <BootKit/Support.hxx>
diff --git a/dev/zba/BootKit/HW/ATA.hxx b/dev/zba/BootKit/HW/ATA.hxx
index 67a8aa97..2d4e6e8b 100644
--- a/dev/zba/BootKit/HW/ATA.hxx
+++ b/dev/zba/BootKit/HW/ATA.hxx
@@ -23,7 +23,7 @@ public:
explicit BootDeviceATA() noexcept;
~BootDeviceATA() = default;
- ZKA_COPY_DEFAULT(BootDeviceATA);
+ ZKA_COPY_DELETE(BootDeviceATA);
enum
{
diff --git a/dev/zba/BootKit/Support.hxx b/dev/zba/BootKit/Support.hxx
index 8b9ab105..47270c39 100644
--- a/dev/zba/BootKit/Support.hxx
+++ b/dev/zba/BootKit/Support.hxx
@@ -14,6 +14,24 @@
#ifdef __NEWOSLDR__
+/// @brief memset definition in C++.
+/// @param dst destination pointer.
+/// @param byte value to fill in.
+/// @param len length of of src.
+EXTERN_C void* memset(void* dst, int byte, long long unsigned int len);
+
+/// @brief memcpy definition in C++.
+/// @param dst destination pointer.
+/// @param src source pointer.
+/// @param len length of of src.
+EXTERN_C void* memcpy(void* dst, const void* src, long long unsigned int len);
+
+/// @brief strlen definition in C++.
+EXTERN_C size_t strlen(const char* whatToCheck);
+
+/// @brief strcmp definition in C++.
+EXTERN_C int strcmp(const char* whatToCheck, const char* whatToCheckRight);
+
#define SetMem(dst, c, sz) memset(dst, c, sz)
#define MoveMem(dst, src, sz) memcpy(dst, src, sz)
#define CopyMem(dst, src, sz) memcpy(dst, src, sz)
diff --git a/dev/zba/amd64-efi.make b/dev/zba/amd64-efi.make
index c00a0699..00427303 100644
--- a/dev/zba/amd64-efi.make
+++ b/dev/zba/amd64-efi.make
@@ -3,10 +3,10 @@
# This is the bootloader makefile.
##################################################
-CC_GNU=x86_64-w64-mingw32-g++.exe
-LD_GNU=x86_64-w64-mingw32-ld.exe
+CC_GNU=x86_64-w64-mingw32-g++
+LD_GNU=x86_64-w64-mingw32-ld
-WINDRES=x86_64-w64-mingw32-windres.exe
+WINDRES=x86_64-w64-mingw32-windres
ADD_FILE=touch
COPY=cp
@@ -48,7 +48,7 @@ REM_FLAG=-f
FLAG_ASM=-f win64
FLAG_GNU=-fshort-wchar -D__EFI_x86_64__ -mno-red-zone -D__NEWOSKRNL__ -D__NEWOSLDR__ \
- -DEFI_FUNCTION_WRAPPER -I./ -I../Vendor -I../zka -I../ -c -nostdlib -fno-rtti -fno-exceptions \
+ -DEFI_FUNCTION_WRAPPER -I./ -I../zka -I../ -c -nostdlib -fno-rtti -fno-exceptions \
-std=c++20 -D__HAVE_ZKA_APIS__ -D__ZKA_AMD64__ -D__ZKA__
BOOT_LOADER=newosldr.exe
diff --git a/dev/zba/arm64-efi.make b/dev/zba/arm64-efi.make
new file mode 100644
index 00000000..e546989d
--- /dev/null
+++ b/dev/zba/arm64-efi.make
@@ -0,0 +1,119 @@
+##################################################
+# (C) ZKA Technologies, all rights reserved.
+# This is the bootloader makefile.
+##################################################
+
+CC_GNU = clang++
+LD_GNU = lld-link
+
+ADD_FILE=touch
+COPY=cp
+HTTP_GET=wget
+
+# Select this for Windows.
+ifneq ($(findstring CYGWIN_NT-10.0,$(shell uname)), )
+EMU=qemu-system-aarch64w.exe
+else
+# this for NT distributions
+EMU=qemu-system-aarch64
+endif
+
+ifeq ($(NEWS_MODEL), )
+ZKA_MODEL=-DkMachineModel="\"ZKA SSD\""
+endif
+
+BIOS=OVMF.fd
+IMG=epm-master-1.img
+IMG_2=epm-slave.img
+IMG_3=epm-master-2.img
+
+EMU_FLAGS=-net none -m 8G -cpu max -M virt-9.1 -vga std \
+ -bios $(BIOS) \
+ -drive id=disk,file=$(IMG),format=raw,if=none \
+ -drive \
+ file=fat:rw:src/Root/,index=1,format=raw \
+ -d int -no-shutdown -no-reboot
+
+LD_FLAGS=-subsystem:efi_application -entry:Main /nodefaultlib
+
+STANDALONE_MACRO=-D__STANDALONE__
+OBJ=*.o
+
+REM=rm
+REM_FLAG=-f
+
+FLAG_ASM=-f win64
+FLAG_GNU=-fshort-wchar -c -ffreestanding -MMD -mno-red-zone -D__ZKA_ARM64__ -fno-rtti -fno-exceptions -I./ \
+ -target aarch64-unknown-windows \
+ -std=c++20 -D__FSKIT_USE_NEFS__ -D__NEWOSKRNL__ -D__NEWOSLDR__ -D__HAVE_ZKA_APIS__ -D__ZKA__ -I../ -I../zka
+
+BOOT_LOADER=newosldr.exe
+KERNEL=minoskrnl.exe
+DDK=ddk.dll
+SCI=zka-sci-cxx.dll
+CRT=zka-crt-cxx.dll
+SYS_CHK=syschk.sys
+STARTUP=startup.sys
+
+.PHONY: invalid-recipe
+invalid-recipe:
+ @echo "invalid-recipe: Use make compile-<arch> instead."
+
+.PHONY: all
+all: compile-amd64
+ mkdir -p src/Root/EFI/BOOT
+ $(LD_GNU) $(OBJ) $(LD_FLAGS) /out:src/$(BOOT_LOADER)
+ $(COPY) src/$(BOOT_LOADER) src/Root/EFI/BOOT/BOOTAA64.EFI
+ $(COPY) src/$(BOOT_LOADER) src/Root/EFI/BOOT/NEWOSLDR.EFI
+ $(COPY) ../zka/$(KERNEL) src/Root/$(KERNEL)
+ $(COPY) ../sci/$(SCI) src/Root/$(SCI)
+ $(COPY) ../ddk/$(DDK) src/Root/$(DDK)
+ $(COPY) ./modules/SysChk/$(SYS_CHK) src/Root/$(SYS_CHK)
+ $(COPY) ./modules/SysChk/$(SYS_CHK) src/Root/zka/$(STARTUP)
+ $(COPY) ../crt/$(CRT) src/Root/$(CRT)
+ $(COPY) src/$(BOOT_LOADER) src/Root/$(BOOT_LOADER)
+
+ifneq ($(DEBUG_SUPPORT), )
+DEBUG = -D__DEBUG__
+endif
+
+.PHONY: compile-amd64
+compile-amd64:
+ $(RESCMD)
+ $(CC_GNU) $(ZKA_MODEL) $(STANDALONE_MACRO) $(FLAG_GNU) $(DEBUG) \
+ $(wildcard src/HEL/ARM64/*.cxx) \
+ $(wildcard src/HEL/ARM64/*.S) \
+ $(wildcard src/*.cxx)
+
+.PHONY: run-efi-amd64
+run-efi-amd64:
+ $(EMU) $(EMU_FLAGS)
+
+# img_2 is the rescue disk. img is the bootable disk, as provided by the Zeta.
+.PHONY: epm-img
+epm-img:
+ qemu-img create -f raw $(IMG) 10G
+ qemu-img create -f raw $(IMG_2) 4G
+ qemu-img create -f raw $(IMG_3) 4G
+
+.PHONY: download-edk
+download-edk:
+ $(HTTP_GET) https://retrage.github.io/edk2-nightly/bin/DEBUGAARCH64_QEMU_EFI.fd -O OVMF.fd
+
+BINS=*.bin
+EXECUTABLES=newosldr.exe minoskrnl.exe OVMF.fd
+
+TARGETS=$(REM_FLAG) $(OBJ) $(BIN) $(IMG) $(IMG_2) $(EXECUTABLES)
+
+.PHONY: clean
+clean:
+ $(REM) $(TARGETS)
+
+.PHONY: help
+help:
+ @echo "=== HELP ==="
+ @echo "epm-img: Format a disk using the Explicit Partition Map."
+ @echo "gpt-img: Format a disk using the Explicit Partition Map."
+ @echo "clean: clean bootloader."
+ @echo "bootloader-amd64: Build bootloader. (PC AMD64)"
+ @echo "run-efi-amd64: Run bootloader. (PC AMD64)"
diff --git a/dev/zba/src/HEL/AMD64/BootFileReader.cxx b/dev/zba/src/BootFileReader.cxx
index e81ba3fb..e81ba3fb 100644
--- a/dev/zba/src/HEL/AMD64/BootFileReader.cxx
+++ b/dev/zba/src/BootFileReader.cxx
diff --git a/dev/zba/src/HEL/AMD64/BootString.cxx b/dev/zba/src/BootString.cxx
index 1c109b80..1c109b80 100644
--- a/dev/zba/src/HEL/AMD64/BootString.cxx
+++ b/dev/zba/src/BootString.cxx
diff --git a/dev/zba/src/HEL/AMD64/Support.cxx b/dev/zba/src/BootSupport.cxx
index aa93318b..bab53c2c 100644
--- a/dev/zba/src/HEL/AMD64/Support.cxx
+++ b/dev/zba/src/BootSupport.cxx
@@ -74,9 +74,7 @@ EXTERN_C int strcmp(const char* whatToCheck, const char* whatToCheckRight)
return len;
}
-/// @brief somthing specific to the Microsoft's ABI, When the stack grows too big.
-EXTERN_C void ___chkstk_ms(void)
-{
-}
+/// @brief something specific to the Microsoft's ABI, When the stack grows too big.
+EXTERN_C void ___chkstk_ms(void) {}
#endif
diff --git a/dev/zba/src/HEL/AMD64/BootTextWriter.cxx b/dev/zba/src/BootTextWriter.cxx
index b0679715..b0679715 100644
--- a/dev/zba/src/HEL/AMD64/BootTextWriter.cxx
+++ b/dev/zba/src/BootTextWriter.cxx
diff --git a/dev/zba/src/HEL/AMD64/BootMain.cxx b/dev/zba/src/HEL/AMD64/BootMain.cxx
index 8f8c45d1..3c5e80a3 100644
--- a/dev/zba/src/HEL/AMD64/BootMain.cxx
+++ b/dev/zba/src/HEL/AMD64/BootMain.cxx
@@ -5,11 +5,9 @@
------------------------------------------- */
#include <BootKit/BootKit.hxx>
-#include <BootKit/Rsrc/NewBoot.rsrc>
#include <modules/FB/FB.hxx>
#include <modules/FB/Text.hxx>
#include <FirmwareKit/EFI.hxx>
-#include <FirmwareKit/EFI/API.hxx>
#include <FirmwareKit/Handover.hxx>
#include <KernelKit/MSDOS.hxx>
#include <KernelKit/PE.hxx>
@@ -17,7 +15,6 @@
#include <NewKit/Macros.hxx>
#include <NewKit/Ref.hxx>
#include <BootKit/Thread.hxx>
-#include <cstring>
// make the compiler shut up.
#ifndef kMachineModel
@@ -71,14 +68,6 @@ STATIC Void InitVideoFB() noexcept
}
}
-/// @brief check the BootDevice if suitable.
-STATIC Bool CheckBootDevice(BootDeviceATA& ataDev)
-{
- if (ataDev.Leak().mErr)
- return false;
- return true;
-}
-
EXTERN_C VoidPtr boot_read_cr3();
EXTERN_C Void boot_write_cr3(VoidPtr new_cr3);
@@ -88,21 +77,23 @@ 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 Int Main(EfiHandlePtr ImageHandle,
+EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle,
EfiSystemTable* SystemTable)
{
InitEFI(SystemTable); ///! Init the EFI library.
- InitVideoFB(); ///! Init the GOP.
-
- UInt32 MapKey = 0;
- UInt32 SizePtr = sizeof(EfiMemoryDescriptor);
- EfiMemoryDescriptor* Descriptor = nullptr;
- UInt32 SzDesc = sizeof(EfiMemoryDescriptor);
- UInt32 RevDesc = 0;
HEL::HANDOVER_INFO_HEADER* handover_hdr =
new HEL::HANDOVER_INFO_HEADER();
+ UInt32 map_key = 0;
+ UInt32 size_struct_ptr = sizeof(EfiMemoryDescriptor);
+ EfiMemoryDescriptor* struct_ptr = nullptr;
+ UInt32 sz_desc = sizeof(EfiMemoryDescriptor);
+ UInt32 rev_desc = 0;
+
+#ifdef __ZKA_USE_FB__
+ InitVideoFB(); ///! Init the GOP.
+
for (SizeT indexVT = 0; indexVT < SystemTable->NumberOfTableEntries;
++indexVT)
{
@@ -130,6 +121,7 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
handover_hdr->f_GOP.f_PixelPerLine = kGop->Mode->Info->PixelsPerScanLine;
handover_hdr->f_GOP.f_PixelFormat = kGop->Mode->Info->PixelFormat;
handover_hdr->f_GOP.f_Size = kGop->Mode->FrameBufferSize;
+#endif // __ZKA_USE_FB__
// ------------------------------------------- //
// Grab MP services, extended to runtime. //
@@ -144,17 +136,21 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
kHandoverHeader = handover_hdr;
+#ifdef __ZKA_USE_FB__
CGInit();
CGDrawInRegion(CGColor(0xFF, 0x3A, 0x3A), handover_hdr->f_GOP.f_Height, handover_hdr->f_GOP.f_Width, 0, 0);
CGFini();
+#endif // __ZKA_USE_FB__
UInt32 cnt_enabled = 0;
UInt32 cnt_disabled = 0;
mp->GetNumberOfProcessors(mp, &cnt_disabled, &cnt_enabled);
+#ifdef __ZKA_USE_FB__
CGDrawString("NEWOSLDR (C) ZKA TECHNOLOGIES.", 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__
handover_hdr->f_HardwareTables.f_MultiProcessingEnabled = cnt_enabled > 1;
// Fill handover header now.
@@ -180,10 +176,10 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
rt_reset_hardware();
}
- BS->GetMemoryMap(&SizePtr, Descriptor, &MapKey, &SzDesc, &RevDesc);
+ BS->GetMemoryMap(&size_struct_ptr, struct_ptr, &map_key, &sz_desc, &rev_desc);
- Descriptor = new EfiMemoryDescriptor[SzDesc];
- BS->GetMemoryMap(&SizePtr, Descriptor, &MapKey, &SzDesc, &RevDesc);
+ struct_ptr = new EfiMemoryDescriptor[sz_desc];
+ BS->GetMemoryMap(&size_struct_ptr, struct_ptr, &map_key, &sz_desc, &rev_desc);
auto cDefaultMemoryMap = 0; // Grab any usable entries.
@@ -193,7 +189,7 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
SizeT lookIndex = 0UL;
- for (; Descriptor[lookIndex].Kind != EfiMemoryType::EfiConventionalMemory; ++lookIndex)
+ for (; struct_ptr[lookIndex].Kind != EfiMemoryType::EfiConventionalMemory; ++lookIndex)
{
ZKA_UNUSED(0);
}
@@ -274,7 +270,9 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
}
else
{
+#ifdef __ZKA_USE_FB__
CGDrawString("NEWOSLDR: PLEASE RECOVER YOUR MINKRNL IMAGE.", 30, 10, RGB(0xFF, 0xFF, 0xFF));
+#endif // __ZKA_USE_FB__
}
Boot::BFileReader chimeWav(L"zka\\startup.wav", ImageHandle);
@@ -300,13 +298,17 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
}
else
{
+#ifdef __ZKA_USE_FB__
CGDrawString("NEWOSLDR: ONE OR MORE SYSTEM COMPONENTS ARE MISSING, PLEASE REFORMAT THE OS.", 30, 10, RGB(0xFF, 0xFF, 0xFF));
+#endif // __ZKA_USE_FB__
}
- EFI::ExitBootServices(MapKey, ImageHandle);
+ EFI::ExitBootServices(map_key, ImageHandle);
+#ifdef __ZKA_USE_FB__
CGDrawInRegion(CGColor(0xFF, 0x3A, 0x3A), handover_hdr->f_GOP.f_Height, handover_hdr->f_GOP.f_Width, 0, 0);
CGFini();
+#endif // __ZKA_USE_FB__
// ---------------------------------------------------- //
// Finally load Kernel, and the cr3 to it.
diff --git a/dev/zba/src/HEL/AMD64/BootPlatform.cxx b/dev/zba/src/HEL/AMD64/BootPlatform.cxx
index 31566a95..ff863a57 100644
--- a/dev/zba/src/HEL/AMD64/BootPlatform.cxx
+++ b/dev/zba/src/HEL/AMD64/BootPlatform.cxx
@@ -1,3 +1,4 @@
+
/* -------------------------------------------
Copyright ZKA Technologies.
@@ -102,4 +103,4 @@ void rt_hlt()
Kernel::HAL::rt_halt();
}
-#endif // 0
+#endif // __STANDALONE__
diff --git a/dev/zba/src/HEL/ARM64/BootMain.cxx b/dev/zba/src/HEL/ARM64/BootMain.cxx
new file mode 100644
index 00000000..ff26b14c
--- /dev/null
+++ b/dev/zba/src/HEL/ARM64/BootMain.cxx
@@ -0,0 +1,20 @@
+/* -------------------------------------------
+
+ Copyright ZKA Technologies.
+
+------------------------------------------- */
+
+#include <FirmwareKit/EFI.hxx>
+
+EXTERN EfiBootServices* BS;
+
+/// @brief Main EFI entrypoint.
+/// @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)
+{
+
+ return 0;
+}
diff --git a/dev/zba/src/HEL/ARM64/BootPlatform.cxx b/dev/zba/src/HEL/ARM64/BootPlatform.cxx
new file mode 100644
index 00000000..fba4b61c
--- /dev/null
+++ b/dev/zba/src/HEL/ARM64/BootPlatform.cxx
@@ -0,0 +1,40 @@
+/* -------------------------------------------
+
+ Copyright ZKA Technologies.
+
+------------------------------------------- */
+
+#include <BootKit/Platform.hxx>
+#include <BootKit/Protocol.hxx>
+#include <BootKit/BootKit.hxx>
+
+#ifdef __STANDALONE__
+
+using namespace Boot;
+
+EXTERN_C void rt_hlt()
+{
+ 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/HEL/AMD64/New+Delete.cxx b/dev/zba/src/New+Delete.cxx
index 4a308f94..7240875a 100644
--- a/dev/zba/src/HEL/AMD64/New+Delete.cxx
+++ b/dev/zba/src/New+Delete.cxx
@@ -9,8 +9,6 @@
#include <BootKit/BootKit.hxx>
#ifdef __STANDALONE__
-#include <cstddef> /* Since we're using GCC for this EFI program. */
-
EXTERN EfiBootServices* BS;
/// @brief Allocates a new object.
diff --git a/dev/zba/src/Thread.cxx b/dev/zba/src/Thread.cxx
index b19894a9..2383d675 100644
--- a/dev/zba/src/Thread.cxx
+++ b/dev/zba/src/Thread.cxx
@@ -15,14 +15,6 @@
#include <CFKit/LoaderUtils.hxx>
#include <modules/FB/Text.hxx>
-EXTERN_C
-{
-#include <string.h>
-
- Void
- rt_jump_to_address(VoidPtr start, VoidPtr handover);
-}
-
// External boot services symbol.
EXTERN EfiBootServices* BS;
@@ -161,8 +153,6 @@ namespace Boot
err_fn(handover);
}
- rt_jump_to_address(fStartAddress, handover);
-
reinterpret_cast<HEL::HandoverProc>(fStartAddress)(handover);
}
diff --git a/dev/zka/ArchKit/ArchKit.hxx b/dev/zka/ArchKit/ArchKit.hxx
index 3c617705..e52eeabf 100644
--- a/dev/zka/ArchKit/ArchKit.hxx
+++ b/dev/zka/ArchKit/ArchKit.hxx
@@ -56,30 +56,6 @@ namespace Kernel
{
return *(volatile UInt32*)((UInt64)base + reg);
}
-
- /// @brief Print a region of memory.
- /// @param start
- /// @param length
- inline Void ke_print_raw_memory(const void* start, Size length)
- {
- const UInt8* ptr = (const UInt8*)start;
-
- for (Size i = 0; i < length; i++)
- {
- if (i % 16 == 0)
- {
- kcout << hex_number((UIntPtr)ptr + i);
- }
- else
- {
- kcout << hex_number(ptr[i]);
- }
-
- kcout << " ";
- }
-
- kcout << "\r";
- }
} // namespace Kernel
#define kKernelMaxSystemCalls (256)
diff --git a/dev/zka/HALKit/ARM64/HalSchedulerCore.cxx b/dev/zka/HALKit/ARM64/HalSchedulerCore.cxx
index 7545b350..630df4fd 100644
--- a/dev/zka/HALKit/ARM64/HalSchedulerCore.cxx
+++ b/dev/zka/HALKit/ARM64/HalSchedulerCore.cxx
@@ -6,19 +6,16 @@
#include <KernelKit/UserProcessScheduler.hxx>
-using namespace Kernel;
-
-Void UserProcess::SetImageStart(UIntPtr& imageStart) noexcept
+namespace Kernel
{
- if (imageStart == 0)
- this->Crash();
+ Void UserProcess::SetImageStart(VoidPtr image_start) noexcept
+ {
+ if (image_start == 0)
+ this->Crash();
- this->StackFrame->BP = imageStart;
- this->StackFrame->SP = this->StackFrame->BP;
-}
+ this->Image = image_start;
+ }
-namespace Kernel
-{
bool hal_check_stack(HAL::StackFramePtr stackPtr)
{
if (!stackPtr)
diff --git a/dev/zka/HALKit/ARM64/HalTimer.cxx b/dev/zka/HALKit/ARM64/HalTimer.cxx
index 4ef87227..fd3bf87b 100644
--- a/dev/zka/HALKit/ARM64/HalTimer.cxx
+++ b/dev/zka/HALKit/ARM64/HalTimer.cxx
@@ -12,5 +12,3 @@
------------------------------------------- */
#include <ArchKit/ArchKit.hxx>
-
-struct TIMER_INFO;
diff --git a/dev/zka/amd64-efi.make b/dev/zka/amd64-efi.make
index 6c69a423..f1a8742b 100644
--- a/dev/zka/amd64-efi.make
+++ b/dev/zka/amd64-efi.make
@@ -3,13 +3,13 @@
# This is the minoskrnl's makefile.
##################################################
-CC = x86_64-w64-mingw32-g++.exe
-LD = x86_64-w64-mingw32-ld.exe
+CC = x86_64-w64-mingw32-g++
+LD = x86_64-w64-mingw32-ld
CCFLAGS = -fshort-wchar -c -D__ZKA_AMD64__ -mno-red-zone -fno-rtti -fno-exceptions \
-std=c++20 -D__ZKA_SUPPORT_NX__ -I../Vendor -D__FSKIT_USE_NEFS__ \
-D__NEWOSKRNL__ -D__HAVE_ZKA_APIS__ -D__FREESTANDING__ -D__ZKA__ -I./ -I../ -I../zba
-ASM = nasm.exe
+ASM = nasm
DISK_DRV =
diff --git a/dev/zka/arm64-efi.make b/dev/zka/arm64-efi.make
index 51753026..51ea8638 100644
--- a/dev/zka/arm64-efi.make
+++ b/dev/zka/arm64-efi.make
@@ -7,7 +7,7 @@ CC = clang++
LD = lld-link
CCFLAGS = -fshort-wchar -c -ffreestanding -MMD -mno-red-zone -D__ZKA_ARM64__ -fno-rtti -fno-exceptions -I./ \
-target aarch64-unknown-windows \
- -std=c++20 -D__FSKIT_USE_NEFS__ -D__ZETA_MACHINE__ -D__NEWOSKRNL__ -D__HAVE_ZKA_APIS__ -D__ZKA__ -I../
+ -std=c++20 -D__FSKIT_USE_NEFS__ -D__NEWOSKRNL__ -D__HAVE_ZKA_APIS__ -D__ZKA__ -I../
ASM = clang++
diff --git a/dev/zka/HALKit/AMD64/HalBMPMgr.cxx b/dev/zka/src/BitMapMgr.cxx
index e577bd7e..e577bd7e 100644
--- a/dev/zka/HALKit/AMD64/HalBMPMgr.cxx
+++ b/dev/zka/src/BitMapMgr.cxx