summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/KernelKit
diff options
context:
space:
mode:
Diffstat (limited to 'dev/kernel/KernelKit')
-rw-r--r--dev/kernel/KernelKit/BinaryMutex.h2
-rw-r--r--dev/kernel/KernelKit/CoreProcessScheduler.h18
-rw-r--r--dev/kernel/KernelKit/HardwareThreadScheduler.h2
-rw-r--r--dev/kernel/KernelKit/IDylibObject.h2
-rw-r--r--dev/kernel/KernelKit/IFS.h2
-rw-r--r--dev/kernel/KernelKit/IPEFDylibObject.h14
-rw-r--r--dev/kernel/KernelKit/KernelTaskScheduler.h8
-rw-r--r--dev/kernel/KernelKit/LoaderInterface.h6
-rw-r--r--dev/kernel/KernelKit/PCI/DMA.h2
-rw-r--r--dev/kernel/KernelKit/PEF.h15
-rw-r--r--dev/kernel/KernelKit/UserProcessScheduler.h10
-rw-r--r--dev/kernel/KernelKit/ZXD.h11
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