LLVM: include/llvm/BinaryFormat/COFF.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22#ifndef LLVM_BINARYFORMAT_COFF_H

23#define LLVM_BINARYFORMAT_COFF_H

24

27#include

28

29namespace llvm {

31

32

34

35

36static const char PEMagic[] = {'P', 'E', '\0', '\0'};

37

39 '\xc7', '\xa1', '\xba', '\xd1', '\xee', '\xba', '\xa9', '\x4b',

40 '\xaf', '\x20', '\xfa', '\xf6', '\x6a', '\xa4', '\xdc', '\xb8',

41};

42

44 '\x38', '\xfe', '\xb3', '\x0c', '\xa5', '\xd9', '\xab', '\x4d',

45 '\xac', '\x9b', '\xd6', '\xb6', '\x22', '\x26', '\x53', '\xc2',

46};

47

48

50 '\x00', '\x00', '\x00', '\x00', '\x20', '\x00', '\x00', '\x00',

51 '\xff', '\xff', '\x00', '\x00', '\xff', '\xff', '\x00', '\x00',

52};

53

54

55enum {

63};

64

74

92

124

129

133

137

140

141

142

144

146

147

149

150

152

154

156

157

159

161

163

165

167

169

171

173

174

176};

177

201

210

216

217

220

241

243

247

250

252};

253

272

282

284

297

339

345

359

379

399

420

438

447

453

463

464

472

480

486

493

503

510

517

518

519

520

528

529

530

531

532

533

534

535

536

539

540

542

543

546 return data & 0xFFFF;

547 }

548

549

552 data |= 0x80000000;

553 }

554

555

560

561

563};

564

565

587

624

629

649

668

670

672

674

676

678

680

681

683

685

687

689

691

693};

694

696

698

700

701

703 0x0004,

704

705

707

709

711

713

715};

716

737

750

756

758

759

760

761

763

765

766

768

769

771

772

774};

775

777

778

780

782

784

786

788

789

791

792

794

796

798

800

801

802

819};

820

837

842

843

844

846

848

850

852

854

856

858};

859

865

867 return SectionNumber <= 0;

868}

869

870

871

873

874}

875}

876

877#endif

assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")

Function const char TargetMachine * Machine

@ NameSize

Definition COFF.h:58

@ Header16Size

Definition COFF.h:56

@ Symbol16Size

Definition COFF.h:59

@ Header32Size

Definition COFF.h:57

@ SectionSize

Definition COFF.h:61

@ Symbol32Size

Definition COFF.h:60

@ RelocationSize

Definition COFF.h:62

static const char ClGlObjMagic[]

Definition COFF.h:43

DLLCharacteristics

Definition COFF.h:669

@ IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE

Terminal Server aware.

Definition COFF.h:692

@ IMAGE_DLL_CHARACTERISTICS_GUARD_CF

Definition COFF.h:690

@ IMAGE_DLL_CHARACTERISTICS_NO_ISOLATION

Isolation aware, but do not isolate the image.

Definition COFF.h:679

@ IMAGE_DLL_CHARACTERISTICS_NX_COMPAT

Definition COFF.h:677

@ IMAGE_DLL_CHARACTERISTICS_WDM_DRIVER

Image supports Control Flow Guard.

Definition COFF.h:688

@ IMAGE_DLL_CHARACTERISTICS_NO_BIND

Do not bind the image.

Definition COFF.h:684

@ IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY

Code integrity checks are enforced.

Definition COFF.h:675

@ IMAGE_DLL_CHARACTERISTICS_APPCONTAINER

A WDM driver.

Definition COFF.h:686

@ IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE

DLL can be relocated at load time.

Definition COFF.h:673

@ IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA

ASLR with 64 bit address space.

Definition COFF.h:671

@ IMAGE_DLL_CHARACTERISTICS_NO_SEH

Does not use structured exception handling (SEH).

Definition COFF.h:682

AuxSymbolType

Definition COFF.h:283

@ IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF

Definition COFF.h:283

BaseRelocationType

Definition COFF.h:738

@ IMAGE_REL_BASED_MIPS_JMPADDR16

Definition COFF.h:747

@ IMAGE_REL_BASED_ARM_MOV32T

Definition COFF.h:746

@ IMAGE_REL_BASED_ABSOLUTE

Definition COFF.h:739

@ IMAGE_REL_BASED_MIPS_JMPADDR

Definition COFF.h:744

@ IMAGE_REL_BASED_DIR64

Definition COFF.h:748

@ IMAGE_REL_BASED_HIGH

Definition COFF.h:740

@ IMAGE_REL_BASED_HIGHLOW

Definition COFF.h:742

@ IMAGE_REL_BASED_HIGHADJ

Definition COFF.h:743

@ IMAGE_REL_BASED_ARM_MOV32A

Definition COFF.h:745

@ IMAGE_REL_BASED_LOW

Definition COFF.h:741

RelocationTypesMips

Definition COFF.h:421

@ IMAGE_REL_MIPS_PAIR

Definition COFF.h:436

@ IMAGE_REL_MIPS_JMPADDR

Definition COFF.h:425

@ IMAGE_REL_MIPS_REFHI

Definition COFF.h:426

@ IMAGE_REL_MIPS_REFLO

Definition COFF.h:427

@ IMAGE_REL_MIPS_LITERAL

Definition COFF.h:429

@ IMAGE_REL_MIPS_REFHALF

Definition COFF.h:423

@ IMAGE_REL_MIPS_SECRELHI

Definition COFF.h:433

@ IMAGE_REL_MIPS_JMPADDR16

Definition COFF.h:434

@ IMAGE_REL_MIPS_ABSOLUTE

Definition COFF.h:422

@ IMAGE_REL_MIPS_SECRELLO

Definition COFF.h:432

@ IMAGE_REL_MIPS_GPREL

Definition COFF.h:428

@ IMAGE_REL_MIPS_REFWORDNB

Definition COFF.h:435

@ IMAGE_REL_MIPS_REFWORD

Definition COFF.h:424

@ IMAGE_REL_MIPS_SECREL

Definition COFF.h:431

@ IMAGE_REL_MIPS_SECTION

Definition COFF.h:430

DynamicRelocationType

Definition COFF.h:439

@ IMAGE_DYNAMIC_RELOCATION_ARM64X

Definition COFF.h:445

@ IMAGE_DYNAMIC_RELOCATION_GUARD_SWITCHTABLE_BRANCH

Definition COFF.h:444

@ IMAGE_DYNAMIC_RELOCATION_GUARD_RF_EPILOGUE

Definition COFF.h:441

@ IMAGE_DYNAMIC_RELOCATION_GUARD_INDIR_CONTROL_TRANSFER

Definition COFF.h:443

@ IMAGE_DYNAMIC_RELOCATION_GUARD_IMPORT_CONTROL_TRANSFER

Definition COFF.h:442

@ IMAGE_DYNAMIC_RELOCATION_GUARD_RF_PROLOGUE

Definition COFF.h:440

MachineTypes

Definition COFF.h:93

@ IMAGE_FILE_MACHINE_WCEMIPSV2

Definition COFF.h:122

@ IMAGE_FILE_MACHINE_ARM64

Definition COFF.h:101

@ IMAGE_FILE_MACHINE_IA64

Definition COFF.h:106

@ IMAGE_FILE_MACHINE_POWERPCFP

Definition COFF.h:112

@ IMAGE_FILE_MACHINE_POWERPC

Definition COFF.h:111

@ IMAGE_FILE_MACHINE_SH5

Definition COFF.h:120

@ IMAGE_FILE_MACHINE_UNKNOWN

Definition COFF.h:96

@ IMAGE_FILE_MACHINE_MIPS16

Definition COFF.h:108

@ IMAGE_FILE_MACHINE_THUMB

Definition COFF.h:121

@ IMAGE_FILE_MACHINE_AMD64

Definition COFF.h:98

@ IMAGE_FILE_MACHINE_ARM64EC

Definition COFF.h:102

@ IMAGE_FILE_MACHINE_MIPSFPU16

Definition COFF.h:110

@ IMAGE_FILE_MACHINE_AM33

Definition COFF.h:97

@ IMAGE_FILE_MACHINE_R4000

Definition COFF.h:113

@ IMAGE_FILE_MACHINE_M32R

Definition COFF.h:107

@ IMAGE_FILE_MACHINE_MIPSFPU

Definition COFF.h:109

@ IMAGE_FILE_MACHINE_RISCV64

Definition COFF.h:115

@ IMAGE_FILE_MACHINE_RISCV32

Definition COFF.h:114

@ IMAGE_FILE_MACHINE_SH3DSP

Definition COFF.h:118

@ IMAGE_FILE_MACHINE_I386

Definition COFF.h:105

@ MT_Invalid

Definition COFF.h:94

@ IMAGE_FILE_MACHINE_RISCV128

Definition COFF.h:116

@ IMAGE_FILE_MACHINE_ARM64X

Definition COFF.h:103

@ IMAGE_FILE_MACHINE_SH4

Definition COFF.h:119

@ IMAGE_FILE_MACHINE_EBC

Definition COFF.h:104

@ IMAGE_FILE_MACHINE_ARM

Definition COFF.h:99

@ IMAGE_FILE_MACHINE_ARMNT

Definition COFF.h:100

@ IMAGE_FILE_MACHINE_SH3

Definition COFF.h:117

SectionCharacteristics

Definition COFF.h:298

@ IMAGE_SCN_ALIGN_64BYTES

Definition COFF.h:321

@ IMAGE_SCN_ALIGN_128BYTES

Definition COFF.h:322

@ IMAGE_SCN_MEM_NOT_PAGED

Definition COFF.h:333

@ IMAGE_SCN_LNK_OTHER

Definition COFF.h:306

@ IMAGE_SCN_MEM_SHARED

Definition COFF.h:334

@ IMAGE_SCN_ALIGN_256BYTES

Definition COFF.h:323

@ IMAGE_SCN_GPREL

Definition COFF.h:310

@ IMAGE_SCN_ALIGN_1024BYTES

Definition COFF.h:325

@ IMAGE_SCN_ALIGN_1BYTES

Definition COFF.h:315

@ IMAGE_SCN_LNK_REMOVE

Definition COFF.h:308

@ IMAGE_SCN_CNT_CODE

Definition COFF.h:303

@ IMAGE_SCN_MEM_NOT_CACHED

Definition COFF.h:332

@ IMAGE_SCN_MEM_READ

Definition COFF.h:336

@ IMAGE_SCN_MEM_EXECUTE

Definition COFF.h:335

@ IMAGE_SCN_ALIGN_512BYTES

Definition COFF.h:324

@ IMAGE_SCN_CNT_UNINITIALIZED_DATA

Definition COFF.h:305

@ IMAGE_SCN_MEM_DISCARDABLE

Definition COFF.h:331

@ IMAGE_SCN_LNK_INFO

Definition COFF.h:307

@ IMAGE_SCN_ALIGN_4096BYTES

Definition COFF.h:327

@ IMAGE_SCN_MEM_16BIT

Definition COFF.h:312

@ IMAGE_SCN_CNT_INITIALIZED_DATA

Definition COFF.h:304

@ IMAGE_SCN_ALIGN_MASK

Definition COFF.h:329

@ IMAGE_SCN_ALIGN_8192BYTES

Definition COFF.h:328

@ IMAGE_SCN_MEM_PRELOAD

Definition COFF.h:314

@ IMAGE_SCN_LNK_NRELOC_OVFL

Definition COFF.h:330

@ IMAGE_SCN_ALIGN_16BYTES

Definition COFF.h:319

@ IMAGE_SCN_TYPE_NO_PAD

Definition COFF.h:302

@ IMAGE_SCN_MEM_PURGEABLE

Definition COFF.h:311

@ IMAGE_SCN_LNK_COMDAT

Definition COFF.h:309

@ IMAGE_SCN_ALIGN_8BYTES

Definition COFF.h:318

@ IMAGE_SCN_ALIGN_4BYTES

Definition COFF.h:317

@ IMAGE_SCN_ALIGN_32BYTES

Definition COFF.h:320

@ IMAGE_SCN_ALIGN_2BYTES

Definition COFF.h:316

@ SC_Invalid

Definition COFF.h:299

@ IMAGE_SCN_ALIGN_2048BYTES

Definition COFF.h:326

@ IMAGE_SCN_MEM_WRITE

Definition COFF.h:337

@ IMAGE_SCN_MEM_LOCKED

Definition COFF.h:313

@ IMAGE_SCN_TYPE_NOLOAD

Definition COFF.h:301

bool isAnyArm64(T Machine)

Definition COFF.h:130

ImportType

Definition COFF.h:751

@ IMPORT_CONST

Definition COFF.h:754

@ IMPORT_CODE

Definition COFF.h:752

@ IMPORT_DATA

Definition COFF.h:753

DebugType

Definition COFF.h:717

@ IMAGE_DEBUG_TYPE_OMAP_FROM_SRC

Definition COFF.h:726

@ IMAGE_DEBUG_TYPE_FIXUP

Definition COFF.h:724

@ IMAGE_DEBUG_TYPE_REPRO

Definition COFF.h:734

@ IMAGE_DEBUG_TYPE_ILTCG

Definition COFF.h:732

@ IMAGE_DEBUG_TYPE_BORLAND

Definition COFF.h:727

@ IMAGE_DEBUG_TYPE_COFF

Definition COFF.h:719

@ IMAGE_DEBUG_TYPE_POGO

Definition COFF.h:731

@ IMAGE_DEBUG_TYPE_VC_FEATURE

Definition COFF.h:730

@ IMAGE_DEBUG_TYPE_CODEVIEW

Definition COFF.h:720

@ IMAGE_DEBUG_TYPE_OMAP_TO_SRC

Definition COFF.h:725

@ IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS

Definition COFF.h:735

@ IMAGE_DEBUG_TYPE_MPX

Definition COFF.h:733

@ IMAGE_DEBUG_TYPE_UNKNOWN

Definition COFF.h:718

@ IMAGE_DEBUG_TYPE_FPO

Definition COFF.h:721

@ IMAGE_DEBUG_TYPE_MISC

Definition COFF.h:722

@ IMAGE_DEBUG_TYPE_EXCEPTION

Definition COFF.h:723

@ IMAGE_DEBUG_TYPE_CLSID

Definition COFF.h:729

@ IMAGE_DEBUG_TYPE_RESERVED10

Definition COFF.h:728

RelocationTypesARM64

Definition COFF.h:400

@ IMAGE_REL_ARM64_SECREL

Definition COFF.h:409

@ IMAGE_REL_ARM64_BRANCH19

Definition COFF.h:416

@ IMAGE_REL_ARM64_REL32

Definition COFF.h:418

@ IMAGE_REL_ARM64_TOKEN

Definition COFF.h:413

@ IMAGE_REL_ARM64_SECREL_LOW12A

Definition COFF.h:410

@ IMAGE_REL_ARM64_ADDR32

Definition COFF.h:402

@ IMAGE_REL_ARM64_SECTION

Definition COFF.h:414

@ IMAGE_REL_ARM64_SECREL_HIGH12A

Definition COFF.h:411

@ IMAGE_REL_ARM64_ABSOLUTE

Definition COFF.h:401

@ IMAGE_REL_ARM64_PAGEOFFSET_12A

Definition COFF.h:407

@ IMAGE_REL_ARM64_BRANCH14

Definition COFF.h:417

@ IMAGE_REL_ARM64_BRANCH26

Definition COFF.h:404

@ IMAGE_REL_ARM64_PAGEOFFSET_12L

Definition COFF.h:408

@ IMAGE_REL_ARM64_SECREL_LOW12L

Definition COFF.h:412

@ IMAGE_REL_ARM64_ADDR32NB

Definition COFF.h:403

@ IMAGE_REL_ARM64_PAGEBASE_REL21

Definition COFF.h:405

@ IMAGE_REL_ARM64_REL21

Definition COFF.h:406

@ IMAGE_REL_ARM64_ADDR64

Definition COFF.h:415

GuardFlags

Definition COFF.h:776

@ CF_FUNCTION_TABLE_SIZE_5BYTES

Definition COFF.h:804

@ CF_FUNCTION_TABLE_SIZE_7BYTES

Definition COFF.h:806

@ CF_FUNCTION_TABLE_SIZE_17BYTES

Definition COFF.h:816

@ PROTECT_DELAYLOAD_IAT

Module supports read only delay load IAT.

Definition COFF.h:787

@ CF_FUNCTION_TABLE_SIZE_6BYTES

Definition COFF.h:805

@ DELAYLOAD_IAT_IN_ITS_OWN_SECTION

Delayload import table in its own .didat section (with nothing else in it) that can be freely reprote...

Definition COFF.h:790

@ CF_EXPORT_SUPPRESSION_INFO_PRESENT

Module contains suppressed export information.

Definition COFF.h:793

@ CF_INSTRUMENTED

Module performs control flow integrity checks using system-supplied support.

Definition COFF.h:779

@ EH_CONTINUATION_TABLE_PRESENT

Module contains EH continuation target information.

Definition COFF.h:799

@ CF_FUNCTION_TABLE_SIZE_18BYTES

Definition COFF.h:817

@ CF_FUNCTION_TABLE_SIZE_19BYTES

Definition COFF.h:818

@ CF_FUNCTION_TABLE_SIZE_15BYTES

Definition COFF.h:814

@ CF_FUNCTION_TABLE_SIZE_MASK

Mask for the subfield that contains the stride of Control Flow Guard function table entries (that is,...

Definition COFF.h:803

@ CF_FUNCTION_TABLE_SIZE_13BYTES

Definition COFF.h:812

@ CF_LONGJUMP_TABLE_PRESENT

Module contains longjmp target information.

Definition COFF.h:797

@ CF_FUNCTION_TABLE_SIZE_8BYTES

Definition COFF.h:807

@ CF_FUNCTION_TABLE_PRESENT

Module contains valid control flow target metadata.

Definition COFF.h:783

@ SECURITY_COOKIE_UNUSED

Module does not make use of the /GS security cookie.

Definition COFF.h:785

@ CF_FUNCTION_TABLE_SIZE_16BYTES

Definition COFF.h:815

@ CF_FUNCTION_TABLE_SIZE_11BYTES

Definition COFF.h:810

@ CF_FUNCTION_TABLE_SIZE_12BYTES

Definition COFF.h:811

@ CFW_INSTRUMENTED

Module performs control flow and write integrity checks.

Definition COFF.h:781

@ CF_FUNCTION_TABLE_SIZE_9BYTES

Definition COFF.h:808

@ CF_FUNCTION_TABLE_SIZE_10BYTES

Definition COFF.h:809

@ CF_FUNCTION_TABLE_SIZE_14BYTES

Definition COFF.h:813

@ CF_ENABLE_EXPORT_SUPPRESSION

Module enables suppression of exports.

Definition COFF.h:795

RelocationTypeAMD64

Definition COFF.h:360

@ IMAGE_REL_AMD64_REL32

Definition COFF.h:365

@ IMAGE_REL_AMD64_TOKEN

Definition COFF.h:374

@ IMAGE_REL_AMD64_REL32_5

Definition COFF.h:370

@ IMAGE_REL_AMD64_ADDR64

Definition COFF.h:362

@ IMAGE_REL_AMD64_REL32_3

Definition COFF.h:368

@ IMAGE_REL_AMD64_ADDR32NB

Definition COFF.h:364

@ IMAGE_REL_AMD64_SREL32

Definition COFF.h:375

@ IMAGE_REL_AMD64_ADDR32

Definition COFF.h:363

@ IMAGE_REL_AMD64_ABSOLUTE

Definition COFF.h:361

@ IMAGE_REL_AMD64_PAIR

Definition COFF.h:376

@ IMAGE_REL_AMD64_SECTION

Definition COFF.h:371

@ IMAGE_REL_AMD64_REL32_2

Definition COFF.h:367

@ IMAGE_REL_AMD64_REL32_1

Definition COFF.h:366

@ IMAGE_REL_AMD64_SECREL

Definition COFF.h:372

@ IMAGE_REL_AMD64_SECREL7

Definition COFF.h:373

@ IMAGE_REL_AMD64_REL32_4

Definition COFF.h:369

@ IMAGE_REL_AMD64_SSPAN32

Definition COFF.h:377

DataDirectoryIndex

Definition COFF.h:630

@ ARCHITECTURE

Definition COFF.h:638

@ IAT

Definition COFF.h:643

@ CERTIFICATE_TABLE

Definition COFF.h:635

@ TLS_TABLE

Definition COFF.h:640

@ EXCEPTION_TABLE

Definition COFF.h:634

@ GLOBAL_PTR

Definition COFF.h:639

@ EXPORT_TABLE

Definition COFF.h:631

@ LOAD_CONFIG_TABLE

Definition COFF.h:641

@ IMPORT_TABLE

Definition COFF.h:632

@ DELAY_IMPORT_DESCRIPTOR

Definition COFF.h:644

@ CLR_RUNTIME_HEADER

Definition COFF.h:645

@ RESOURCE_TABLE

Definition COFF.h:633

@ DEBUG_DIRECTORY

Definition COFF.h:637

@ BASE_RELOCATION_TABLE

Definition COFF.h:636

@ NUM_DATA_DIRECTORIES

Definition COFF.h:647

@ BOUND_IMPORT

Definition COFF.h:642

SymbolStorageClass

Storage class tells where and what the symbol represents.

Definition COFF.h:218

@ IMAGE_SYM_CLASS_MEMBER_OF_UNION

Member of union.

Definition COFF.h:233

@ IMAGE_SYM_CLASS_AUTOMATIC

Stack variable.

Definition COFF.h:223

@ SSC_Invalid

Definition COFF.h:219

@ IMAGE_SYM_CLASS_BIT_FIELD

Bit field.

Definition COFF.h:240

@ IMAGE_SYM_CLASS_REGISTER

Register variable.

Definition COFF.h:226

@ IMAGE_SYM_CLASS_SECTION

Line number, reformatted as symbol.

Definition COFF.h:248

@ IMAGE_SYM_CLASS_REGISTER_PARAM

Register parameter.

Definition COFF.h:239

@ IMAGE_SYM_CLASS_END_OF_STRUCT

End of structure.

Definition COFF.h:245

@ IMAGE_SYM_CLASS_MEMBER_OF_ENUM

Member of enumeration.

Definition COFF.h:238

@ IMAGE_SYM_CLASS_EXTERNAL_DEF

External definition.

Definition COFF.h:227

@ IMAGE_SYM_CLASS_TYPE_DEFINITION

Type definition.

Definition COFF.h:235

@ IMAGE_SYM_CLASS_MEMBER_OF_STRUCT

Member of structure.

Definition COFF.h:230

@ IMAGE_SYM_CLASS_BLOCK

".bb" or ".eb" - beginning or end of block

Definition COFF.h:242

@ IMAGE_SYM_CLASS_ENUM_TAG

Enumeration tag.

Definition COFF.h:237

@ IMAGE_SYM_CLASS_UNION_TAG

Union tag.

Definition COFF.h:234

@ IMAGE_SYM_CLASS_FUNCTION

".bf" or ".ef" - beginning or end of function

Definition COFF.h:244

@ IMAGE_SYM_CLASS_STRUCT_TAG

Structure tag.

Definition COFF.h:232

@ IMAGE_SYM_CLASS_EXTERNAL

External symbol.

Definition COFF.h:224

@ IMAGE_SYM_CLASS_LABEL

Label.

Definition COFF.h:228

@ IMAGE_SYM_CLASS_ARGUMENT

Function argument.

Definition COFF.h:231

@ IMAGE_SYM_CLASS_END_OF_FUNCTION

Physical end of function.

Definition COFF.h:221

@ IMAGE_SYM_CLASS_FILE

File name.

Definition COFF.h:246

@ IMAGE_SYM_CLASS_UNDEFINED_STATIC

Undefined static.

Definition COFF.h:236

@ IMAGE_SYM_CLASS_CLR_TOKEN

External symbol in dmert public lib.

Definition COFF.h:251

@ IMAGE_SYM_CLASS_NULL

No symbol.

Definition COFF.h:222

@ IMAGE_SYM_CLASS_UNDEFINED_LABEL

Undefined label.

Definition COFF.h:229

@ IMAGE_SYM_CLASS_WEAK_EXTERNAL

Duplicate tag.

Definition COFF.h:249

@ IMAGE_SYM_CLASS_STATIC

Static.

Definition COFF.h:225

LLVM_ABI bool encodeSectionName(char *Out, uint64_t Offset)

Encode section name based on string table offset.

Arm64XFixupType

Definition COFF.h:448

@ IMAGE_DVRT_ARM64X_FIXUP_TYPE_VALUE

Definition COFF.h:450

@ IMAGE_DVRT_ARM64X_FIXUP_TYPE_DELTA

Definition COFF.h:451

@ IMAGE_DVRT_ARM64X_FIXUP_TYPE_ZEROFILL

Definition COFF.h:449

ExtendedDLLCharacteristics

Definition COFF.h:695

@ IMAGE_DLL_CHARACTERISTICS_EX_CET_COMPAT_STRICT_MODE

Image is CET compatible in strict mode.

Definition COFF.h:699

@ IMAGE_DLL_CHARACTERISTICS_EX_CET_RESERVED_1

Reserved for future use. Not used by MSVC link.exe.

Definition COFF.h:708

@ IMAGE_DLL_CHARACTERISTICS_EX_CET_RESERVED_2

Reserved for future use. Not used by MSVC link.exe.

Definition COFF.h:710

@ IMAGE_DLL_CHARACTERISTICS_EX_CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE

Image is CET compatible in such a way that context IP validation is relaxed.

Definition COFF.h:702

@ IMAGE_DLL_CHARACTERISTICS_EX_FORWARD_CFI_COMPAT

Image is CFI compatible.

Definition COFF.h:712

@ IMAGE_DLL_CHARACTERISTICS_EX_CET_COMPAT

Image is CET compatible.

Definition COFF.h:697

@ IMAGE_DLL_CHARACTERISTICS_EX_HOTPATCH_COMPATIBLE

Image is hotpatch compatible.

Definition COFF.h:714

@ IMAGE_DLL_CHARACTERISTICS_EX_CET_DYNAMIC_APIS_ALLOW_IN_PROC_ONLY

Image is CET compatible in such a way that the use of dynamic APIs is restricted to processes only.

Definition COFF.h:706

ResourceTypeID

Definition COFF.h:178

@ RID_Menu

Definition COFF.h:182

@ RID_AniCursor

Definition COFF.h:196

@ RID_MessageTable

Definition COFF.h:189

@ RID_RCData

Definition COFF.h:188

@ RID_Accelerator

Definition COFF.h:187

@ RID_FontDir

Definition COFF.h:185

@ RID_VXD

Definition COFF.h:195

@ RID_Bitmap

Definition COFF.h:180

@ RID_HTML

Definition COFF.h:198

@ RID_Manifest

Definition COFF.h:199

@ RID_Version

Definition COFF.h:192

@ RID_AniIcon

Definition COFF.h:197

@ RID_DLGInclude

Definition COFF.h:193

@ RID_Group_Cursor

Definition COFF.h:190

@ RID_Group_Icon

Definition COFF.h:191

@ RID_Icon

Definition COFF.h:181

@ RID_Font

Definition COFF.h:186

@ RID_Cursor

Definition COFF.h:179

@ RID_Dialog

Definition COFF.h:183

@ RID_PlugPlay

Definition COFF.h:194

@ RID_String

Definition COFF.h:184

WindowsSubsystem

Definition COFF.h:650

@ IMAGE_SUBSYSTEM_EFI_APPLICATION

An EFI application.

Definition COFF.h:659

@ IMAGE_SUBSYSTEM_WINDOWS_CUI

The Windows character subsystem.

Definition COFF.h:654

@ IMAGE_SUBSYSTEM_WINDOWS_CE_GUI

Windows CE.

Definition COFF.h:658

@ IMAGE_SUBSYSTEM_XBOX

XBOX.

Definition COFF.h:665

@ IMAGE_SUBSYSTEM_UNKNOWN

An unknown subsystem.

Definition COFF.h:651

@ IMAGE_SUBSYSTEM_OS2_CUI

The OS/2 character subsystem.

Definition COFF.h:655

@ IMAGE_SUBSYSTEM_NATIVE_WINDOWS

Native Windows 9x driver.

Definition COFF.h:657

@ IMAGE_SUBSYSTEM_EFI_ROM

An EFI ROM image.

Definition COFF.h:664

@ IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER

An EFI driver with run-time services.

Definition COFF.h:662

@ IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER

An EFI driver with boot services.

Definition COFF.h:660

@ IMAGE_SUBSYSTEM_POSIX_CUI

The POSIX character subsystem.

Definition COFF.h:656

@ IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION

A BCD application.

Definition COFF.h:666

@ IMAGE_SUBSYSTEM_WINDOWS_GUI

The Windows GUI subsystem.

Definition COFF.h:653

@ IMAGE_SUBSYSTEM_NATIVE

Device drivers and native Windows processes.

Definition COFF.h:652

static const char WinResMagic[]

Definition COFF.h:49

COMDATType

Definition COFF.h:454

@ IMAGE_COMDAT_SELECT_NODUPLICATES

Definition COFF.h:455

@ IMAGE_COMDAT_SELECT_LARGEST

Definition COFF.h:460

@ IMAGE_COMDAT_SELECT_NEWEST

Definition COFF.h:461

@ IMAGE_COMDAT_SELECT_SAME_SIZE

Definition COFF.h:457

@ IMAGE_COMDAT_SELECT_ASSOCIATIVE

Definition COFF.h:459

@ IMAGE_COMDAT_SELECT_EXACT_MATCH

Definition COFF.h:458

@ IMAGE_COMDAT_SELECT_ANY

Definition COFF.h:456

WeakExternalCharacteristics

Definition COFF.h:487

@ IMAGE_WEAK_EXTERN_SEARCH_ALIAS

Definition COFF.h:490

@ IMAGE_WEAK_EXTERN_ANTI_DEPENDENCY

Definition COFF.h:491

@ IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY

Definition COFF.h:488

@ IMAGE_WEAK_EXTERN_SEARCH_LIBRARY

Definition COFF.h:489

CodeViewIdentifiers

Definition COFF.h:838

@ DEBUG_HASHES_SECTION_MAGIC

Definition COFF.h:840

@ DEBUG_SECTION_MAGIC

Definition COFF.h:839

bool is64Bit(T Machine)

Definition COFF.h:134

RelocationTypesARM

Definition COFF.h:380

@ IMAGE_REL_ARM_MOV32A

Definition COFF.h:392

@ IMAGE_REL_ARM_BRANCH20T

Definition COFF.h:394

@ IMAGE_REL_ARM_BRANCH24

Definition COFF.h:384

@ IMAGE_REL_ARM_ADDR32NB

Definition COFF.h:383

@ IMAGE_REL_ARM_BRANCH11

Definition COFF.h:385

@ IMAGE_REL_ARM_BLX24

Definition COFF.h:387

@ IMAGE_REL_ARM_ADDR32

Definition COFF.h:382

@ IMAGE_REL_ARM_MOV32T

Definition COFF.h:393

@ IMAGE_REL_ARM_BRANCH24T

Definition COFF.h:395

@ IMAGE_REL_ARM_PAIR

Definition COFF.h:397

@ IMAGE_REL_ARM_ABSOLUTE

Definition COFF.h:381

@ IMAGE_REL_ARM_REL32

Definition COFF.h:389

@ IMAGE_REL_ARM_BLX23T

Definition COFF.h:396

@ IMAGE_REL_ARM_SECREL

Definition COFF.h:391

@ IMAGE_REL_ARM_SECTION

Definition COFF.h:390

@ IMAGE_REL_ARM_BLX11

Definition COFF.h:388

@ IMAGE_REL_ARM_TOKEN

Definition COFF.h:386

bool isArm64EC(T Machine)

Definition COFF.h:125

const int32_t MaxNumberOfSections16

Definition COFF.h:33

ImportNameType

Definition COFF.h:757

@ IMPORT_ORDINAL

Import is by ordinal.

Definition COFF.h:762

@ IMPORT_NAME_EXPORTAS

The import name is specified as a separate string in the import library object file.

Definition COFF.h:773

@ IMPORT_NAME

The import name is identical to the public symbol name.

Definition COFF.h:764

@ IMPORT_NAME_UNDECORATE

The import name is the public symbol name, but skipping the leading ?

Definition COFF.h:770

@ IMPORT_NAME_NOPREFIX

The import name is the public symbol name, but skipping the leading ?

Definition COFF.h:767

bool isReservedSectionNumber(int32_t SectionNumber)

Definition COFF.h:866

RelocationTypeI386

Definition COFF.h:346

@ IMAGE_REL_I386_TOKEN

Definition COFF.h:355

@ IMAGE_REL_I386_SECTION

Definition COFF.h:353

@ IMAGE_REL_I386_SECREL7

Definition COFF.h:356

@ IMAGE_REL_I386_REL32

Definition COFF.h:357

@ IMAGE_REL_I386_REL16

Definition COFF.h:349

@ IMAGE_REL_I386_DIR16

Definition COFF.h:348

@ IMAGE_REL_I386_SECREL

Definition COFF.h:354

@ IMAGE_REL_I386_DIR32

Definition COFF.h:350

@ IMAGE_REL_I386_ABSOLUTE

Definition COFF.h:347

@ IMAGE_REL_I386_SEG12

Definition COFF.h:352

@ IMAGE_REL_I386_DIR32NB

Definition COFF.h:351

SymbolBaseType

Definition COFF.h:254

@ IMAGE_SYM_TYPE_DOUBLE

An 8-byte floating-point number.

Definition COFF.h:262

@ IMAGE_SYM_TYPE_DWORD

An unsigned 4-byte integer.

Definition COFF.h:270

@ IMAGE_SYM_TYPE_STRUCT

A structure.

Definition COFF.h:263

@ IMAGE_SYM_TYPE_SHORT

A 2-byte signed integer.

Definition COFF.h:258

@ IMAGE_SYM_TYPE_UINT

An unsigned integer of natural size.

Definition COFF.h:269

@ IMAGE_SYM_TYPE_NULL

No type information or unknown base type.

Definition COFF.h:255

@ IMAGE_SYM_TYPE_CHAR

A character (signed byte).

Definition COFF.h:257

@ IMAGE_SYM_TYPE_ENUM

An enumerated type.

Definition COFF.h:265

@ IMAGE_SYM_TYPE_FLOAT

A 4-byte floating-point number.

Definition COFF.h:261

@ IMAGE_SYM_TYPE_INT

A natural integer type on the target.

Definition COFF.h:259

@ IMAGE_SYM_TYPE_LONG

A 4-byte signed integer.

Definition COFF.h:260

@ IMAGE_SYM_TYPE_UNION

An union.

Definition COFF.h:264

@ IMAGE_SYM_TYPE_MOE

A member of enumeration (a specific value).

Definition COFF.h:266

@ IMAGE_SYM_TYPE_BYTE

A byte; unsigned 1-byte integer.

Definition COFF.h:267

@ IMAGE_SYM_TYPE_WORD

A word; unsigned 2-byte integer.

Definition COFF.h:268

@ IMAGE_SYM_TYPE_VOID

Used with void pointers and functions.

Definition COFF.h:256

Arm64ECThunkType

Definition COFF.h:860

@ GuestExit

Definition COFF.h:861

@ Entry

Definition COFF.h:862

@ Exit

Definition COFF.h:863

static const char BigObjMagic[]

Definition COFF.h:38

Characteristics

Definition COFF.h:138

@ IMAGE_FILE_LINE_NUMS_STRIPPED

COFF line numbers have been stripped.

Definition COFF.h:148

@ C_Invalid

Definition COFF.h:139

@ IMAGE_FILE_DEBUG_STRIPPED

Debugging info has been removed.

Definition COFF.h:162

@ IMAGE_FILE_DLL

The image file is a DLL.

Definition COFF.h:170

@ IMAGE_FILE_AGGRESSIVE_WS_TRIM

Aggressively trim working set. This is deprecated and must be 0.

Definition COFF.h:153

@ IMAGE_FILE_BYTES_REVERSED_LO

Little endian: the LSB precedes the MSB in memory.

Definition COFF.h:158

@ IMAGE_FILE_UP_SYSTEM_ONLY

This file should only be run on a uniprocessor machine.

Definition COFF.h:172

@ IMAGE_FILE_LARGE_ADDRESS_AWARE

Image can handle > 2GiB addresses.

Definition COFF.h:155

@ IMAGE_FILE_BYTES_REVERSED_HI

Big endian: the MSB precedes the LSB in memory.

Definition COFF.h:175

@ IMAGE_FILE_SYSTEM

The image file is a system file, not a user program.

Definition COFF.h:168

@ IMAGE_FILE_32BIT_MACHINE

Machine is based on a 32bit word architecture.

Definition COFF.h:160

@ IMAGE_FILE_LOCAL_SYMS_STRIPPED

COFF symbol table entries for local symbols have been removed.

Definition COFF.h:151

@ IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP

If the image is on removable media, fully load it and copy it to swap.

Definition COFF.h:164

@ IMAGE_FILE_EXECUTABLE_IMAGE

The file is valid and can be run.

Definition COFF.h:145

@ IMAGE_FILE_NET_RUN_FROM_SWAP

If the image is on network media, fully load it and copy it to swap.

Definition COFF.h:166

@ IMAGE_FILE_RELOCS_STRIPPED

The file does not contain base relocations and must be loaded at its preferred base.

Definition COFF.h:143

static const char PEMagic[]

Definition COFF.h:36

Feat00Flags

Definition COFF.h:845

@ SafeSEH

Definition COFF.h:847

@ GuardEHCont

Definition COFF.h:855

@ SDL

Definition COFF.h:851

@ GuardStack

Definition COFF.h:849

@ GuardCF

Definition COFF.h:853

@ Kernel

Definition COFF.h:857

SymbolSectionNumber

Definition COFF.h:211

@ IMAGE_SYM_DEBUG

Definition COFF.h:212

@ IMAGE_SYM_UNDEFINED

Definition COFF.h:214

@ IMAGE_SYM_ABSOLUTE

Definition COFF.h:213

SymbolComplexType

Definition COFF.h:273

@ IMAGE_SYM_DTYPE_ARRAY

An array of base type.

Definition COFF.h:277

@ IMAGE_SYM_DTYPE_NULL

No complex type; simple scalar variable.

Definition COFF.h:274

@ IMAGE_SYM_DTYPE_POINTER

A pointer to base type.

Definition COFF.h:275

@ IMAGE_SYM_DTYPE_FUNCTION

A function that returns a base type.

Definition COFF.h:276

@ SCT_COMPLEX_TYPE_SHIFT

Type is formed as (base + (derived << SCT_COMPLEX_TYPE_SHIFT))

Definition COFF.h:280

This is an optimization pass for GlobalISel generic memory operations.

uint32_t SymbolTableIndex

Definition COFF.h:507

char unused2[12]

Definition COFF.h:508

uint8_t unused1

Definition COFF.h:506

uint8_t AuxType

Definition COFF.h:505

uint32_t PointerToNextFunction

Definition COFF.h:469

char unused[2]

Definition COFF.h:470

uint32_t PointerToLinenumber

Definition COFF.h:468

uint32_t TotalSize

Definition COFF.h:467

uint32_t TagIndex

Definition COFF.h:466

uint8_t Selection

Definition COFF.h:500

uint16_t NumberOfRelocations

Definition COFF.h:496

uint16_t NumberOfLinenumbers

Definition COFF.h:497

char unused

Definition COFF.h:501

uint32_t Length

Definition COFF.h:495

uint32_t Number

Definition COFF.h:499

uint32_t CheckSum

Definition COFF.h:498

uint8_t unused[10]

Definition COFF.h:484

uint32_t TagIndex

Definition COFF.h:482

uint32_t Characteristics

Definition COFF.h:483

uint8_t unused1[4]

Definition COFF.h:474

uint16_t Linenumber

Definition COFF.h:475

uint8_t unused3[2]

Definition COFF.h:478

uint32_t PointerToNextFunction

Definition COFF.h:477

uint8_t unused2[6]

Definition COFF.h:476

uint32_t RelativeVirtualAddress

Definition COFF.h:626

uint32_t Size

Definition COFF.h:627

The Import Directory Table.

Definition COFF.h:521

uint32_t ForwarderChain

Definition COFF.h:524

uint32_t ImportLookupTableRVA

Definition COFF.h:522

uint32_t NameRVA

Definition COFF.h:525

uint32_t TimeDateStamp

Definition COFF.h:523

uint32_t ImportAddressTableRVA

Definition COFF.h:526

The PE32 Import Lookup Table.

Definition COFF.h:537

uint32_t data

Definition COFF.h:538

uint32_t getHintNameRVA() const

Get the Hint/Name entry RVA. isOrdinal must be false.

Definition COFF.h:556

void setHintNameRVA(uint32_t rva)

Set the Hint/Name entry RVA and set isOrdinal to false.

Definition COFF.h:562

void setOrdinal(uint16_t o)

Set the ordinal value and set isOrdinal to true.

Definition COFF.h:550

uint16_t getOrdinal() const

Get the ordinal value of this entry. isOrdinal must be true.

Definition COFF.h:544

bool isOrdinal() const

Is this entry specified by ordinal, or name?

Definition COFF.h:541

uint32_t VirtualAddress

Definition COFF.h:341

uint32_t SymbolTableIndex

Definition COFF.h:342

uint16_t Type

Definition COFF.h:343

uint32_t VirtualSize

Definition COFF.h:287

uint32_t PointerToRelocations

Definition COFF.h:291

uint16_t NumberOfLineNumbers

Definition COFF.h:294

uint32_t PointerToRawData

Definition COFF.h:290

uint32_t SizeOfRawData

Definition COFF.h:289

uint32_t Characteristics

Definition COFF.h:295

uint16_t NumberOfRelocations

Definition COFF.h:293

char Name[NameSize]

Definition COFF.h:286

uint32_t VirtualAddress

Definition COFF.h:288

uint32_t PointerToLineNumbers

Definition COFF.h:292

uint8_t StorageClass

Definition COFF.h:207

int32_t SectionNumber

Definition COFF.h:205

uint8_t NumberOfAuxSymbols

Definition COFF.h:208

uint16_t Type

Definition COFF.h:206

uint32_t Value

Definition COFF.h:204

char Name[NameSize]

Definition COFF.h:203

AuxiliarybfAndefSymbol bfAndefSymbol

Definition COFF.h:513

AuxiliaryFunctionDefinition FunctionDefinition

Definition COFF.h:512

AuxiliarySectionDefinition SectionDefinition

Definition COFF.h:515

AuxiliaryWeakExternal WeakExternal

Definition COFF.h:514