summaryrefslogtreecommitdiffhomepage
path: root/dev
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-09-01 08:43:46 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-09-01 08:43:46 +0200
commit12fe96873ad4a2f1d3c7c3d9f84bc8eb367fb2f0 (patch)
tree77722e773fb1b7f7b55a879c34863834ba6be8e5 /dev
parent257b0a377e0e0f226623e7aa807780051a9cc9e6 (diff)
feat: Signal System improvements.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev')
-rw-r--r--dev/boot/BootKit/BitManip.h2
-rw-r--r--dev/kernel/SignalKit/SignalGen.h39
-rw-r--r--dev/misc/BenchKit/HWChronometer.h2
3 files changed, 26 insertions, 17 deletions
diff --git a/dev/boot/BootKit/BitManip.h b/dev/boot/BootKit/BitManip.h
index b1c72bfb..196953b3 100644
--- a/dev/boot/BootKit/BitManip.h
+++ b/dev/boot/BootKit/BitManip.h
@@ -8,7 +8,7 @@
#define __BITMANIP_H__
/// File: BitManip.h
-/// Purpose: Bit manipulation helpers, based on coreboot-dev.
+/// Purpose: Bit manipulation helpers, based on neboot-dev.
#define bk_set_bit(X, O) X = (1 << O) | X
#define bk_clear_bit(X, O) X = ~(1 << O) & X
diff --git a/dev/kernel/SignalKit/SignalGen.h b/dev/kernel/SignalKit/SignalGen.h
index e1684acb..ad127830 100644
--- a/dev/kernel/SignalKit/SignalGen.h
+++ b/dev/kernel/SignalKit/SignalGen.h
@@ -8,36 +8,45 @@
#include <NeKit/Defines.h>
-#define SIGKILL 1
-#define SIGPAUS 2
-#define SIGEXEC 3
-#define SIGTRAP 4
-#define SIGABRT 5
-#define SIGCONT 6
-#define SIGSEG 7
-
-#define SIGBREK 660
-#define SIGATCH 661
-#define SIGDTCH 662
+#define SIGKILL 1 /* kill */
+#define SIGPAUS 2 /* pause */
+#define SIGEXEC 3 /* execute */
+#define SIGTRAP 4 /* trap */
+#define SIGABRT 5 /* abort */
+#define SIGCONT 6 /* continue */
+#define SIGSEG 7 /* process fault */
+#define SIGBREK 8
+#define SIGATCH 9
+#define SIGDTCH 10
/// @author Amlal El Mahrouss
/// @brief Signal Generation API.
namespace Kernel {
-typedef UInt32 rt_signal_kind;
+typedef SizeT rt_signal_kind;
/// @brief Standard signal seed for general purpose usage.
-inline static constexpr auto kBasicSignalSeed = 0x0895034f;
+inline static constexpr auto kUserSignalSeed = 0x0895034fUL;
+
+/// @brief Special signal seed for kernel usage.
+inline static constexpr auto kKernelSignalSeed = 0x0895034f9fUL;
/// @brief Generate signal from **Sig**
-template <rt_signal_kind Sig, SizeT Seed = kBasicSignalSeed>
+template <rt_signal_kind Sig, SizeT Seed = kKernelSignalSeed>
inline rt_signal_kind sig_generate_unique() {
static_assert(Sig > 0, "Signal is zero (invalid)");
return Sig ^ Seed;
}
+/// @brief Checks if the signal matches the seed (user_seed or kernel_seed)
+template <typename Seed>
+inline BOOL sig_matches_seed(const rt_signal_kind& sig) {
+ static_assert(sig > 0, "Signal is zero (invalid)");
+ return (sig & Seed) > 0;
+}
+
/// @brief Validate signal from **sig**
-constexpr BOOL sig_validate_unique(rt_signal_kind sig) {
+inline BOOL sig_validate_unique(rt_signal_kind sig) {
return sig > 0;
}
} // namespace Kernel
diff --git a/dev/misc/BenchKit/HWChronometer.h b/dev/misc/BenchKit/HWChronometer.h
index 80e1d84a..e232db7e 100644
--- a/dev/misc/BenchKit/HWChronometer.h
+++ b/dev/misc/BenchKit/HWChronometer.h
@@ -42,7 +42,7 @@ struct HWChronoTraits final {
template <typename ChronoTraits>
class HWChrono BENCHKIT_INTERFACE {
public:
- HWChrono() = default;
+ HWChrono() = default;
virtual ~HWChrono() override = default;
NE_COPY_DEFAULT(HWChrono)