summaryrefslogtreecommitdiffhomepage
path: root/Kernel/KernelKit
diff options
context:
space:
mode:
authorAmlal <amlal@zka.com>2024-07-18 09:43:27 +0200
committerAmlal <amlal@zka.com>2024-07-18 09:43:27 +0200
commit384300904e6cf9187e5e4c4d9a8fad740592cacb (patch)
treef0a0f196f32f5a224ca529ad7d4e99dd6a95586e /Kernel/KernelKit
parente9b8d8f68bdd79907feeed9e87572ba562c213e9 (diff)
[IMP] BootJump has been fixed, LoaderUtils API for CFKit. (Kernel's CoreFoundation like API)
[IMP] Add Write for UChar* types. (BTextWriter) Signed-off-by: Amlal <amlal@zka.com>
Diffstat (limited to 'Kernel/KernelKit')
-rw-r--r--Kernel/KernelKit/MSDOS.hxx18
-rw-r--r--Kernel/KernelKit/PE.hxx24
-rw-r--r--Kernel/KernelKit/PEF.hxx (renamed from Kernel/KernelKit/PEF.hpp)8
-rw-r--r--Kernel/KernelKit/PEFCodeManager.hxx2
-rw-r--r--Kernel/KernelKit/PEFSharedObject.hxx2
5 files changed, 18 insertions, 36 deletions
diff --git a/Kernel/KernelKit/MSDOS.hxx b/Kernel/KernelKit/MSDOS.hxx
index a7da9e86..62fc1c64 100644
--- a/Kernel/KernelKit/MSDOS.hxx
+++ b/Kernel/KernelKit/MSDOS.hxx
@@ -49,22 +49,4 @@ typedef struct _DosHeader
DosLong eLfanew;
} DosHeader, *DosHeaderPtr;
-namespace Kernel
-{
- /// @brief Find the PE header inside the the blob.
- inline auto rt_find_exec_header(DosHeaderPtr ptrDos) -> VoidPtr
- {
- if (!ptrDos)
- return nullptr;
-
- if (ptrDos->eMagic[0] != kMagMz0)
- return nullptr;
-
- if (ptrDos->eMagic[1] != kMagMz1)
- return nullptr;
-
- return (VoidPtr)(&ptrDos->eLfanew + 1);
- }
-} // namespace Kernel
-
#endif /* ifndef __MSDOS_EXEC__ */
diff --git a/Kernel/KernelKit/PE.hxx b/Kernel/KernelKit/PE.hxx
index d494c5aa..debd6aba 100644
--- a/Kernel/KernelKit/PE.hxx
+++ b/Kernel/KernelKit/PE.hxx
@@ -11,13 +11,19 @@
------------------------------------------- */
-#ifndef __PE__
-#define __PE__
+#ifndef __KERNELKIT_INC_PE_HXX__
+#define __KERNELKIT_INC_PE_HXX__
#include <NewKit/Defines.hpp>
#define kPeMagic 0x00004550
+#define kMagPE32 0x010b
+#define kMagPE64 0x020b
+
+#define kPEMachineAMD64 0x8664
+#define kPEMachineARM64 0xaa64
+
typedef struct ExecHeader final
{
Kernel::UInt32 mMagic; // PE\0\0 or 0x00004550
@@ -30,12 +36,6 @@ typedef struct ExecHeader final
Kernel::UInt16 mCharacteristics;
} PACKED ExecHeader, *ExecHeaderPtr;
-#define kMagPE32 0x010b
-#define kMagPE64 0x020b
-
-#define kPEMachineAMD64 0x8664
-#define kPEMachineARM64 0xaa64
-
typedef struct ExecOptionalHeader final
{
Kernel::UInt16 mMagic; // 0x010b - PE32, 0x020b - PE32+ (64 bit)
@@ -71,17 +71,17 @@ typedef struct ExecOptionalHeader final
typedef struct ExecSectionHeader final
{
- CONST Kernel::UChar mName[8];
+ Kernel::UChar mName[8];
Kernel::UInt32 mVirtualSize;
Kernel::UInt32 mVirtualAddress;
Kernel::UInt32 mSizeOfRawData;
Kernel::UInt32 mPointerToRawData;
Kernel::UInt32 mPointerToRelocations;
- Kernel::UInt32 mPointerToLinenumbers;
+ Kernel::UInt32 mPointerToLineNumbers;
Kernel::UInt16 mNumberOfRelocations;
Kernel::UInt16 mNumberOfLinenumbers;
Kernel::UInt32 mCharacteristics;
-} PACKED ExecSectionHeader, *ExecSectionHeaderPtr;
+} ExecSectionHeader, *ExecSectionHeaderPtr;
enum kExecDataDirParams
{
@@ -120,4 +120,4 @@ typedef struct ExecImportDirectory
#define kPeStart "__ImageStart"
-#endif /* ifndef __PE__ */
+#endif /* ifndef __KERNELKIT_INC_PE_HXX__ */
diff --git a/Kernel/KernelKit/PEF.hpp b/Kernel/KernelKit/PEF.hxx
index da8d7aa0..c3b1b94b 100644
--- a/Kernel/KernelKit/PEF.hpp
+++ b/Kernel/KernelKit/PEF.hxx
@@ -2,7 +2,7 @@
Copyright ZKA Technologies
- File: PEF.hpp
+ File: PEF.hxx
Purpose: Preferred Executable Format for Kernel.
Revision History:
@@ -11,8 +11,8 @@
------------------------------------------- */
-#ifndef __INC_PEF_HPP__
-#define __INC_PEF_HPP__
+#ifndef __KERNELKIT_INC_PEF_HXX__
+#define __KERNELKIT_INC_PEF_HXX__
#include <CompilerKit/CompilerKit.hxx>
#include <KernelKit/LoaderInterface.hpp>
@@ -110,4 +110,4 @@ namespace Kernel
#define kPefForkKind kPefMagic
#define kPefForkKindFAT kPefMagicFat
-#endif /* ifndef __INC_PEF_HPP__ */
+#endif /* ifndef __KERNELKIT_INC_PEF_HXX__ */
diff --git a/Kernel/KernelKit/PEFCodeManager.hxx b/Kernel/KernelKit/PEFCodeManager.hxx
index 79c9d0ab..5e48331a 100644
--- a/Kernel/KernelKit/PEFCodeManager.hxx
+++ b/Kernel/KernelKit/PEFCodeManager.hxx
@@ -7,7 +7,7 @@
#ifndef _INC_CODE_MANAGER_PEF_HXX_
#define _INC_CODE_MANAGER_PEF_HXX_
-#include <KernelKit/PEF.hpp>
+#include <KernelKit/PEF.hxx>
#include <NewKit/ErrorOr.hpp>
#include <NewKit/String.hpp>
#include <KernelKit/FileManager.hpp>
diff --git a/Kernel/KernelKit/PEFSharedObject.hxx b/Kernel/KernelKit/PEFSharedObject.hxx
index a583ad70..f8119971 100644
--- a/Kernel/KernelKit/PEFSharedObject.hxx
+++ b/Kernel/KernelKit/PEFSharedObject.hxx
@@ -11,7 +11,7 @@
#define __KERNELKIT_SHARED_OBJECT_HXX__
#include <KernelKit/LoaderInterface.hpp>
-#include <KernelKit/PEF.hpp>
+#include <KernelKit/PEF.hxx>
#include <KernelKit/PEFCodeManager.hxx>
#include <NewKit/Defines.hpp>