diff options
Diffstat (limited to 'dev/kernel/KernelKit')
| -rw-r--r-- | dev/kernel/KernelKit/BinaryMutex.h | 2 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/CoreProcessScheduler.h | 18 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/HardwareThreadScheduler.h | 2 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/IDylibObject.h | 2 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/IFS.h | 2 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/IPEFDylibObject.h | 14 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/KernelTaskScheduler.h | 8 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/LoaderInterface.h | 6 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/PCI/DMA.h | 2 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/PEF.h | 15 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/UserProcessScheduler.h | 10 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/ZXD.h | 11 |
12 files changed, 47 insertions, 45 deletions
diff --git a/dev/kernel/KernelKit/BinaryMutex.h b/dev/kernel/KernelKit/BinaryMutex.h index f2c15af0..abe8d517 100644 --- a/dev/kernel/KernelKit/BinaryMutex.h +++ b/dev/kernel/KernelKit/BinaryMutex.h @@ -28,7 +28,7 @@ class BinaryMutex final { public: bool Lock(USER_PROCESS* process); - bool LockOrWait(USER_PROCESS* process, TimerInterface* timer); + bool LockAndWait(USER_PROCESS* process, TimerInterface* timer); public: NE_COPY_DEFAULT(BinaryMutex) diff --git a/dev/kernel/KernelKit/CoreProcessScheduler.h b/dev/kernel/KernelKit/CoreProcessScheduler.h index a7908b7d..56c2bce0 100644 --- a/dev/kernel/KernelKit/CoreProcessScheduler.h +++ b/dev/kernel/KernelKit/CoreProcessScheduler.h @@ -118,11 +118,6 @@ enum class ProcessSubsystem : Int32 { }; /***********************************************************************************/ -//! @brief Local Process identifier. -/***********************************************************************************/ -typedef Int64 ProcessID; - -/***********************************************************************************/ //! @brief Local Process status enum. /***********************************************************************************/ enum class ProcessStatusKind : Int32 { @@ -181,7 +176,11 @@ inline bool operator>=(AffinityKind lhs, AffinityKind rhs) { using PTime = UInt64; using ProcessTime = PTime; -using PID = Int64; + +/***********************************************************************************/ +//! @brief Local Process identifier. +/***********************************************************************************/ +using ProcessID = Int64; /***********************************************************************************/ /// @note For User manager, tells where we run the code. @@ -201,14 +200,15 @@ using ImagePtr = VoidPtr; /***********************************************************************************/ /// @brief Helper class to contain a process's image and blob. /***********************************************************************************/ -struct PROCESS_IMAGE final { - explicit PROCESS_IMAGE() = default; +struct ProcessImage final { + explicit ProcessImage() = default; private: friend USER_PROCESS; friend KERNEL_TASK; - friend class UserProcessScheduler; + friend UserProcessScheduler; + friend KernelTaskScheduler; ImagePtr fCode{}; ImagePtr fBlob{}; diff --git a/dev/kernel/KernelKit/HardwareThreadScheduler.h b/dev/kernel/KernelKit/HardwareThreadScheduler.h index 168a0cc1..76327a93 100644 --- a/dev/kernel/KernelKit/HardwareThreadScheduler.h +++ b/dev/kernel/KernelKit/HardwareThreadScheduler.h @@ -100,7 +100,7 @@ class HardwareThreadScheduler final : public ISchedulable { public: Ref<HardwareThread*> operator[](SizeT idx); bool operator!() noexcept; - operator bool() noexcept; + operator bool() noexcept; Bool IsUser() override { return Yes; } diff --git a/dev/kernel/KernelKit/IDylibObject.h b/dev/kernel/KernelKit/IDylibObject.h index b673766c..3727e938 100644 --- a/dev/kernel/KernelKit/IDylibObject.h +++ b/dev/kernel/KernelKit/IDylibObject.h @@ -41,5 +41,5 @@ class IDylibObject { }; /// @brief Pure implementation, missing method/function handler. -EXTERN_C void __zka_pure_call(void); +EXTERN_C void __ne_pure_call(void); } // namespace Kernel diff --git a/dev/kernel/KernelKit/IFS.h b/dev/kernel/KernelKit/IFS.h index 5555764f..ed1d87b5 100644 --- a/dev/kernel/KernelKit/IFS.h +++ b/dev/kernel/KernelKit/IFS.h @@ -22,4 +22,4 @@ Int32 fs_ifs_read(MountpointInterface* Mnt, DriveTrait& DrvTrait, Int32 DrvIndex /// @param DrvIndex drive index. /// @return Int32 fs_ifs_write(MountpointInterface* Mnt, DriveTrait& DrvTrait, Int32 DrvIndex); -} // namespace Kernel
\ No newline at end of file +} // namespace Kernel diff --git a/dev/kernel/KernelKit/IPEFDylibObject.h b/dev/kernel/KernelKit/IPEFDylibObject.h index 66b4895d..5788138d 100644 --- a/dev/kernel/KernelKit/IPEFDylibObject.h +++ b/dev/kernel/KernelKit/IPEFDylibObject.h @@ -7,8 +7,8 @@ * ======================================================== */ -#ifndef __KERNELKIT_SHARED_OBJECT_H__ -#define __KERNELKIT_SHARED_OBJECT_H__ +#ifndef __KERNELKIT_PEF_SHARED_OBJECT_H__ +#define __KERNELKIT_PEF_SHARED_OBJECT_H__ #include <KernelKit/IDylibObject.h> #include <KernelKit/PEF.h> @@ -38,7 +38,7 @@ class IPEFDylibObject final NE_DYLIB_OBJECT { DylibTraits* Get() { return fMounted; } public: - void Mount(DylibTraits* to_mount) { + void Mount(DylibTraits* to_mount) noexcept { if (!to_mount || !to_mount->ImageObject) return; fMounted = to_mount; @@ -53,19 +53,19 @@ class IPEFDylibObject final NE_DYLIB_OBJECT { } } - void Unmount() { + void Unmount() noexcept { if (fMounted) fMounted = nullptr; }; template <typename SymbolType> - SymbolType Load(const Char* symbol_name, SizeT len, Int32 kind) { + SymbolType Load(const Char* symbol_name, const SizeT& len, const UInt32& kind) { if (symbol_name == nullptr || *symbol_name == 0) return nullptr; if (len > kPathLen || len < 1) return nullptr; auto ret = reinterpret_cast<SymbolType>(fLoader->FindSymbol(symbol_name, kind).Leak().Leak()); if (!ret) { - if (kind == kPefCode) return (VoidPtr) &__zka_pure_call; + if (kind == kPefCode) return (VoidPtr) &__ne_pure_call; return nullptr; } @@ -83,4 +83,4 @@ EXTERN_C IDylibRef rtl_init_dylib_pef(USER_PROCESS& header); EXTERN_C Void rtl_fini_dylib_pef(USER_PROCESS& header, IDylibRef lib, Bool* successful); } // namespace Kernel -#endif /* ifndef __KERNELKIT_SHARED_OBJECT_H__ */ +#endif /* ifndef __KERNELKIT_PEF_SHARED_OBJECT_H__ */ diff --git a/dev/kernel/KernelKit/KernelTaskScheduler.h b/dev/kernel/KernelKit/KernelTaskScheduler.h index c0879769..527eec5e 100644 --- a/dev/kernel/KernelKit/KernelTaskScheduler.h +++ b/dev/kernel/KernelKit/KernelTaskScheduler.h @@ -17,7 +17,7 @@ namespace Kernel { class KernelTaskHelper; -typedef PID KID; +typedef ProcessID KID; /// @brief Equivalent of USER_PROCESS, but for kernel tasks. /// @author Amlal @@ -28,7 +28,7 @@ class KERNEL_TASK final { HAL::StackFramePtr StackFrame{nullptr}; UInt8* StackReserve{nullptr}; SizeT StackSize{kSchedMaxStackSz}; - PROCESS_IMAGE Image{}; + ProcessImage Image{}; /// @brief a KID is a Kernel Identification Descriptor, it is used to find a task running within /// the kernel. KID Kid{0}; @@ -38,9 +38,9 @@ class KERNEL_TASK final { /// @author Amlal class KernelTaskHelper final { public: - STATIC Bool Switch(HAL::StackFramePtr frame_ptr, PID new_kid); + STATIC Bool Switch(HAL::StackFramePtr frame_ptr, ProcessID new_kid); STATIC Bool CanBeScheduled(const KERNEL_TASK& process); - STATIC ErrorOr<PID> TheCurrentKID(); + STATIC ErrorOr<ProcessID> TheCurrentKID(); STATIC SizeT StartScheduling(); }; } // namespace Kernel
\ No newline at end of file diff --git a/dev/kernel/KernelKit/LoaderInterface.h b/dev/kernel/KernelKit/LoaderInterface.h index ed7d8364..1f9b1e56 100644 --- a/dev/kernel/KernelKit/LoaderInterface.h +++ b/dev/kernel/KernelKit/LoaderInterface.h @@ -23,9 +23,9 @@ class LoaderInterface { public: virtual _Output ErrorOr<VoidPtr> GetBlob() = 0; - virtual _Output const Char* AsString() = 0; - virtual _Output const Char* MIME() = 0; - virtual _Output const Char* Path() = 0; + virtual _Output const Char* AsString() = 0; + virtual _Output const Char* MIME() = 0; + virtual _Output const Char* Path() = 0; virtual _Output ErrorOr<VoidPtr> FindStart() = 0; virtual _Output ErrorOr<VoidPtr> FindSymbol(_Input const Char* name, _Input Int32 kind) = 0; }; diff --git a/dev/kernel/KernelKit/PCI/DMA.h b/dev/kernel/KernelKit/PCI/DMA.h index c4e3b61a..7e7d3f0c 100644 --- a/dev/kernel/KernelKit/PCI/DMA.h +++ b/dev/kernel/KernelKit/PCI/DMA.h @@ -47,7 +47,7 @@ class DMAWrapper final { T* Get(UIntPtr off = 0); public: - operator bool(); + operator bool(); bool operator!(); public: diff --git a/dev/kernel/KernelKit/PEF.h b/dev/kernel/KernelKit/PEF.h index fd39392e..f0ba9ef9 100644 --- a/dev/kernel/KernelKit/PEF.h +++ b/dev/kernel/KernelKit/PEF.h @@ -59,19 +59,20 @@ enum { }; enum { - kPefSubArchGeneric, - kPefSubArchAMD = 200, + kPefSubArchGeneric = 0, + kPefSubArchAMD = 200, kPefSubArchIntel, kPefSubArchARM, kPefSubArchIBM, }; enum { - kPefKindExec = 1, /* .exec */ - kPefKindDylib = 2, /* .dylib */ - kPefKindObject = 4, /* .obj */ - kPefKindDebug = 5, /* .dbg */ - kPefKindDriver = 6, + kPefKindInvalid = 0, + kPefKindExec = 1, /* .exec */ + kPefKindDylib = 2, /* .dylib */ + kPefKindObject = 4, /* .obj */ + kPefKindDebug = 5, /* .dbg */ + kPefKindDriver = 6, kPefKindCount, }; diff --git a/dev/kernel/KernelKit/UserProcessScheduler.h b/dev/kernel/KernelKit/UserProcessScheduler.h index 3dae178a..a7ef13a9 100644 --- a/dev/kernel/KernelKit/UserProcessScheduler.h +++ b/dev/kernel/KernelKit/UserProcessScheduler.h @@ -48,7 +48,7 @@ class USER_PROCESS final { AffinityKind Affinity{AffinityKind::kStandard}; ProcessStatusKind Status{ProcessStatusKind::kKilled}; UInt8 StackReserve[kSchedMaxStackSz]; - PROCESS_IMAGE Image{}; + ProcessImage Image{}; SizeT StackSize{kSchedMaxStackSz}; IDylibObject* DylibDelegate{nullptr}; SizeT MemoryCursor{0UL}; @@ -79,7 +79,7 @@ class USER_PROCESS final { ProcessTime RTime{0}; //! @brief Process run time. ProcessTime UTime{0}; //! #brief Process used time. - PID ProcessId{kSchedInvalidPID}; + ProcessID ProcessId{kSchedInvalidPID}; Int32 Kind{kExecutableKind}; public: @@ -192,7 +192,7 @@ class UserProcessScheduler final : public ISchedulable { NE_MOVE_DELETE(UserProcessScheduler) public: - operator bool(); + operator bool(); bool operator!(); public: @@ -226,9 +226,9 @@ class UserProcessScheduler final : public ISchedulable { class UserProcessHelper final { public: - STATIC Bool Switch(HAL::StackFramePtr frame_ptr, PID new_pid); + STATIC Bool Switch(HAL::StackFramePtr frame_ptr, ProcessID new_pid); STATIC Bool CanBeScheduled(const USER_PROCESS& process); - STATIC ErrorOr<PID> TheCurrentPID(); + STATIC ErrorOr<ProcessID> TheCurrentPID(); STATIC SizeT StartScheduling(); }; } // namespace Kernel diff --git a/dev/kernel/KernelKit/ZXD.h b/dev/kernel/KernelKit/ZXD.h index 10af568b..f1c99a21 100644 --- a/dev/kernel/KernelKit/ZXD.h +++ b/dev/kernel/KernelKit/ZXD.h @@ -8,15 +8,16 @@ #include <NeKit/Defines.h> -namespace ZXD { -using namespace Kernel; +#define kZXDMagicNumber (0x2010AF) +#define kZXDVersion (0x0001) +namespace Kernel { struct ZXD_EXEC_HEADER; struct ZXD_STUB_HEADER; /// @brief ZXD executable header /// @details This header is used to identify ZXD executable files. -struct ZXD_EXEC_HEADER { +struct PACKED ZXD_EXEC_HEADER { UInt32 fMagic; UInt32 fVersion; UInt32 fFlags; @@ -35,9 +36,9 @@ struct ZXD_EXEC_HEADER { /// @brief ZXD stub header /// @details This header is used to identify ZXD stub files. It contains the size of the stub, the /// offset of the stub, and the CRC32 checksum of the stub. -struct ZXD_STUB_HEADER { +struct PACKED ZXD_STUB_HEADER { UInt32 fStubSize; UInt32 fStubOffset; UInt32 fStubCRC32; }; -} // namespace ZXD
\ No newline at end of file +} // namespace Kernel |
