diff options
| author | Amlal El Mahrouss <amlalelmahrouss@icloud.com> | 2024-02-02 17:32:49 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlalelmahrouss@icloud.com> | 2024-02-02 17:33:32 +0100 |
| commit | 5613b2627a4f9e74296ec2dcfb9079516d4f41e0 (patch) | |
| tree | 76431c66bed92b6441f48f9cf338de9d4e6cd80d /Private/KernelKit | |
| parent | e1e6032cfa5d0c55424d5badd65bfd186a44ab93 (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.hpp | 15 |
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; |
