From 86555126d855df005bb1777c1c4ab7127c677b6c Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Tue, 30 Dec 2025 19:08:56 +0100 Subject: feat: SMP support tweaks, add MACROS_MAP.md Signed-off-by: Amlal El Mahrouss --- src/kernel/KernelKit/HardwareThreadScheduler.h | 15 ++++++++++++--- src/kernel/KernelKit/UserProcessScheduler.h | 4 ++-- 2 files changed, 14 insertions(+), 5 deletions(-) (limited to 'src/kernel/KernelKit') 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 #include @@ -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. -- cgit v1.2.3