summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/SignalKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-08-31 09:47:51 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-08-31 09:47:51 +0200
commit11034c004ee7b232e53d69e9f1ae9000f008285f (patch)
tree40a011167c9dbfbfa998e71754ab8cb5a6bcfac2 /dev/kernel/SignalKit
parentd9c1f9ec143f02e66c0178557b76124b3e45a32d (diff)
feat: kernel: Revamped `SignalKit` framework. DDK revamp.
ci: testing improvements. Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/SignalKit')
-rw-r--r--dev/kernel/SignalKit/SignalGen.h43
-rw-r--r--dev/kernel/SignalKit/Signals.h24
2 files changed, 43 insertions, 24 deletions
diff --git a/dev/kernel/SignalKit/SignalGen.h b/dev/kernel/SignalKit/SignalGen.h
new file mode 100644
index 00000000..e1684acb
--- /dev/null
+++ b/dev/kernel/SignalKit/SignalGen.h
@@ -0,0 +1,43 @@
+/* -------------------------------------------
+
+ Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
+
+------------------------------------------- */
+
+#pragma once
+
+#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
+
+/// @author Amlal El Mahrouss
+/// @brief Signal Generation API.
+
+namespace Kernel {
+typedef UInt32 rt_signal_kind;
+
+/// @brief Standard signal seed for general purpose usage.
+inline static constexpr auto kBasicSignalSeed = 0x0895034f;
+
+/// @brief Generate signal from **Sig**
+template <rt_signal_kind Sig, SizeT Seed = kBasicSignalSeed>
+inline rt_signal_kind sig_generate_unique() {
+ static_assert(Sig > 0, "Signal is zero (invalid)");
+ return Sig ^ Seed;
+}
+
+/// @brief Validate signal from **sig**
+constexpr BOOL sig_validate_unique(rt_signal_kind sig) {
+ return sig > 0;
+}
+} // namespace Kernel
diff --git a/dev/kernel/SignalKit/Signals.h b/dev/kernel/SignalKit/Signals.h
deleted file mode 100644
index 142ed3ab..00000000
--- a/dev/kernel/SignalKit/Signals.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -------------------------------------------
-
- Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
-
-------------------------------------------- */
-
-#pragma once
-
-#include <NeKit/Defines.h>
-
-#define SIGKILL 0
-#define SIGPAUS 1
-#define SIGEXEC 2
-#define SIGTRAP 3
-#define SIGABRT 4
-#define SIGCONT 5
-
-#define SIGBREK 666
-#define SIGATCH 661
-#define SIGDTCH 662
-
-namespace Kernel {
-typedef UInt32 SignalKind;
-} \ No newline at end of file