diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-08-09 08:56:53 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-09 08:56:53 +0100 |
| commit | 408be791647c015c99963cc1b6d710f58d729dec (patch) | |
| tree | 35efb24716c331ee6bbe38e6fb0c8ab90079a373 | |
| parent | 9ac7b512ace3f8a3f5613dbf940484a9fa3c82c2 (diff) | |
refactor! rename `tooling` to `tools`
feat: BenchKit improvements and libMsg authorship refactors.
| -rw-r--r-- | .gitignore | 4 | ||||
| -rw-r--r-- | CODEOWNERS | 2 | ||||
| -rw-r--r-- | README.md | 6 | ||||
| -rw-r--r-- | compile_flags.txt | 2 | ||||
| -rwxr-xr-x | debug_ahci_x64.sh | 2 | ||||
| -rwxr-xr-x | debug_ata_x64.sh | 2 | ||||
| -rw-r--r-- | dev/libMsg/MsgKit/Server.h | 4 | ||||
| -rw-r--r-- | dev/misc/BenchKit/Chrono.h | 5 | ||||
| -rw-r--r-- | dev/misc/BenchKit/X64Chrono.h | 16 | ||||
| -rwxr-xr-x | release_ahci_x64.sh | 2 | ||||
| -rwxr-xr-x | release_ata_x64.sh | 2 | ||||
| -rw-r--r-- | tools/dist/.keep (renamed from tooling/dist/.keep) | 0 | ||||
| -rw-r--r-- | tools/fsck.hefs.cc (renamed from tooling/fsck.hefs.cc) | 4 | ||||
| -rw-r--r-- | tools/fsck.hefs.json (renamed from tooling/fsck.hefs.json) | 0 | ||||
| -rw-r--r-- | tools/libmkfs/hefs.h (renamed from tooling/libmkfs/hefs.h) | 0 | ||||
| -rw-r--r-- | tools/libmkfs/mkfs.h (renamed from tooling/libmkfs/mkfs.h) | 2 | ||||
| -rw-r--r--[-rwxr-xr-x] | tools/mk_app.py (renamed from tooling/mk_app.py) | 0 | ||||
| -rw-r--r--[-rwxr-xr-x] | tools/mk_fwrk.py (renamed from tooling/mk_fwrk.py) | 0 | ||||
| -rw-r--r--[-rwxr-xr-x] | tools/mk_htman.py (renamed from tooling/mk_htman.py) | 0 | ||||
| -rw-r--r--[-rwxr-xr-x] | tools/mk_img.py (renamed from tooling/mk_img.py) | 0 | ||||
| -rw-r--r-- | tools/mkfs.hefs.cc (renamed from tooling/mkfs.hefs.cc) | 4 | ||||
| -rw-r--r-- | tools/mkfs.hefs.json (renamed from tooling/mkfs.hefs.json) | 0 | ||||
| -rw-r--r-- | tools/rang.h (renamed from tooling/rang.h) | 0 |
23 files changed, 33 insertions, 24 deletions
@@ -25,8 +25,8 @@ ne_bootz neoskrnl/neoskrnl.xcodeproj/project.xcworkspace/xcshareddata/ -tooling/dist/mkfs.* -tooling/dist/fsck.* +tools/dist/mkfs.* +tools/dist/fsck.* html/ latex/ @@ -4,4 +4,4 @@ /dev/ddk/ @amlel-el-mahrouss
/dev/libMsg/ @0xf00sec
/dev/libSystem/ @0xf00sec
-# some other parts (tooling, frameworks) need ownership too.
\ No newline at end of file +# some other parts (tools, frameworks) need ownership too.
\ No newline at end of file @@ -18,7 +18,7 @@ ## Overview -**NeKernel** is a modern, multi-platform microkernel designed for security, modularity, and performance. It features a custom VFS, advanced memory management, a flexible DDK (Driver Development Kit), and robust userland tooling. NeKernel is built for research, education, and next-generation OS development. +**NeKernel** is a modern, multi-platform microkernel designed for security, modularity, and performance. It features a custom VFS, advanced memory management, a flexible DDK (Driver Development Kit), and robust userland tools. NeKernel is built for research, education, and next-generation OS development. --- @@ -36,9 +36,9 @@ - **System Call Interface**: low-level syscall ABI, with a stable high-level SDK for user applications. System calls are routed through a syscall manager and abstracted by `libSystem`. -- **Security and Robustness**: kernel and tooling (bounds checks, safe memory copy/set, error codes). Kernel panics and error reporting for critical failures. No dynamic code loading in kernel space. +- **Security and Robustness**: kernel and tools (bounds checks, safe memory copy/set, error codes). Kernel panics and error reporting for critical failures. No dynamic code loading in kernel space. -- **Documentation and Specs**: Full LaTeX specifications for HeFS and NeFS, with on-disk structure diagrams and API documentation. Markdown docs for tooling and usage. +- **Documentation and Specs**: Full LaTeX specifications for HeFS and NeFS, with on-disk structure diagrams and API documentation. Markdown docs for tools and usage. - **Cross-Platform Boot Support**: Bootloader and platform code for AMD64 and ARM64, with handover and hardware abstraction layers. diff --git a/compile_flags.txt b/compile_flags.txt index fbfd1d06..828dc123 100644 --- a/compile_flags.txt +++ b/compile_flags.txt @@ -15,7 +15,7 @@ -Ipublic/tools/open -Ipublic/frameworks -Idev/boot/BootKit --Itooling/ +-Itools/ -I./ -std=c++20 -D__NE_AMD64__ diff --git a/debug_ahci_x64.sh b/debug_ahci_x64.sh index 66121bb7..97ff57ee 100755 --- a/debug_ahci_x64.sh +++ b/debug_ahci_x64.sh @@ -11,6 +11,6 @@ cd ../boot make -f amd64-desktop.make all make -f amd64-desktop.make disk cd ../../ -./tooling/mk_img.py ./dev/boot/src/nekernel-esp.img ./dev/boot/src/root +./tools/mk_img.py ./dev/boot/src/nekernel-esp.img ./dev/boot/src/root cd dev/boot make -f amd64-desktop.make run-efi-amd64-ahci
\ No newline at end of file diff --git a/debug_ata_x64.sh b/debug_ata_x64.sh index 6f40887b..b021c3ed 100755 --- a/debug_ata_x64.sh +++ b/debug_ata_x64.sh @@ -11,6 +11,6 @@ cd ../boot make -f amd64-desktop.make all make -f amd64-desktop.make disk cd ../../ -./tooling/mk_img.py ./dev/boot/src/nekernel-esp.img ./dev/boot/src/root +./tools/mk_img.py ./dev/boot/src/nekernel-esp.img ./dev/boot/src/root cd dev/boot make -f amd64-desktop.make run-efi-amd64-ata-pio diff --git a/dev/libMsg/MsgKit/Server.h b/dev/libMsg/MsgKit/Server.h index aee0dbdd..4fa73ccc 100644 --- a/dev/libMsg/MsgKit/Server.h +++ b/dev/libMsg/MsgKit/Server.h @@ -12,6 +12,9 @@ #include <libSystem/SystemKit/System.h> #endif +/// @author Amlal El Mahrouss +/// @brief libMsg LISP system. + struct LIBMSG_EXPR; /// @brief an expression chain of LibMSG. @@ -34,5 +37,4 @@ typedef Void (*libmsg_func_t)(LIBMSG_EXPR* self, VoidPtr arg, SizeT arg_size); IMPORT_C Void libmsg_init_library(libmsg_func_t* funcs, SizeT cnt); IMPORT_C UInt32 libmsg_close_library(Void); - IMPORT_C UInt32 libmsg_eval_expr(struct LIBMSG_EXPR* head); diff --git a/dev/misc/BenchKit/Chrono.h b/dev/misc/BenchKit/Chrono.h index 394f16fd..c6801de5 100644 --- a/dev/misc/BenchKit/Chrono.h +++ b/dev/misc/BenchKit/Chrono.h @@ -10,6 +10,11 @@ Copyright (C) 2025, Amlal El Mahrouss, all rights reserved. #include <CompilerKit/CompilerKit.h> #include <NeKit/Defines.h> +/// @author Amlal El Mahrouss +/// @brief BenchKit Chrono contract. + +#define BENCHKIT_INTERFACE : public ::Kernel::ChronoInterface + namespace Kernel { class ChronoInterface; diff --git a/dev/misc/BenchKit/X64Chrono.h b/dev/misc/BenchKit/X64Chrono.h index 706ce883..358c74d4 100644 --- a/dev/misc/BenchKit/X64Chrono.h +++ b/dev/misc/BenchKit/X64Chrono.h @@ -14,11 +14,13 @@ namespace Kernel { class X64Chrono; struct X64ChronoTraits; +/// @brief BenchKit chrono logic for x64. struct X64ChronoTraits { private: STATIC UInt64 TickImpl_(void) { UInt64 a = 0, d = 0; - __asm__ volatile("rdtsc" : "=a"(a), "=d"(d)); + + asm volatile("rdtsc" : "=a"(a), "=d"(d)); return (d << 32) | a; } @@ -26,7 +28,7 @@ struct X64ChronoTraits { }; /// @brief X86_64 hardware chrono implementation using the `rdtsc` instruction. -class X64Chrono : public ChronoInterface { +class X64Chrono BENCHKIT_INTERFACE { public: X64Chrono() = default; ~X64Chrono() override = default; @@ -34,11 +36,11 @@ class X64Chrono : public ChronoInterface { NE_COPY_DEFAULT(X64Chrono); public: - void Start() override { fStart = X64ChronoTraits::TickImpl_(); } + Void Start() override { fStart = X64ChronoTraits::TickImpl_(); } - void Stop() override { fStop = X64ChronoTraits::TickImpl_(); } + Void Stop() override { fStop = X64ChronoTraits::TickImpl_(); } - void Reset() override { + Void Reset() override { fStart = 0; fStop = 0; } @@ -46,8 +48,8 @@ class X64Chrono : public ChronoInterface { UInt64 GetElapsedTime() const override { return fStop - fStart; } private: - UInt64 fStart = 0; - UInt64 fStop = 0; + UInt64 fStart{}; + UInt64 fStop{}; }; } // namespace Kernel diff --git a/release_ahci_x64.sh b/release_ahci_x64.sh index d585e74e..f081c774 100755 --- a/release_ahci_x64.sh +++ b/release_ahci_x64.sh @@ -8,6 +8,6 @@ cd ../boot make -f amd64-desktop.make all make -f amd64-desktop.make disk cd ../../ -./tooling/mk_img.py ./dev/boot/src/nekernel-esp.img ./dev/boot/src/root +./tools/mk_img.py ./dev/boot/src/nekernel-esp.img ./dev/boot/src/root cd dev/boot make -f amd64-desktop.make run-efi-amd64-ahci
\ No newline at end of file diff --git a/release_ata_x64.sh b/release_ata_x64.sh index c0a0e01e..d69e3d3f 100755 --- a/release_ata_x64.sh +++ b/release_ata_x64.sh @@ -8,6 +8,6 @@ cd ../boot make -f amd64-desktop.make all make -f amd64-desktop.make disk cd ../../ -./tooling/mk_img.py ./dev/boot/src/nekernel-esp.img ./dev/boot/src/root +./tools/mk_img.py ./dev/boot/src/nekernel-esp.img ./dev/boot/src/root cd dev/boot make -f amd64-desktop.make run-efi-amd64-ata-pio
\ No newline at end of file diff --git a/tooling/dist/.keep b/tools/dist/.keep index e69de29b..e69de29b 100644 --- a/tooling/dist/.keep +++ b/tools/dist/.keep diff --git a/tooling/fsck.hefs.cc b/tools/fsck.hefs.cc index 9d0b3e03..e3837b8a 100644 --- a/tooling/fsck.hefs.cc +++ b/tools/fsck.hefs.cc @@ -4,8 +4,8 @@ ------------------------------------------- */ -#include <tooling/libmkfs/hefs.h> -#include <tooling/libmkfs/mkfs.h> +#include <tools/libmkfs/hefs.h> +#include <tools/libmkfs/mkfs.h> #include <cstdlib> #include <fstream> diff --git a/tooling/fsck.hefs.json b/tools/fsck.hefs.json index d6ff4b0f..d6ff4b0f 100644 --- a/tooling/fsck.hefs.json +++ b/tools/fsck.hefs.json diff --git a/tooling/libmkfs/hefs.h b/tools/libmkfs/hefs.h index 52bb3086..52bb3086 100644 --- a/tooling/libmkfs/hefs.h +++ b/tools/libmkfs/hefs.h diff --git a/tooling/libmkfs/mkfs.h b/tools/libmkfs/mkfs.h index 31f7a26a..e729c29b 100644 --- a/tooling/libmkfs/mkfs.h +++ b/tools/libmkfs/mkfs.h @@ -6,7 +6,7 @@ #pragma once -#include <tooling/rang.h> +#include <tools/rang.h> #include <sstream> #include <iostream> #include <string> diff --git a/tooling/mk_app.py b/tools/mk_app.py index 7f7cef17..7f7cef17 100755..100644 --- a/tooling/mk_app.py +++ b/tools/mk_app.py diff --git a/tooling/mk_fwrk.py b/tools/mk_fwrk.py index b2ef99ff..b2ef99ff 100755..100644 --- a/tooling/mk_fwrk.py +++ b/tools/mk_fwrk.py diff --git a/tooling/mk_htman.py b/tools/mk_htman.py index e865f7c5..e865f7c5 100755..100644 --- a/tooling/mk_htman.py +++ b/tools/mk_htman.py diff --git a/tooling/mk_img.py b/tools/mk_img.py index f0fa0609..f0fa0609 100755..100644 --- a/tooling/mk_img.py +++ b/tools/mk_img.py diff --git a/tooling/mkfs.hefs.cc b/tools/mkfs.hefs.cc index b90b0fc5..bf790598 100644 --- a/tooling/mkfs.hefs.cc +++ b/tools/mkfs.hefs.cc @@ -4,8 +4,8 @@ ------------------------------------------- */ -#include <tooling/libmkfs/hefs.h> -#include <tooling/libmkfs/mkfs.h> +#include <tools/libmkfs/hefs.h> +#include <tools/libmkfs/mkfs.h> #include <algorithm> #include <cstdlib> #include <cstring> diff --git a/tooling/mkfs.hefs.json b/tools/mkfs.hefs.json index d29b7f73..d29b7f73 100644 --- a/tooling/mkfs.hefs.json +++ b/tools/mkfs.hefs.json diff --git a/tooling/rang.h b/tools/rang.h index 5d1c68ef..5d1c68ef 100644 --- a/tooling/rang.h +++ b/tools/rang.h |
