]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/shared/pe-header.h
namespace-util: introduce helper for combining unshare() + MS_SLAVE remount
[thirdparty/systemd.git] / src / shared / pe-header.h
CommitLineData
5e146a75
LP
1#pragma once
2
3#include <inttypes.h>
4
5#include "macro.h"
6#include "sparse-endian.h"
7
8struct DosFileHeader {
9 uint8_t Magic[2];
10 le16_t LastSize;
11 le16_t nBlocks;
12 le16_t nReloc;
13 le16_t HdrSize;
14 le16_t MinAlloc;
15 le16_t MaxAlloc;
16 le16_t ss;
17 le16_t sp;
18 le16_t Checksum;
19 le16_t ip;
20 le16_t cs;
21 le16_t RelocPos;
22 le16_t nOverlay;
23 le16_t reserved[4];
24 le16_t OEMId;
25 le16_t OEMInfo;
26 le16_t reserved2[10];
27 le32_t ExeHeader;
28} _packed_;
29
30#define PE_HEADER_MACHINE_I386 0x014cU
31#define PE_HEADER_MACHINE_X64 0x8664U
32
33struct PeFileHeader {
34 le16_t Machine;
35 le16_t NumberOfSections;
36 le32_t TimeDateStamp;
37 le32_t PointerToSymbolTable;
38 le32_t NumberOfSymbols;
39 le16_t SizeOfOptionalHeader;
40 le16_t Characteristics;
41} _packed_;
42
43struct PeHeader {
44 uint8_t Magic[4];
45 struct PeFileHeader FileHeader;
46} _packed_;
47
48struct PeSectionHeader {
49 uint8_t Name[8];
50 le32_t VirtualSize;
51 le32_t VirtualAddress;
52 le32_t SizeOfRawData;
53 le32_t PointerToRawData;
54 le32_t PointerToRelocations;
55 le32_t PointerToLinenumbers;
56 le16_t NumberOfRelocations;
57 le16_t NumberOfLinenumbers;
58 le32_t Characteristics;
59 } _packed_;