summaryrefslogtreecommitdiffhomepage
path: root/Private/KernelKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlalelmahrouss@icloud.com>2024-02-02 17:32:49 +0100
committerAmlal El Mahrouss <amlalelmahrouss@icloud.com>2024-02-02 17:33:32 +0100
commit5613b2627a4f9e74296ec2dcfb9079516d4f41e0 (patch)
tree76431c66bed92b6441f48f9cf338de9d4e6cd80d /Private/KernelKit
parente1e6032cfa5d0c55424d5badd65bfd186a44ab93 (diff)
Bootloader: Working on BFileReader::ReadAll() implementation.
Signed-off-by: Amlal El Mahrouss <amlalelmahrouss@icloud.com>
Diffstat (limited to 'Private/KernelKit')
-rw-r--r--Private/KernelKit/PE.hpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/Private/KernelKit/PE.hpp b/Private/KernelKit/PE.hpp
index 5d8ac9f8..9c975108 100644
--- a/Private/KernelKit/PE.hpp
+++ b/Private/KernelKit/PE.hpp
@@ -21,9 +21,12 @@ typedef HCore::UInt16 U16;
typedef HCore::UInt8 U8;
typedef char CHAR;
+#define kMagMz0 'M'
+#define kMagMz1 'Z'
+
#define kPeMagic 0x00004550
-struct ExecHeader final {
+typedef struct PACKED ExecHeader final {
U32 mMagic; // PE\0\0 or 0x00004550
U16 mMachine;
U16 mNumberOfSections;
@@ -32,12 +35,12 @@ struct ExecHeader final {
U32 mNumberOfSymbols;
U16 mSizeOfOptionalHeader;
U16 mCharacteristics;
-};
+} ExecHeader, *ExecHeaderPtr;
#define kMagPE32 0x010b
#define kMagPE64 0x020b
-typedef struct ExecOptionalHeader final {
+typedef PACKED struct ExecOptionalHeader final {
U16 mMagic; // 0x010b - PE32, 0x020b - PE32+ (64 bit)
U8 mMajorLinkerVersion;
U8 mMinorLinkerVersion;
@@ -70,7 +73,7 @@ typedef struct ExecOptionalHeader final {
U32 mNumberOfRvaAndSizes;
} ExecOptionalHeader, *ExecOptionalHeaderPtr;
-typedef struct ExecSectionHeader final {
+typedef PACKED struct ExecSectionHeader final {
CHAR mName[8];
U32 mVirtualSize;
U32 mVirtualAddress;
@@ -89,7 +92,7 @@ enum kExecDataDirParams {
kExecCnt,
};
-typedef struct ExecExportDirectory {
+typedef PACKED struct ExecExportDirectory {
U32 mCharacteristics;
U32 mTimeDateStamp;
U16 mMajorVersion;
@@ -103,7 +106,7 @@ typedef struct ExecExportDirectory {
U32 mAddressOfNameOrdinal; // ordinal table rva
} ExecExportDirectory, *ExecExportDirectoryPtr;
-typedef struct ExecImportDirectory {
+typedef PACKED struct ExecImportDirectory {
union {
U32 mCharacteristics;
U32 mOriginalFirstThunk;