summaryrefslogtreecommitdiffhomepage
path: root/src/kernel/KernelKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-12-30 19:08:56 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-12-30 19:11:19 +0100
commit86555126d855df005bb1777c1c4ab7127c677b6c (patch)
tree5afca23f0ab7a6bf091dc25fc4998d0c51347147 /src/kernel/KernelKit
parent8d853a3235d37b746508d178b6128380b07ceb57 (diff)
feat: SMP support tweaks, add MACROS_MAP.md
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'src/kernel/KernelKit')
-rw-r--r--src/kernel/KernelKit/HardwareThreadScheduler.h15
-rw-r--r--src/kernel/KernelKit/UserProcessScheduler.h4
2 files changed, 14 insertions, 5 deletions
diff --git a/src/kernel/KernelKit/HardwareThreadScheduler.h b/src/kernel/KernelKit/HardwareThreadScheduler.h
index b7aa63e5..bc5bea81 100644
--- a/src/kernel/KernelKit/HardwareThreadScheduler.h
+++ b/src/kernel/KernelKit/HardwareThreadScheduler.h
@@ -2,8 +2,8 @@
// Licensed under the Apache License, Version 2.0 (see LICENSE file)
// Official repository: https://github.com/nekernel-org/nekernel
-#ifndef __INC_MP_MANAGER_H__
-#define __INC_MP_MANAGER_H__
+#ifndef KERNEL_HARDWARETHREADSCHEDULER_H
+#define KERNELKIT_HARDWARETHREADSCHEDULER_H
#include <ArchKit/ArchKit.h>
#include <CompilerKit/CompilerKit.h>
@@ -12,9 +12,17 @@
/// @note Last Rev Sun 28 Jul CET 2024
/// @note Last Rev Thu, Aug 1, 2024 9:07:38 AM
-#define kMaxAPInsideSched (4U)
+#if defined(__nekernel_max_cores)
+/// \note This can be edited at compile-time to specify how many cores can be used by NeKernel.
+#define kMaxAPInsideSched (__nekernel_max_cores)
+#endif
+
+#if defined(__nekernel_boot_core_index)
+#define kBootAPIndex (__nekernel_boot_core_index)
+#endif
namespace Kernel {
+
enum struct ThreadKind {
kAPInvalid = 0,
kAPSystemReserved = 100, // System reserved thread, well user can't use it
@@ -123,6 +131,7 @@ Void mp_wakeup_thread(HAL::StackFramePtr stack);
/// @brief makes thread sleep.
/// hooks and hangs thread to prevent code from executing.
Void mp_hang_thread(HAL::StackFramePtr stack);
+
} // namespace Kernel
#endif // !__INC_MP_MANAGER_H__
diff --git a/src/kernel/KernelKit/UserProcessScheduler.h b/src/kernel/KernelKit/UserProcessScheduler.h
index e4d86a19..126be648 100644
--- a/src/kernel/KernelKit/UserProcessScheduler.h
+++ b/src/kernel/KernelKit/UserProcessScheduler.h
@@ -2,8 +2,8 @@
// Licensed under the Apache License, Version 2.0 (see LICENSE file)
// Official repository: https://github.com/nekernel-org/nekernel
-#ifndef __KERNEL_KIT_USER_PROCESS_SCHEDULER_H__
-#define __KERNEL_KIT_USER_PROCESS_SCHEDULER_H__
+#ifndef KERNELKIT_USERPROCESSSCHEDULER_H
+#define KERNELKIT_USERPROCESSSCHEDULER_H
/// @file UserProcessScheduler.h
/// @brief User Process Scheduler backend file.