summaryrefslogtreecommitdiffhomepage
path: root/dev
diff options
context:
space:
mode:
Diffstat (limited to 'dev')
-rw-r--r--dev/boot/amd64-desktop.make2
-rw-r--r--dev/generic_kits/BenchKit/HardwareChrono.h9
-rw-r--r--dev/generic_kits/BenchKit/X64Chrono.h54
-rw-r--r--dev/kernel/HALKit/AMD64/HalKernelMain.cc1
-rw-r--r--dev/kernel/KernelKit/UserMgr.h2
-rw-r--r--dev/libSystem/AsmProc.h (renamed from dev/user/AsmProc.h)2
-rw-r--r--dev/libSystem/Codes.h (renamed from dev/user/SystemCodes.h)4
-rw-r--r--dev/libSystem/Macros.h (renamed from dev/user/Macros.h)2
-rw-r--r--dev/libSystem/SecurityPolicy.h (renamed from dev/user/SecurityPolicy.h)2
-rw-r--r--dev/libSystem/System.h (renamed from dev/user/SystemCalls.h)11
-rw-r--r--dev/libSystem/docs/SPECIFICATION_SYSCALLS.md (renamed from dev/user/docs/SPECIFICATION_SYSCALLS.md)0
-rw-r--r--dev/libSystem/libSystem.json (renamed from dev/user/user.json)6
-rw-r--r--dev/libSystem/obj/.keep (renamed from dev/user/obj/.keep)0
-rw-r--r--dev/libSystem/src/GNUmakefile (renamed from dev/user/src/GNUmakefile)0
-rw-r--r--dev/libSystem/src/System.cc (renamed from dev/user/src/SystemCalls.cc)4
-rw-r--r--dev/libSystem/src/SystemCalls+IO.asm (renamed from dev/user/src/SystemCalls+IO.asm)0
16 files changed, 75 insertions, 24 deletions
diff --git a/dev/boot/amd64-desktop.make b/dev/boot/amd64-desktop.make
index 113c6295..d39c3bcd 100644
--- a/dev/boot/amd64-desktop.make
+++ b/dev/boot/amd64-desktop.make
@@ -92,7 +92,7 @@ all: compile-amd64
$(COPY) ../kernel/$(KERNEL) src/root/$(KERNEL)
$(COPY) ./modules/SysChk/$(SYSCHK) src/root/$(SYSCHK)
$(COPY) ./modules/BootNet/$(BOOTNET) src/root/$(BOOTNET)
- $(COPY) ../user/$(SCIKIT) src/root/$(SCIKIT)
+ $(COPY) ../libSystem/$(SCIKIT) src/root/$(SCIKIT)
$(COPY) src/$(BOOTLOADER) src/root/$(BOOTLOADER)
$(COPY) ../ddk/$(DDK) src/root/$(DDK)
diff --git a/dev/generic_kits/BenchKit/HardwareChrono.h b/dev/generic_kits/BenchKit/HardwareChrono.h
deleted file mode 100644
index f6f6fd8c..00000000
--- a/dev/generic_kits/BenchKit/HardwareChrono.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/* -------------------------------------------
-
-Copyright (C) 2025, Amlal El Mahrouss, all rights reserved.
-
-------------------------------------------- */
-
-#pragma once
-
-#include <BenchKit/Chrono.h>
diff --git a/dev/generic_kits/BenchKit/X64Chrono.h b/dev/generic_kits/BenchKit/X64Chrono.h
new file mode 100644
index 00000000..192d1697
--- /dev/null
+++ b/dev/generic_kits/BenchKit/X64Chrono.h
@@ -0,0 +1,54 @@
+/* -------------------------------------------
+
+Copyright (C) 2025, Amlal El Mahrouss, all rights reserved.
+
+------------------------------------------- */
+
+#pragma once
+
+#include <generic_kits/BenchKit/Chrono.h>
+
+#if defined(__NE_AMD64__)
+
+namespace Kernel {
+class X64Chrono;
+struct X64ChronoTraits;
+
+struct X64ChronoTraits {
+private:
+ STATIC UInt64 TickImpl_(void) {
+ UInt64 a = 0, d = 0;
+ __asm__ volatile("rdtsc" : "=a"(a), "=d"(d));
+ return (d << 32) | a;
+ }
+
+ friend X64Chrono;
+};
+
+/// @brief X86_64 hardware chrono implementation using the `rdtsc` instruction.
+class X64Chrono : public ChronoInterface {
+ public:
+ X64Chrono() = default;
+ ~X64Chrono() override = default;
+
+ NE_COPY_DEFAULT(X64Chrono);
+
+ public:
+ void Start() override { fStart = X64ChronoTraits::TickImpl_(); }
+
+ void Stop() override { fStop = X64ChronoTraits::TickImpl_(); }
+
+ void Reset() override {
+ fStart = 0;
+ fStop = 0;
+ }
+
+ UInt64 GetElapsedTime() const override { return fStart - fStop; }
+
+ private:
+ UInt64 fStart = 0;
+ UInt64 fStop = 0;
+};
+} // namespace Kernel
+
+#endif // defined(__NE_AMD64__) \ No newline at end of file
diff --git a/dev/kernel/HALKit/AMD64/HalKernelMain.cc b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
index e7337e62..446a1e85 100644
--- a/dev/kernel/HALKit/AMD64/HalKernelMain.cc
+++ b/dev/kernel/HALKit/AMD64/HalKernelMain.cc
@@ -14,6 +14,7 @@
#include <KernelKit/Timer.h>
#include <NetworkKit/IPC.h>
#include <StorageKit/AHCI.h>
+#include <generic_kits/BenchKit/X64Chrono.h>
#include <modules/ACPI/ACPIFactoryInterface.h>
#include <modules/CoreGfx/TextGfx.h>
diff --git a/dev/kernel/KernelKit/UserMgr.h b/dev/kernel/KernelKit/UserMgr.h
index b7e7ac1d..82f8ca66 100644
--- a/dev/kernel/KernelKit/UserMgr.h
+++ b/dev/kernel/KernelKit/UserMgr.h
@@ -11,7 +11,7 @@
Revision History:
- 04/03/25: Set users directory as /user/ instead of /usr/
+ 04/03/25: Set users directory as /libSystem/ instead of /usr/
------------------------------------------- */
diff --git a/dev/user/AsmProc.h b/dev/libSystem/AsmProc.h
index 4b3b63c1..b707d533 100644
--- a/dev/user/AsmProc.h
+++ b/dev/libSystem/AsmProc.h
@@ -6,7 +6,7 @@
#pragma once
-#include <user/SystemCalls.h>
+#include <libSystem/System.h>
#include <cstdarg>
IMPORT_C VoidPtr sci_syscall_arg_1(SizeT id);
diff --git a/dev/user/SystemCodes.h b/dev/libSystem/Codes.h
index 90457944..0451df64 100644
--- a/dev/user/SystemCodes.h
+++ b/dev/libSystem/Codes.h
@@ -6,9 +6,9 @@
#pragma once
-#include <user/Macros.h>
+#include <libSystem/Macros.h>
-/// @file ProcessCodes.h
+/// @file Codes.h
/// @brief Process Codes type and values.
/// @author Amlal El Mahrouss (amlal@nekernel.org)
diff --git a/dev/user/Macros.h b/dev/libSystem/Macros.h
index 71957208..52dc904c 100644
--- a/dev/user/Macros.h
+++ b/dev/libSystem/Macros.h
@@ -10,7 +10,7 @@ Purpose: libsci Macros header.
#pragma once
/***********************************************************************************/
-/// @file user/Macros.h
+/// @file libSystem/Macros.h
/// @brief Macros and Core types of the SCI (System Call Interface).
/***********************************************************************************/
diff --git a/dev/user/SecurityPolicy.h b/dev/libSystem/SecurityPolicy.h
index a03c928b..812f52e2 100644
--- a/dev/user/SecurityPolicy.h
+++ b/dev/libSystem/SecurityPolicy.h
@@ -6,7 +6,7 @@
#pragma once
-#include <user/SystemCalls.h>
+#include <libSystem/System.h>
/// @file SecurityPolicy.h
/// @brief Hardened Security Policy, used to restrict access to certain system calls. \ No newline at end of file
diff --git a/dev/user/SystemCalls.h b/dev/libSystem/System.h
index d77c0b8f..920ea2b2 100644
--- a/dev/user/SystemCalls.h
+++ b/dev/libSystem/System.h
@@ -2,7 +2,7 @@
Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
-File: SystemCalls.h
+File: System.h
Purpose: System Call Interface.
------------------------------------------- */
@@ -10,13 +10,18 @@ Purpose: System Call Interface.
#ifndef SCI_SYSTEM_CALLS_H
#define SCI_SYSTEM_CALLS_H
-#include <user/Macros.h>
+#include <libSystem/Macros.h>
// ------------------------------------------------------------------------------------------ //
/// @brief Types API.
// ------------------------------------------------------------------------------------------ //
-typedef VoidPtr Ref;
+struct RefType {
+ UInt32 __hash;
+ VoidPtr __self;
+};
+
+typedef RefType* Ref;
typedef Ref IORef;
typedef Ref FSRef;
diff --git a/dev/user/docs/SPECIFICATION_SYSCALLS.md b/dev/libSystem/docs/SPECIFICATION_SYSCALLS.md
index b4b11c8c..b4b11c8c 100644
--- a/dev/user/docs/SPECIFICATION_SYSCALLS.md
+++ b/dev/libSystem/docs/SPECIFICATION_SYSCALLS.md
diff --git a/dev/user/user.json b/dev/libSystem/libSystem.json
index 2267175e..fdcd2a56 100644
--- a/dev/user/user.json
+++ b/dev/libSystem/libSystem.json
@@ -13,8 +13,8 @@
"-Wl,--subsystem=17"
],
"cpp_macros": [
- "kSCIVersion=0x0100",
- "kSCIVersionHighest=0x0100",
- "kSCIVersionLowest=0x0100"
+ "kLibSystemVersion=0x0100",
+ "kLibSystemVersionHighest=0x0100",
+ "kLibSystemVersionLowest=0x0100"
]
}
diff --git a/dev/user/obj/.keep b/dev/libSystem/obj/.keep
index e69de29b..e69de29b 100644
--- a/dev/user/obj/.keep
+++ b/dev/libSystem/obj/.keep
diff --git a/dev/user/src/GNUmakefile b/dev/libSystem/src/GNUmakefile
index 9b901f9f..9b901f9f 100644
--- a/dev/user/src/GNUmakefile
+++ b/dev/libSystem/src/GNUmakefile
diff --git a/dev/user/src/SystemCalls.cc b/dev/libSystem/src/System.cc
index f004718c..1c28303d 100644
--- a/dev/user/src/SystemCalls.cc
+++ b/dev/libSystem/src/System.cc
@@ -4,8 +4,8 @@
------------------------------------------- */
-#include <user/AsmProc.h>
-#include <user/SystemCalls.h>
+#include <libSystem/AsmProc.h>
+#include <libSystem/System.h>
/// @file SystemCalls.cc
/// @brief Source file for the memory functions/syscalls for libSystem.sys
diff --git a/dev/user/src/SystemCalls+IO.asm b/dev/libSystem/src/SystemCalls+IO.asm
index 097046af..097046af 100644
--- a/dev/user/src/SystemCalls+IO.asm
+++ b/dev/libSystem/src/SystemCalls+IO.asm