diff options
Diffstat (limited to 'Kernel/KernelKit')
| -rw-r--r-- | Kernel/KernelKit/HError.hpp | 9 | ||||
| -rw-r--r-- | Kernel/KernelKit/MSDOS.hxx (renamed from Kernel/KernelKit/MSDOS.hpp) | 40 | ||||
| -rw-r--r-- | Kernel/KernelKit/PCI/Dma.inl | 2 | ||||
| -rw-r--r-- | Kernel/KernelKit/PCI/IO-Impl-AMD64.inl | 2 | ||||
| -rw-r--r-- | Kernel/KernelKit/PE.hxx | 68 | ||||
| -rw-r--r-- | Kernel/KernelKit/ProcessScheduler.hxx | 22 | ||||
| -rw-r--r-- | Kernel/KernelKit/ThreadLocalStorage.hxx | 8 | ||||
| -rw-r--r-- | Kernel/KernelKit/XCOFF.hxx | 12 |
8 files changed, 82 insertions, 81 deletions
diff --git a/Kernel/KernelKit/HError.hpp b/Kernel/KernelKit/HError.hpp index caee5718..24d5c505 100644 --- a/Kernel/KernelKit/HError.hpp +++ b/Kernel/KernelKit/HError.hpp @@ -11,9 +11,9 @@ /// @file HError.hpp /// @brief Local Process Codes. -#define ErrLocalIsOk() (Kernel::ProcessScheduler::The().Leak().TheCurrent().Leak().GetLocalCode() == Kernel::kErrorSuccess) -#define ErrLocalFailed() (Kernel::ProcessScheduler::The().Leak().TheCurrent().Leak().GetLocalCode() != Kernel::kErrorSuccess) -#define ErrLocal() Kernel::ProcessScheduler::The().Leak().TheCurrent().Leak().GetLocalCode() +#define ErrLocalIsOk() (Kernel::ProcessScheduler::The().Leak().TheCurrent().Leak().GetLocalCode() == Kernel::kErrorSuccess) +#define ErrLocalFailed() (Kernel::ProcessScheduler::The().Leak().TheCurrent().Leak().GetLocalCode() != Kernel::kErrorSuccess) +#define ErrLocal() Kernel::ProcessScheduler::The().Leak().TheCurrent().Leak().GetLocalCode() namespace Kernel { @@ -50,7 +50,6 @@ namespace Kernel inline constexpr HError kErrorSign = 60; inline constexpr HError kErrorUnimplemented = 0; - Void err_bug_check_raise(void) noexcept; + Void err_bug_check_raise(void) noexcept; Boolean err_bug_check(void) noexcept; } // namespace Kernel - diff --git a/Kernel/KernelKit/MSDOS.hpp b/Kernel/KernelKit/MSDOS.hxx index 12d67488..7b0c2a2f 100644 --- a/Kernel/KernelKit/MSDOS.hpp +++ b/Kernel/KernelKit/MSDOS.hxx @@ -24,29 +24,29 @@ #define kMagMz1 'Z' typedef Kernel::UInt32 DosWord; -typedef Kernel::Long DosLong; +typedef Kernel::Long DosLong; typedef struct _DosHeader { Kernel::UInt8 eMagic[2]; - DosWord eMagLen; - DosWord ePagesCount; - DosWord eCrlc; - DosWord eCParHdr; - DosWord eMinAlloc; - DosWord eMaxAlloc; - DosWord eStackSeg; - DosWord eStackPtr; - DosWord eChksum; - DosWord eIp; - DosWord eCs; - DosWord eLfarlc; - DosWord eOvno; - DosWord eRes[4]; - DosWord eOemid; - DosWord eOeminfo; - DosWord eRes2[10]; - DosLong eLfanew; + DosWord eMagLen; + DosWord ePagesCount; + DosWord eCrlc; + DosWord eCParHdr; + DosWord eMinAlloc; + DosWord eMaxAlloc; + DosWord eStackSeg; + DosWord eStackPtr; + DosWord eChksum; + DosWord eIp; + DosWord eCs; + DosWord eLfarlc; + DosWord eOvno; + DosWord eRes[4]; + DosWord eOemid; + DosWord eOeminfo; + DosWord eRes2[10]; + DosLong eLfanew; } DosHeader, *DosHeaderPtr; namespace Kernel @@ -56,8 +56,10 @@ namespace Kernel { if (!ptrDos) return nullptr; + if (ptrDos->eMagic[0] != kMagMz0) return nullptr; + if (ptrDos->eMagic[1] != kMagMz1) return nullptr; diff --git a/Kernel/KernelKit/PCI/Dma.inl b/Kernel/KernelKit/PCI/Dma.inl index 1eca8081..4a0facae 100644 --- a/Kernel/KernelKit/PCI/Dma.inl +++ b/Kernel/KernelKit/PCI/Dma.inl @@ -17,4 +17,4 @@ namespace Kernel { return reinterpret_cast<T*>((UIntPtr)fAddress + offset); } -} // namespace NewOS +} // namespace Kernel diff --git a/Kernel/KernelKit/PCI/IO-Impl-AMD64.inl b/Kernel/KernelKit/PCI/IO-Impl-AMD64.inl index 08d33945..7b1e75dd 100644 --- a/Kernel/KernelKit/PCI/IO-Impl-AMD64.inl +++ b/Kernel/KernelKit/PCI/IO-Impl-AMD64.inl @@ -51,4 +51,4 @@ namespace Kernel break; } } -} // namespace NewOS +} // namespace Kernel diff --git a/Kernel/KernelKit/PE.hxx b/Kernel/KernelKit/PE.hxx index 30b71cc9..c71f5fc2 100644 --- a/Kernel/KernelKit/PE.hxx +++ b/Kernel/KernelKit/PE.hxx @@ -28,7 +28,7 @@ typedef struct ExecHeader final Kernel::UInt32 mNumberOfSymbols; Kernel::UInt16 mSizeOfOptionalHeader; Kernel::UInt16 mCharacteristics; -} ALIGN(8) ExecHeader, *ExecHeaderPtr; +} PACKED ExecHeader, *ExecHeaderPtr; #define kMagPE32 0x010b #define kMagPE64 0x020b @@ -38,50 +38,50 @@ typedef struct ExecHeader final typedef struct ExecOptionalHeader final { - Kernel::UInt16 mMagic; // 0x010b - PE32, 0x020b - PE32+ (64 bit) - Kernel::UChar mMajorLinkerVersion; - Kernel::UChar mMinorLinkerVersion; + Kernel::UInt16 mMagic; // 0x010b - PE32, 0x020b - PE32+ (64 bit) + Kernel::UChar mMajorLinkerVersion; + Kernel::UChar mMinorLinkerVersion; Kernel::UIntPtr mSizeOfCode; Kernel::UIntPtr mSizeOfInitializedData; Kernel::UIntPtr mSizeOfUninitializedData; - Kernel::UInt32 mAddressOfEntryPoint; - Kernel::UInt32 mBaseOfCode; + Kernel::UInt32 mAddressOfEntryPoint; + Kernel::UInt32 mBaseOfCode; Kernel::UIntPtr mImageBase; - Kernel::UInt32 mSectionAlignment; - Kernel::UInt32 mFileAlignment; - Kernel::UInt16 mMajorOperatingSystemVersion; - Kernel::UInt16 mMinorOperatingSystemVersion; - Kernel::UInt16 mMajorImageVersion; - Kernel::UInt16 mMinorImageVersion; - Kernel::UInt16 mMajorSubsystemVersion; - Kernel::UInt16 mMinorSubsystemVersion; - Kernel::UInt32 mWin32VersionValue; + Kernel::UInt32 mSectionAlignment; + Kernel::UInt32 mFileAlignment; + Kernel::UInt16 mMajorOperatingSystemVersion; + Kernel::UInt16 mMinorOperatingSystemVersion; + Kernel::UInt16 mMajorImageVersion; + Kernel::UInt16 mMinorImageVersion; + Kernel::UInt16 mMajorSubsystemVersion; + Kernel::UInt16 mMinorSubsystemVersion; + Kernel::UInt32 mWin32VersionValue; Kernel::UIntPtr mSizeOfImage; Kernel::UIntPtr mSizeOfHeaders; - Kernel::UInt32 mCheckSum; - Kernel::UInt16 mSubsystem; - Kernel::UInt16 mDllCharacteristics; + Kernel::UInt32 mCheckSum; + Kernel::UInt16 mSubsystem; + Kernel::UInt16 mDllCharacteristics; Kernel::UIntPtr mSizeOfStackReserve; Kernel::UIntPtr mSizeOfStackCommit; Kernel::UIntPtr mSizeOfHeapReserve; Kernel::UIntPtr mSizeOfHeapCommit; - Kernel::UInt32 mLoaderFlags; - Kernel::UInt32 mNumberOfRvaAndSizes; -} ExecOptionalHeader, *ExecOptionalHeaderPtr; + Kernel::UInt32 mLoaderFlags; + Kernel::UInt32 mNumberOfRvaAndSizes; +} PACKED ExecOptionalHeader, *ExecOptionalHeaderPtr; typedef struct ExecSectionHeader final { CONST Kernel::UChar mName[8]; - Kernel::UInt32 mVirtualSize; - Kernel::UInt32 mVirtualAddress; - Kernel::UInt32 mSizeOfRawData; - Kernel::UInt32 mPointerToRawData; - Kernel::UInt32 mPointerToRelocations; - Kernel::UInt32 mPointerToLinenumbers; - Kernel::UInt16 mNumberOfRelocations; - Kernel::UInt16 mNumberOfLinenumbers; - Kernel::UInt32 mCharacteristics; -} ExecSectionHeader, *ExecSectionHeaderPtr; + Kernel::UInt32 mVirtualSize; + Kernel::UInt32 mVirtualAddress; + Kernel::UInt32 mSizeOfRawData; + Kernel::UInt32 mPointerToRawData; + Kernel::UInt32 mPointerToRelocations; + Kernel::UInt32 mPointerToLinenumbers; + Kernel::UInt16 mNumberOfRelocations; + Kernel::UInt16 mNumberOfLinenumbers; + Kernel::UInt32 mCharacteristics; +} PACKED ExecSectionHeader, *ExecSectionHeaderPtr; enum kExecDataDirParams { @@ -104,7 +104,7 @@ typedef struct ExecExportDirectory Kernel::UInt32 mAddressOfFunctions; // export table rva Kernel::UInt32 mAddressOfNames; Kernel::UInt32 mAddressOfNameOrdinal; // ordinal table rva -} ExecExportDirectory, *ExecExportDirectoryPtr; +} PACKED ExecExportDirectory, *ExecExportDirectoryPtr; typedef struct ExecImportDirectory { @@ -116,8 +116,8 @@ typedef struct ExecImportDirectory Kernel::UInt32 mForwarderChain; Kernel::UInt32 mNameRva; Kernel::UInt32 mThunkTableRva; -} ExecImportDirectory, *ExecImportDirectoryPtr; +} PACKED ExecImportDirectory, *ExecImportDirectoryPtr; -#define kPeStart "__hcore_subsys_start" +#define kPeStart "__ImageStart" #endif /* ifndef __PE__ */ diff --git a/Kernel/KernelKit/ProcessScheduler.hxx b/Kernel/KernelKit/ProcessScheduler.hxx index 7d8518bb..866841f7 100644 --- a/Kernel/KernelKit/ProcessScheduler.hxx +++ b/Kernel/KernelKit/ProcessScheduler.hxx @@ -140,8 +140,8 @@ namespace Kernel NEWOS_COPY_DEFAULT(ProcessHeader) public: - void SetEntrypoint(UIntPtr& imageStart) noexcept; - const Int32& GetExitCode() noexcept; + void SetEntrypoint(UIntPtr& imageStart) noexcept; + const Int32& GetExitCode() noexcept; public: Char Name[kProcessLen] = {"Process"}; @@ -179,24 +179,24 @@ namespace Kernel } //! @brief Crash the app, exits with code ~0. - Void Crash(); + Void Crash(); //! @brief Exits app. - Void Exit(Int32 exitCode = 0); + Void Exit(Int32 exitCode = 0); //! @brief TLS Allocate - VoidPtr New(const SizeT& sz); + VoidPtr New(const SizeT& sz); //! @brief TLS Free. - Boolean Delete(VoidPtr ptr, const SizeT& sz); + Boolean Delete(VoidPtr ptr, const SizeT& sz); //! @brief Wakes up threads. - Void Wake(const bool wakeup = false); + Void Wake(const bool wakeup = false); // ProcessHeader getters. public: //! @brief ProcessHeader name getter, example: "C RunTime" - const Char* GetName() noexcept; + const Char* GetName() noexcept; //! @brief return local error code of process. //! @return Int32 local error code. @@ -207,8 +207,8 @@ namespace Kernel const AffinityKind& GetAffinity() noexcept; private: - Int32 fLastExitCode{0}; - Int32 fLocalCode{0}; + Int32 fLastExitCode{0}; + Int32 fLocalCode{0}; friend ProcessScheduler; friend ProcessHelper; @@ -226,7 +226,7 @@ namespace Kernel MutableArray<Ref<ProcessHeader>>& AsArray(); Ref<ProcessHeader>& AsRef(); - UInt64& Id() noexcept; + UInt64& Id() noexcept; public: MutableArray<Ref<ProcessHeader>> mProcessList; diff --git a/Kernel/KernelKit/ThreadLocalStorage.hxx b/Kernel/KernelKit/ThreadLocalStorage.hxx index fb3eec9b..50c53fa4 100644 --- a/Kernel/KernelKit/ThreadLocalStorage.hxx +++ b/Kernel/KernelKit/ThreadLocalStorage.hxx @@ -21,11 +21,11 @@ /// Located in GS on AMD64, other architectures have their own stuff. (64x0, 32x0, ARM64) struct PACKED ThreadInformationBlock final { - Kernel::Char Cookie[kTLSCookieLen]; - Kernel::UIntPtr StartCode; // Start Address - Kernel::UIntPtr StartData; // Allocation Heap + Kernel::Char Cookie[kTLSCookieLen]; + Kernel::UIntPtr StartCode; // Start Address + Kernel::UIntPtr StartData; // Allocation Heap Kernel::UIntPtr StartStack; // Stack Pointer. - Kernel::Int32 ThreadID; // Thread execution ID. + Kernel::Int32 ThreadID; // Thread execution ID. }; typedef struct ThreadInformationBlock ProcessInformationBlock; diff --git a/Kernel/KernelKit/XCOFF.hxx b/Kernel/KernelKit/XCOFF.hxx index f5063900..2487a401 100644 --- a/Kernel/KernelKit/XCOFF.hxx +++ b/Kernel/KernelKit/XCOFF.hxx @@ -29,13 +29,13 @@ struct XCoffForkHeader; /// @brief XCoff file header, meant for POWER apps. typedef struct XCoffFileHeader { - Kernel::UInt16 fMagic; - Kernel::UInt16 fTarget; - Kernel::UInt16 fNumSecs; - Kernel::UInt32 fTimeDat; + Kernel::UInt16 fMagic; + Kernel::UInt16 fTarget; + Kernel::UInt16 fNumSecs; + Kernel::UInt32 fTimeDat; Kernel::UIntPtr fSymPtr; - Kernel::UInt32 fNumSyms; - Kernel::UInt16 fOptHdr; // ?: Number of bytes in optional header + Kernel::UInt32 fNumSyms; + Kernel::UInt16 fOptHdr; // ?: Number of bytes in optional header } XCoffFileHeader32, XCoffFileHeader64; #define cForkNameLen (255) |
