From b2c4d9a8ebebf87be33dcc357af86102d31dac47 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Sat, 15 Nov 2025 06:07:15 +0100 Subject: feat: DDK: compiler improvements and working on fwrk standard and launch design. Signed-off-by: Amlal El Mahrouss --- compile_flags.txt | 2 +- dev/libDDK/DriverKit/dki/contract.h | 2 +- dev/libDDK/DriverKit/macros.h | 8 ++++---- dev/libSystem/src/SystemCalls.cc | 17 ----------------- dev/libSystem/src/Utils.cc | 29 +++++++++++++++++++++++++++++ docs/STANDARD_FWRK.md | 5 ++++- docs/drawio/LAUNCH_DESIGN.drawio | 13 +++++++++++++ 7 files changed, 52 insertions(+), 24 deletions(-) create mode 100644 dev/libSystem/src/Utils.cc diff --git a/compile_flags.txt b/compile_flags.txt index 384cd84e..c83e43d3 100644 --- a/compile_flags.txt +++ b/compile_flags.txt @@ -4,7 +4,7 @@ -Idev/boot -Idev/launch -Idev/misc --Idev/ddk +-Idev/libDDK -Ipublic/tools -Ipublic/tools/mk.app -Ipublic/tools/mk.fwrk diff --git a/dev/libDDK/DriverKit/dki/contract.h b/dev/libDDK/DriverKit/dki/contract.h index 23884e02..f701de56 100644 --- a/dev/libDDK/DriverKit/dki/contract.h +++ b/dev/libDDK/DriverKit/dki/contract.h @@ -10,7 +10,7 @@ #pragma once #include -#include +#include #define DKI_CONTRACT_IMPL : public ::Kernel::DKIContract diff --git a/dev/libDDK/DriverKit/macros.h b/dev/libDDK/DriverKit/macros.h index 9b7b3d50..e5aa4b96 100644 --- a/dev/libDDK/DriverKit/macros.h +++ b/dev/libDDK/DriverKit/macros.h @@ -16,7 +16,7 @@ #define BOOL bool #define YES true #define NO false -#define DDK_EXTERN extern "C" __declspec(dllexport) +#define DDK_EXTERN extern "C" #define nil nullptr #undef NULL #define NULL 0 @@ -25,7 +25,7 @@ #define BOOL char #define YES 1 #define NO 0 -#define DDK_EXTERN extern __declspec(dllexport) +#define DDK_EXTERN extern #define nil ((void*) 0) #undef NULL #define NULL ((void*) 0) @@ -35,9 +35,9 @@ #ifndef __DDK__ #undef DDK_EXTERN #if defined(__cplusplus) -#define DDK_EXTERN extern "C" __declspec(dllimport) +#define DDK_EXTERN extern "C" #else -#define DDK_EXTERN __declspec(dllimport) +#define DDK_EXTERN #endif #endif diff --git a/dev/libSystem/src/SystemCalls.cc b/dev/libSystem/src/SystemCalls.cc index 3db9368d..3d7a7447 100644 --- a/dev/libSystem/src/SystemCalls.cc +++ b/dev/libSystem/src/SystemCalls.cc @@ -11,23 +11,6 @@ using namespace LibSystem; -/// @note this uses the FNV 64-bit variant. -IMPORT_C UInt64 libsys_hash_64(const Char* path) { - if (!path || *path == 0) return 0; - - const UInt64 kFNVSeed = 0xcbf29ce484222325ULL; - const UInt64 kFNVPrime = 0x100000001b3ULL; - - UInt64 hash = kFNVSeed; - - while (*path) { - hash ^= (Char) (*path++); - hash *= kFNVPrime; - } - - return hash; -} - IMPORT_C Char* StrFmt(const Char* fmt, ...) { if (!fmt || *fmt == 0) return const_cast("(null)"); diff --git a/dev/libSystem/src/Utils.cc b/dev/libSystem/src/Utils.cc new file mode 100644 index 00000000..0688cd57 --- /dev/null +++ b/dev/libSystem/src/Utils.cc @@ -0,0 +1,29 @@ +/* ------------------------------------------- + + Copyright (C) 2025, Amlal El Mahrouss, all rights reserved. + +------------------------------------------- */ + +#include +#include +#include +#include + +using namespace LibSystem; + +/// @note This uses the FNV 64-bit variant. +IMPORT_C UInt64 libsys_hash_64(const Char* path) { + if (!path || *path == 0) return 0; + + const UInt64 kFNVSeed = 0xcbf29ce484222325ULL; + const UInt64 kFNVPrime = 0x100000001b3ULL; + + UInt64 hash = kFNVSeed; + + while (*path) { + hash ^= (Char) (*path++); + hash *= kFNVPrime; + } + + return hash; +} diff --git a/docs/STANDARD_FWRK.md b/docs/STANDARD_FWRK.md index 2d71b9e9..c780239a 100644 --- a/docs/STANDARD_FWRK.md +++ b/docs/STANDARD_FWRK.md @@ -2,4 +2,7 @@ STANDARD NEKERNEL FRAMEWORK =========================== BRIEF -===== \ No newline at end of file +===== + +NeKernel uses a framework format to layout code/rsrc/headers altogether. +It is essential in order to locate and avoid dyld errors. \ No newline at end of file diff --git a/docs/drawio/LAUNCH_DESIGN.drawio b/docs/drawio/LAUNCH_DESIGN.drawio index e69de29b..a1cfc8cc 100644 --- a/docs/drawio/LAUNCH_DESIGN.drawio +++ b/docs/drawio/LAUNCH_DESIGN.drawio @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file -- cgit v1.2.3