diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2026-01-19 21:51:20 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2026-01-19 21:51:20 +0100 |
| commit | 7ec77f42f45fb3b3479818636943923b9416a170 (patch) | |
| tree | 33f608b06d865285fb6ef1eaf752ae77cbb16a17 /src/kernel | |
| parent | 465a99f17f9e8f56813f225f09a6a1a498be9deb (diff) | |
chore: {kernel, launch, libSystem}: Implementation and WiP improvements.v0.1.211
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'src/kernel')
| -rw-r--r-- | src/kernel/DmaKit/DmaPool.h | 15 | ||||
| -rw-r--r-- | src/kernel/GfxKit/FB.h | 8 | ||||
| -rw-r--r-- | src/kernel/GfxKit/GPU.h | 36 | ||||
| -rw-r--r-- | src/kernel/HALKit/AMD64/HalCoreInterruptHandler.cc | 2 | ||||
| -rw-r--r-- | src/kernel/HALKit/AMD64/HalCoreSystemCalls+DDK.cc (renamed from src/kernel/HALKit/AMD64/HalCoreSystemCalls.cc) | 6 | ||||
| -rw-r--r-- | src/kernel/HALKit/AMD64/HalCoreSystemCalls+NeLaunch.cc | 9 | ||||
| -rw-r--r-- | src/kernel/KernelKit/TraceSrv.h | 26 | ||||
| -rw-r--r-- | src/kernel/amd64-desktop.make | 3 | ||||
| -rw-r--r-- | src/kernel/src/UserProcessScheduler.cc | 4 |
9 files changed, 87 insertions, 22 deletions
diff --git a/src/kernel/DmaKit/DmaPool.h b/src/kernel/DmaKit/DmaPool.h index 1cf3200f..880daab7 100644 --- a/src/kernel/DmaKit/DmaPool.h +++ b/src/kernel/DmaKit/DmaPool.h @@ -7,17 +7,10 @@ #include <KernelKit/DebugOutput.h> -#ifdef __NE_AMD64__ -#include <HALKit/AMD64/Processor.h> -#define kNeDMAPoolStart (0x1000000) -#define kNeDMAPoolSize (0x1000000) -#elif defined(__NE_ARM64__) -#include <HALKit/ARM64/Processor.h> - -/// @todo what reference offset shall we use? -#define kNeDMAPoolStart (0x1000000) -#define kNeDMAPoolSize (0x1000000) -#endif +#include __nekernel_halkit_include_processor + +#define kNeDMAPoolStart (__nekernel_dma_pool_start) +#define kNeDMAPoolSize (__nekernel_dma_pool_size) #define kNeDMABestAlign (8) diff --git a/src/kernel/GfxKit/FB.h b/src/kernel/GfxKit/FB.h index 79539995..462608ae 100644 --- a/src/kernel/GfxKit/FB.h +++ b/src/kernel/GfxKit/FB.h @@ -12,10 +12,10 @@ namespace Kernel { class FBDeviceInterface; struct FBDevicePacket; -typedef UInt32 FBCoord2x2; -typedef UInt32 FBDim2x2; -typedef UInt32 FBColorProfile; -typedef UInt32 FBFlags; +using FBCoord2x2 = UInt32; +using FBDim2x2 = UInt32; +using FBColorProfile = UInt32; +using FBFlags = UInt32; /// @brief Framebuffer device interface packet. /// @details This structure is used to send and receive data from the framebuffer device. diff --git a/src/kernel/GfxKit/GPU.h b/src/kernel/GfxKit/GPU.h new file mode 100644 index 00000000..78d71558 --- /dev/null +++ b/src/kernel/GfxKit/GPU.h @@ -0,0 +1,36 @@ +// Copyright 2026, Amlal El Mahrouss (amlal@nekernel.org) +// Licensed under the Apache License, Version 2.0 (see LICENSE file) +// Official repository: https://github.com/nekernel-org/nekernel + +#ifndef GFXKIT_FB_H +#define GFXKIT_FB_H + +#include <KernelKit/DeviceMgr.h> + +namespace Kernel { + +class GPUDeviceInterface; + +/// @brief Framebuffer device interface. +/// @details This class is used to send and receive data from the framebuffer device. +/// @note The class is derived from the IDevice class. +class GPUDeviceInterface NE_DEVICE<VoidPtr> { + public: + GPUDeviceInterface(void (*out)(IDevice* self, GPUDeviceInterface* out), + void (*in)(IDevice* self, GPUDeviceInterface* in)); + + virtual ~GPUDeviceInterface() override; + + public: + GPUDeviceInterface& operator=(const GPUDeviceInterface&) = default; + GPUDeviceInterface(const GPUDeviceInterface&) = default; + const Char* Name() const override; + + public: + GPUDeviceInterface& operator<<(VoidPtr dat) override; + GPUDeviceInterface& operator>>(VoidPtr dat) override; +}; + +} // namespace Kernel + +#endif diff --git a/src/kernel/HALKit/AMD64/HalCoreInterruptHandler.cc b/src/kernel/HALKit/AMD64/HalCoreInterruptHandler.cc index 040f5daa..e977912f 100644 --- a/src/kernel/HALKit/AMD64/HalCoreInterruptHandler.cc +++ b/src/kernel/HALKit/AMD64/HalCoreInterruptHandler.cc @@ -12,7 +12,7 @@ EXTERN_C Kernel::Void idt_handle_breakpoint(Kernel::UIntPtr rip); EXTERN_C Kernel::UIntPtr kApicBaseAddress; -static bool kIsRunning = NO; +STATIC BOOL kIsRunning{NO}; /// @brief Notify APIC and PIC that we're done with the interrupt. /// @note diff --git a/src/kernel/HALKit/AMD64/HalCoreSystemCalls.cc b/src/kernel/HALKit/AMD64/HalCoreSystemCalls+DDK.cc index 4e089de0..12429e48 100644 --- a/src/kernel/HALKit/AMD64/HalCoreSystemCalls.cc +++ b/src/kernel/HALKit/AMD64/HalCoreSystemCalls+DDK.cc @@ -1,7 +1,9 @@ -// Copyright 2024-2025, Amlal El Mahrouss (amlal@nekernel.org) +// Copyright 2026, Amlal El Mahrouss (amlal@nekernel.org) // Licensed under the Apache License, Version 2.0 (see LICENSE file) // Official repository: https://github.com/nekernel-org/nekernel #include <ArchKit/ArchKit.h> -using namespace Kernel; +namespace Kernel { + +}
\ No newline at end of file diff --git a/src/kernel/HALKit/AMD64/HalCoreSystemCalls+NeLaunch.cc b/src/kernel/HALKit/AMD64/HalCoreSystemCalls+NeLaunch.cc new file mode 100644 index 00000000..29740f00 --- /dev/null +++ b/src/kernel/HALKit/AMD64/HalCoreSystemCalls+NeLaunch.cc @@ -0,0 +1,9 @@ +// Copyright 2026, Amlal El Mahrouss (amlal@nekernel.org) +// Licensed under the Apache License, Version 2.0 (see LICENSE file) +// Official repository: https://github.com/nekernel-org/nekernel + +#include <ArchKit/ArchKit.h> + +namespace Kernel { + +} diff --git a/src/kernel/KernelKit/TraceSrv.h b/src/kernel/KernelKit/TraceSrv.h index 79fbd7da..9da48561 100644 --- a/src/kernel/KernelKit/TraceSrv.h +++ b/src/kernel/KernelKit/TraceSrv.h @@ -13,12 +13,36 @@ namespace TraceSrv { inline constexpr auto kDebugCmdLen = 256U; inline constexpr auto kDebugPort = 51820; - /// \brief Debug Magic Value inline constexpr auto kDebugMagic = "NE1.0.0;"; inline constexpr auto kDebugVersion = 0x0100; inline constexpr auto kDebugDelim = ';'; inline constexpr auto kDebugEnd = '\r'; + enum class TRACE_SOURCE_OPCODE { + kStop, + kContinue, + kStepIn, + kStepOver, + kStepOut, + kSetBreakpoint, + kRemoveBreakpoint, + kGetStackTrace, + kGetSourceMessage, + kGetVariables, + kEvaluateExpression, + kUnknown + }; + + inline constexpr auto kDebugSymbolLen = 0x0100; + + struct TRACE_SOURCE_MESSAGE { + Int32 fType; + Int32 fChksum; + Char fSymbol[kDebugSymbolLen]; + UInt32 fOffset; + UInt32 fOpcode; + }; + } // namespace TraceSrv } // namespace Kernel diff --git a/src/kernel/amd64-desktop.make b/src/kernel/amd64-desktop.make index 88652718..f30c47df 100644 --- a/src/kernel/amd64-desktop.make +++ b/src/kernel/amd64-desktop.make @@ -5,7 +5,8 @@ CXX = x86_64-w64-mingw32-g++ LD = x86_64-w64-mingw32-ld -CCFLAGS = -fshort-wchar -D__nekernel_max_cores=8 -c -D__NE_AMD64__ -D__NEOSKRNL__ -D__NE_VEPM__ -Wall -Wpedantic -Wextra -mno-red-zone -fno-rtti -fno-exceptions -std=c++20 -D__FSKIT_INCLUDES_OPENHEFS__ -D__FSKIT_INCLUDES_EXT2__ -D__NE_SUPPORT_NX__ -O0 -I../vendor -D__NEKERNEL__ -D__HAVE_NE_APIS__ -D__FREESTANDING__ -D__NE_VIRTUAL_MEMORY_SUPPORT__ -D__NE_AUTO_FORMAT__ -D__NE__ -I./ -I../ -I../boot +CCFLAGS = -fshort-wchar -D__nekernel_dma_pool_start=0x1000000 -D__nekernel_dma_pool_size=0x1000000 \ + -D__nekernel_halkit_include_processor="<HALKit/AMD64/Processor.h>" -D__nekernel_max_cores=8 -c -D__NE_AMD64__ -D__NEOSKRNL__ -D__NE_VEPM__ -Wall -Wpedantic -Wextra -mno-red-zone -fno-rtti -fno-exceptions -std=c++20 -D__FSKIT_INCLUDES_OPENHEFS__ -D__FSKIT_INCLUDES_EXT2__ -D__NE_SUPPORT_NX__ -O0 -I../vendor -D__NEKERNEL__ -D__HAVE_NE_APIS__ -D__FREESTANDING__ -D__NE_VIRTUAL_MEMORY_SUPPORT__ -D__NE_AUTO_FORMAT__ -D__NE__ -I./ -I../ -I../boot ASM = nasm diff --git a/src/kernel/src/UserProcessScheduler.cc b/src/kernel/src/UserProcessScheduler.cc index 1d29b9fc..3b9e1a0f 100644 --- a/src/kernel/src/UserProcessScheduler.cc +++ b/src/kernel/src/UserProcessScheduler.cc @@ -1,4 +1,4 @@ -// Copyright 2024-2025, Amlal El Mahrouss (amlal@nekernel.org) +// Copyright 2024-2026, Amlal El Mahrouss (amlal@nekernel.org) // Licensed under the Apache License, Version 2.0 (see LICENSE file) // Official repository: https://github.com/nekernel-org/nekernel @@ -12,7 +12,7 @@ #include <NeKit/Utils.h> #include <SignalKit/Signals.h> -///! BUGS: 0 +///! BUG COUNT: 0 namespace Kernel { UserProcess::UserProcess() = default; |
