mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-26 04:20:30 +00:00
Add UEFI support
This is mutually exclusive with Windows support. Documentation for how to use it has been written in libc/runtime/efimain.c
This commit is contained in:
parent
c6c9b5dfde
commit
537c21338b
24 changed files with 1381 additions and 391 deletions
424
libc/nt/efi.h
Normal file
424
libc/nt/efi.h
Normal file
|
@ -0,0 +1,424 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_NT_EFI_H_
|
||||
#define COSMOPOLITAN_LIBC_NT_EFI_H_
|
||||
/*
|
||||
▐██ ░█████████▓ ▐██▌ ██▓░ ▐█▌ ▐██ ░██░ ▓█▌ ▓██▒ ▓██
|
||||
▐██ ░██░ ▒█▓██░ ████░ ▐█▌ ▐██ ░██░ ▓█▌ ▓███░ ▓███
|
||||
▐██ ░██░ ██░▐█▓ ██▒▓█░ ▐█▌ ▐██ ░██░ ▓█▌ ▓█▌▓█░ ▓█▒██
|
||||
▐██ ░██░ ▐█▌ ▓█▌ ██░░▓█░▐█▌ ▐██ ░██░ ▓█▌ ▓█▌░█▓▓█▒░██
|
||||
▐██ ░██░ ▒██▓█████░ ██░ ░▓▓▓█▌ ▐██ ░██░ ██░ ▓█▌ ░██▌ ░██
|
||||
▐██ ░██░ ▓█▌ ▓█▓ ██░ ░███▌ ▐██ ▐██▄▄▄▓█▓ ▓█▌ ░██
|
||||
╔────────────────────────────────────────────────────────────────────────────│─╗
|
||||
│ αcτµαlly pδrταblε εxεcµταblε § the unified extensible firmware interface ─╬─│┼
|
||||
╚────────────────────────────────────────────────────────────────────────────│*/
|
||||
|
||||
#define EFI_SUCCESS 0x8000000000000000
|
||||
#define EFI_LOAD_ERROR 0x8000000000000001
|
||||
#define EFI_INVALID_PARAMETER 0x8000000000000002
|
||||
#define EFI_UNSUPPORTED 0x8000000000000003
|
||||
#define EFI_BAD_BUFFER_SIZE 0x8000000000000004
|
||||
#define EFI_BUFFER_TOO_SMALL 0x8000000000000005
|
||||
#define EFI_NOT_READY 0x8000000000000006
|
||||
#define EFI_DEVICE_ERROR 0x8000000000000007
|
||||
#define EFI_WRITE_PROTECTED 0x8000000000000008
|
||||
#define EFI_OUT_OF_RESOURCES 0x8000000000000009
|
||||
#define EFI_VOLUME_CORRUPTED 0x800000000000000a
|
||||
#define EFI_VOLUME_FULL 0x800000000000000b
|
||||
#define EFI_NO_MEDIA 0x800000000000000c
|
||||
#define EFI_MEDIA_CHANGED 0x800000000000000d
|
||||
#define EFI_NOT_FOUND 0x800000000000000e
|
||||
#define EFI_ACCESS_DENIED 0x800000000000000f
|
||||
#define EFI_NO_RESPONSE 0x8000000000000010
|
||||
#define EFI_NO_MAPPING 0x8000000000000011
|
||||
#define EFI_TIMEOUT 0x8000000000000012
|
||||
#define EFI_NOT_STARTED 0x8000000000000013
|
||||
#define EFI_ALREADY_STARTED 0x8000000000000014
|
||||
#define EFI_ABORTED 0x8000000000000015
|
||||
#define EFI_ICMP_ERROR 0x8000000000000016
|
||||
#define EFI_TFTP_ERROR 0x8000000000000017
|
||||
#define EFI_PROTOCOL_ERROR 0x8000000000000018
|
||||
|
||||
#define EFI_VARIABLE_NON_VOLATILE 0x00000001
|
||||
#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002
|
||||
#define EFI_VARIABLE_RUNTIME_ACCESS 0x00000004
|
||||
#define EFI_VARIABLE_HARDWARE_ERROR_RECORD 0x00000008
|
||||
#define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 0x00000010
|
||||
#define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS 0x00000020
|
||||
#define EFI_VARIABLE_APPEND_WRITE 0x00000040
|
||||
|
||||
#define EFI_MEMORY_UC 0x0000000000000001U
|
||||
#define EFI_MEMORY_WC 0x0000000000000002U
|
||||
#define EFI_MEMORY_WT 0x0000000000000004U
|
||||
#define EFI_MEMORY_WB 0x0000000000000008U
|
||||
#define EFI_MEMORY_UCE 0x0000000000000010U
|
||||
#define EFI_MEMORY_WP 0x0000000000001000U
|
||||
#define EFI_MEMORY_RP 0x0000000000002000U
|
||||
#define EFI_MEMORY_XP 0x0000000000004000U
|
||||
#define EFI_MEMORY_RO 0x0000000000020000U
|
||||
#define EFI_MEMORY_NV 0x0000000000008000U
|
||||
#define EFI_MEMORY_MORE_RELIABLE 0x0000000000010000U
|
||||
#define EFI_MEMORY_RUNTIME 0x8000000000000000U
|
||||
|
||||
#define EFI_OPTIONAL_PTR 0x00000001
|
||||
|
||||
#define EFI_SCAN_NULL 0x0000
|
||||
#define EFI_SCAN_UP 0x0001
|
||||
#define EFI_SCAN_DOWN 0x0002
|
||||
#define EFI_SCAN_RIGHT 0x0003
|
||||
#define EFI_SCAN_LEFT 0x0004
|
||||
#define EFI_SCAN_HOME 0x0005
|
||||
#define EFI_SCAN_END 0x0006
|
||||
#define EFI_SCAN_INSERT 0x0007
|
||||
#define EFI_SCAN_DELETE 0x0008
|
||||
#define EFI_SCAN_PAGE_UP 0x0009
|
||||
#define EFI_SCAN_PAGE_DOWN 0x000A
|
||||
#define EFI_SCAN_F1 0x000B
|
||||
#define EFI_SCAN_F2 0x000C
|
||||
#define EFI_SCAN_F3 0x000D
|
||||
#define EFI_SCAN_F4 0x000E
|
||||
#define EFI_SCAN_F5 0x000F
|
||||
#define EFI_SCAN_F6 0x0010
|
||||
#define EFI_SCAN_F7 0x0011
|
||||
#define EFI_SCAN_F8 0x0012
|
||||
#define EFI_SCAN_F9 0x0013
|
||||
#define EFI_SCAN_F10 0x0014
|
||||
#define EFI_SCAN_ESC 0x0017
|
||||
|
||||
#define EFI_EVT_TIMER 0x80000000
|
||||
#define EFI_EVT_RUNTIME 0x40000000
|
||||
#define EFI_EVT_NOTIFY_WAIT 0x00000100
|
||||
#define EFI_EVT_NOTIFY_SIGNAL 0x00000200
|
||||
#define EFI_EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201
|
||||
#define EFI_EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202
|
||||
#define EFI_EVT_RUNTIME_CONTEXT 0x20000000
|
||||
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
|
||||
#define EFIAPI __attribute__((__ms_abi__))
|
||||
#define EFI_STATUS uint64_t
|
||||
#define EFI_EVENT uintptr_t
|
||||
#define EFI_HANDLE uintptr_t
|
||||
|
||||
typedef struct _EFI_SIMPLE_TEXT_INPUT_PROTOCOL EFI_SIMPLE_TEXT_INPUT_PROTOCOL;
|
||||
typedef struct _EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL;
|
||||
|
||||
typedef enum {
|
||||
EfiReservedMemoryType,
|
||||
EfiLoaderCode,
|
||||
EfiLoaderData,
|
||||
EfiBootServicesCode,
|
||||
EfiBootServicesData,
|
||||
EfiRuntimeServicesCode,
|
||||
EfiRuntimeServicesData,
|
||||
EfiConventionalMemory,
|
||||
EfiUnusableMemory,
|
||||
EfiACPIReclaimMemory,
|
||||
EfiACPIMemoryNVS,
|
||||
EfiMemoryMappedIO,
|
||||
EfiMemoryMappedIOPortSpace,
|
||||
EfiPalCode,
|
||||
EfiPersistentMemory,
|
||||
EfiMaxMemoryType
|
||||
} EFI_MEMORY_TYPE;
|
||||
|
||||
typedef enum {
|
||||
EfiResetCold,
|
||||
EfiResetWarm,
|
||||
EfiResetShutdown,
|
||||
EfiResetPlatformSpecific
|
||||
} EFI_RESET_TYPE;
|
||||
|
||||
typedef enum {
|
||||
AllocateAnyPages,
|
||||
AllocateMaxAddress,
|
||||
AllocateAddress,
|
||||
MaxAllocateType
|
||||
} EFI_ALLOCATE_TYPE;
|
||||
|
||||
typedef enum {
|
||||
TimerCancel,
|
||||
TimerPeriodic,
|
||||
TimerRelative,
|
||||
} EFI_TIMER_DELAY;
|
||||
|
||||
typedef struct {
|
||||
uint32_t Resolution;
|
||||
uint32_t Accuracy;
|
||||
bool SetsToZero;
|
||||
} EFI_TIME_CAPABILITIES;
|
||||
|
||||
typedef struct {
|
||||
uint32_t Data1;
|
||||
uint16_t Data2;
|
||||
uint16_t Data3;
|
||||
uint8_t Data4[8];
|
||||
} EFI_GUID;
|
||||
|
||||
typedef struct {
|
||||
uint16_t Year;
|
||||
uint8_t Month;
|
||||
uint8_t Day;
|
||||
uint8_t Hour;
|
||||
uint8_t Minute;
|
||||
uint8_t Second;
|
||||
uint8_t Pad1;
|
||||
uint32_t Nanosecond;
|
||||
int16_t TimeZone;
|
||||
uint8_t Daylight;
|
||||
uint8_t Pad2;
|
||||
} EFI_TIME;
|
||||
|
||||
typedef struct {
|
||||
uint32_t Type;
|
||||
uint64_t PhysicalStart;
|
||||
uint64_t VirtualStart;
|
||||
uint64_t NumberOfPages;
|
||||
uint64_t Attribute;
|
||||
} EFI_MEMORY_DESCRIPTOR;
|
||||
|
||||
typedef struct {
|
||||
EFI_GUID VendorGuid;
|
||||
void *VendorTable;
|
||||
} EFI_CONFIGURATION_TABLE;
|
||||
|
||||
typedef struct {
|
||||
EFI_GUID CapsuleGuid;
|
||||
uint32_t HeaderSize;
|
||||
uint32_t Flags;
|
||||
uint32_t CapsuleImageSize;
|
||||
} EFI_CAPSULE_HEADER;
|
||||
|
||||
typedef struct {
|
||||
uint16_t ScanCode;
|
||||
char16_t UnicodeChar;
|
||||
} EFI_INPUT_KEY;
|
||||
|
||||
typedef struct {
|
||||
int32_t MaxMode;
|
||||
int32_t Mode;
|
||||
int32_t Attribute;
|
||||
int32_t CursorColumn;
|
||||
int32_t CursorRow;
|
||||
bool CursorVisible;
|
||||
} EFI_SIMPLE_TEXT_OUTPUT_MODE;
|
||||
|
||||
typedef struct {
|
||||
uint64_t Signature;
|
||||
uint32_t Revision;
|
||||
uint32_t HeaderSize;
|
||||
uint32_t CRC32;
|
||||
uint32_t Reserved;
|
||||
} EFI_TABLE_HEADER;
|
||||
|
||||
typedef EFI_STATUS(EFIAPI *EFI_EXIT)(EFI_HANDLE ImageHandle,
|
||||
EFI_STATUS ExitStatus,
|
||||
uintptr_t ExitDataSize,
|
||||
char16_t *opt_ExitData);
|
||||
|
||||
typedef EFI_STATUS(EFIAPI *EFI_GET_VARIABLE)(char16_t *VariableName,
|
||||
EFI_GUID *VendorGuid,
|
||||
uint32_t *outopt_Attributes,
|
||||
uintptr_t *inout_DataSize,
|
||||
void *outopt_Data);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_SET_VARIABLE)(char16_t *VariableName,
|
||||
EFI_GUID *VendorGuid,
|
||||
uint32_t Attributes,
|
||||
uintptr_t DataSize, void *Data);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_GET_NEXT_VARIABLE_NAME)(
|
||||
uintptr_t *inout_VariableNameSize, char16_t *inout_VariableName,
|
||||
EFI_GUID *inout_VendorGuid);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_QUERY_VARIABLE_INFO)(
|
||||
uint32_t Attributes, uint64_t *out_MaximumVariableStorageSize,
|
||||
uint64_t *out_RemainingVariableStorageSize,
|
||||
uint64_t *out_MaximumVariableSize);
|
||||
|
||||
typedef EFI_STATUS(EFIAPI *EFI_ALLOCATE_PAGES)(EFI_ALLOCATE_TYPE Type,
|
||||
EFI_MEMORY_TYPE MemoryType,
|
||||
uintptr_t Pages,
|
||||
uint64_t *inout_Memory);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_FREE_PAGES)(uint64_t Memory, uintptr_t Pages);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_GET_MEMORY_MAP)(
|
||||
uintptr_t *inout_MemoryMapSize, EFI_MEMORY_DESCRIPTOR *inout_MemoryMap,
|
||||
uintptr_t *out_MapKey, uintptr_t *out_DescriptorSize,
|
||||
uint32_t *out_DescriptorVersion);
|
||||
|
||||
typedef EFI_STATUS(EFIAPI *EFI_CHECK_EVENT)(EFI_EVENT Event);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_CLOSE_EVENT)(EFI_EVENT Event);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_SIGNAL_EVENT)(EFI_EVENT Event);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_WAIT_FOR_EVENT)(uintptr_t NumberOfEvents,
|
||||
EFI_EVENT *Events,
|
||||
uintptr_t *out_Index);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_SET_TIMER)(EFI_EVENT Event, EFI_TIMER_DELAY Type,
|
||||
uint64_t TriggerTime);
|
||||
typedef void(EFIAPI *EFI_EVENT_NOTIFY)(EFI_EVENT Event, void *Context);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_CREATE_EVENT)(uint32_t Type, uintptr_t NotifyTpl,
|
||||
EFI_EVENT_NOTIFY NotifyFunction,
|
||||
void *NotifyContext,
|
||||
EFI_EVENT *out_Event);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_CREATE_EVENT_EX)(
|
||||
uint32_t Type, uintptr_t NotifyTpl, EFI_EVENT_NOTIFY opt_NotifyFunction,
|
||||
const void *opt_NotifyContext, const EFI_GUID *opt_EventGroup,
|
||||
EFI_EVENT *out_Event);
|
||||
|
||||
typedef EFI_STATUS(EFIAPI *EFI_UPDATE_CAPSULE)(
|
||||
EFI_CAPSULE_HEADER **CapsuleHeaderArray, uintptr_t CapsuleCount,
|
||||
uint64_t opt_ScatterGatherList);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_QUERY_CAPSULE_CAPABILITIES)(
|
||||
EFI_CAPSULE_HEADER **CapsuleHeaderArray, uintptr_t CapsuleCount,
|
||||
uint64_t *out_MaximumCapsuleSize, EFI_RESET_TYPE *out_ResetType);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_GET_WAKEUP_TIME)(bool *out_Enabled,
|
||||
bool *out_Pending,
|
||||
EFI_TIME *out_Time);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_SET_WAKEUP_TIME)(bool Enable,
|
||||
EFI_TIME *opt_Time);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_SET_WATCHDOG_TIMER)(uintptr_t Timeout,
|
||||
uint64_t WatchdogCode,
|
||||
uintptr_t DataSize,
|
||||
char16_t *opt_WatchdogData);
|
||||
|
||||
typedef EFI_STATUS(EFIAPI *EFI_SET_TIME)(EFI_TIME *Time);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_GET_TIME)(
|
||||
EFI_TIME *out_Time, EFI_TIME_CAPABILITIES *outopt_Capabilities);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_GET_NEXT_HIGH_MONO_COUNT)(
|
||||
uint32_t *out_HighCount);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_STALL)(uintptr_t Microseconds);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_GET_NEXT_MONOTONIC_COUNT)(uint64_t *out_Count);
|
||||
|
||||
typedef EFI_STATUS(EFIAPI *EFI_SET_VIRTUAL_ADDRESS_MAP)(
|
||||
uintptr_t MemoryMapSize, uintptr_t DescriptorSize,
|
||||
uint32_t DescriptorVersion, EFI_MEMORY_DESCRIPTOR *VirtualMap);
|
||||
typedef void(EFIAPI *EFI_RESET_SYSTEM)(EFI_RESET_TYPE ResetType,
|
||||
EFI_STATUS ResetStatus,
|
||||
uintptr_t DataSize, void *opt_ResetData);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_CONVERT_POINTER)(uintptr_t DebugDisposition,
|
||||
void **inout_Address);
|
||||
|
||||
typedef EFI_STATUS(EFIAPI *EFI_INPUT_RESET)(
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This, bool ExtendedVerification);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_INPUT_READ_KEY)(
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This, EFI_INPUT_KEY *out_Key);
|
||||
|
||||
typedef EFI_STATUS(EFIAPI *EFI_TEXT_RESET)(
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, bool ExtendedVerification);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_TEXT_STRING)(
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, char16_t *String);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_TEXT_TEST_STRING)(
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, char16_t *String);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_TEXT_QUERY_MODE)(
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, uint64_t ModeNumber,
|
||||
uint64_t *out_Columns, uint64_t *out_Rows);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_TEXT_SET_MODE)(
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, uint64_t ModeNumber);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_TEXT_SET_ATTRIBUTE)(
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, uint64_t Attribute);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_TEXT_CLEAR_SCREEN)(
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_TEXT_SET_CURSOR_POSITION)(
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, uint64_t Column, uint64_t Row);
|
||||
typedef EFI_STATUS(EFIAPI *EFI_TEXT_ENABLE_CURSOR)(
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, bool Visible);
|
||||
|
||||
typedef struct {
|
||||
EFI_TABLE_HEADER Hdr;
|
||||
EFI_GET_TIME GetTime;
|
||||
EFI_SET_TIME SetTime;
|
||||
EFI_GET_WAKEUP_TIME GetWakeupTime;
|
||||
EFI_SET_WAKEUP_TIME SetWakeupTime;
|
||||
EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;
|
||||
EFI_CONVERT_POINTER ConvertPointer;
|
||||
EFI_GET_VARIABLE GetVariable;
|
||||
EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName;
|
||||
EFI_SET_VARIABLE SetVariable;
|
||||
EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount;
|
||||
EFI_RESET_SYSTEM ResetSystem;
|
||||
EFI_UPDATE_CAPSULE UpdateCapsule;
|
||||
EFI_QUERY_CAPSULE_CAPABILITIES QueryCapsuleCapabilities;
|
||||
EFI_QUERY_VARIABLE_INFO QueryVariableInfo;
|
||||
} EFI_RUNTIME_SERVICES;
|
||||
|
||||
typedef struct {
|
||||
EFI_TABLE_HEADER Hdr;
|
||||
void *RaiseTPL;
|
||||
void *RestoreTPL;
|
||||
EFI_ALLOCATE_PAGES AllocatePages;
|
||||
EFI_FREE_PAGES FreePages;
|
||||
EFI_GET_MEMORY_MAP GetMemoryMap;
|
||||
void *AllocatePool;
|
||||
void *FreePool;
|
||||
EFI_CREATE_EVENT CreateEvent;
|
||||
EFI_SET_TIMER SetTimer;
|
||||
EFI_WAIT_FOR_EVENT WaitForEvent;
|
||||
EFI_SIGNAL_EVENT SignalEvent;
|
||||
EFI_CLOSE_EVENT CloseEvent;
|
||||
EFI_CHECK_EVENT CheckEvent;
|
||||
void *InstallProtocolInterface;
|
||||
void *ReinstallProtocolInterface;
|
||||
void *UninstallProtocolInterface;
|
||||
void *HandleProtocol;
|
||||
void *Reserved;
|
||||
void *RegisterProtocolNotify;
|
||||
void *LocateHandle;
|
||||
void *LocateDevicePath;
|
||||
void *InstallConfigurationTable;
|
||||
void *LoadImage;
|
||||
void *StartImage;
|
||||
EFI_EXIT Exit;
|
||||
void *UnloadImage;
|
||||
void *ExitBootServices;
|
||||
EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount;
|
||||
EFI_STALL Stall;
|
||||
EFI_SET_WATCHDOG_TIMER SetWatchdogTimer;
|
||||
void *ConnectController;
|
||||
void *DisconnectController;
|
||||
void *OpenProtocol;
|
||||
void *CloseProtocol;
|
||||
void *OpenProtocolInformation;
|
||||
void *ProtocolsPerHandle;
|
||||
void *LocateHandleBuffer;
|
||||
void *LocateProtocol;
|
||||
void *InstallMultipleProtocolInterfaces;
|
||||
void *UninstallMultipleProtocolInterfaces;
|
||||
void *CalculateCrc32;
|
||||
void *CopyMem;
|
||||
void *SetMem;
|
||||
EFI_CREATE_EVENT_EX CreateEventEx;
|
||||
} EFI_BOOT_SERVICES;
|
||||
|
||||
typedef struct {
|
||||
EFI_TABLE_HEADER Hdr;
|
||||
char16_t *FirmwareVendor;
|
||||
uint32_t FirmwareRevision;
|
||||
EFI_HANDLE ConsoleInHandle;
|
||||
EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
|
||||
EFI_HANDLE ConsoleOutHandle;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut;
|
||||
EFI_HANDLE StandardErrorHandle;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *StdErr;
|
||||
EFI_RUNTIME_SERVICES *RuntimeServices;
|
||||
EFI_BOOT_SERVICES *BootServices;
|
||||
uintptr_t NumberOfTableEntries;
|
||||
EFI_CONFIGURATION_TABLE *ConfigurationTable;
|
||||
} EFI_SYSTEM_TABLE;
|
||||
|
||||
struct _EFI_SIMPLE_TEXT_INPUT_PROTOCOL {
|
||||
EFI_INPUT_RESET Reset;
|
||||
EFI_INPUT_READ_KEY ReadKeyStroke;
|
||||
EFI_EVENT WaitForKey;
|
||||
};
|
||||
|
||||
struct _EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL {
|
||||
EFI_TEXT_RESET Reset;
|
||||
EFI_TEXT_STRING OutputString;
|
||||
EFI_TEXT_TEST_STRING TestString;
|
||||
EFI_TEXT_QUERY_MODE QueryMode;
|
||||
EFI_TEXT_SET_MODE SetMode;
|
||||
EFI_TEXT_SET_ATTRIBUTE SetAttribute;
|
||||
EFI_TEXT_CLEAR_SCREEN ClearScreen;
|
||||
EFI_TEXT_SET_CURSOR_POSITION SetCursorPosition;
|
||||
EFI_TEXT_ENABLE_CURSOR EnableCursor;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_MODE *Mode;
|
||||
};
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_NT_EFI_H_ */
|
|
@ -16,370 +16,370 @@
|
|||
.tls: __declspec(thread) data (Fails with dynamically loaded DLLs ->
|
||||
hard to find bugs) */
|
||||
|
||||
#define kNtImageDosSignature 0x5A4D
|
||||
#define kNtImageOs2Signature 0x454E
|
||||
#define kNtImageDosSignature 0x5A4D
|
||||
#define kNtImageOs2Signature 0x454E
|
||||
#define kNtImageOs2SignatureLe 0x454C
|
||||
#define kNtImageVxdSignature 0x454C
|
||||
#define kNtImageNtSignature 0x00004550
|
||||
#define kNtImageVxdSignature 0x454C
|
||||
#define kNtImageNtSignature 0x00004550
|
||||
|
||||
#define kNtPeFileRelocsStripped 0x00001
|
||||
#define kNtPeFileExecutableImage 0x00002
|
||||
#define kNtPeFileLineNumsStripped 0x00004
|
||||
#define kNtPeFileRelocsStripped 0x00001
|
||||
#define kNtPeFileExecutableImage 0x00002
|
||||
#define kNtPeFileLineNumsStripped 0x00004
|
||||
#define kNtPeFileLocalSymsStripped 0x00008
|
||||
#define kNtPeFile_32bitMachine 0x00100
|
||||
#define kNtPeFileDll 0x02000
|
||||
#define kNtPeFile_32bitMachine 0x00100
|
||||
#define kNtPeFileDll 0x02000
|
||||
|
||||
#define kNtPe32bit 0x010b
|
||||
#define kNtPe64bit 0x020b
|
||||
|
||||
#define kNtPeSectionCntCode 0x000000020
|
||||
#define kNtPeSectionCntInitializedData 0x000000040
|
||||
#define kNtPeSectionCntCode 0x000000020
|
||||
#define kNtPeSectionCntInitializedData 0x000000040
|
||||
#define kNtPeSectionCntUninitializedData 0x000000080
|
||||
#define kNtPeSectionGprel 0x000008000
|
||||
#define kNtPeSectionMemDiscardable 0x02000000
|
||||
#define kNtPeSectionMemNotCached 0x04000000
|
||||
#define kNtPeSectionMemNotPaged 0x08000000
|
||||
#define kNtPeSectionMemShared 0x10000000
|
||||
#define kNtPeSectionMemExecute 0x20000000
|
||||
#define kNtPeSectionMemRead 0x40000000
|
||||
#define kNtPeSectionMemWrite 0x80000000
|
||||
#define kNtPeSectionGprel 0x000008000
|
||||
#define kNtPeSectionMemDiscardable 0x02000000
|
||||
#define kNtPeSectionMemNotCached 0x04000000
|
||||
#define kNtPeSectionMemNotPaged 0x08000000
|
||||
#define kNtPeSectionMemShared 0x10000000
|
||||
#define kNtPeSectionMemExecute 0x20000000
|
||||
#define kNtPeSectionMemRead 0x40000000
|
||||
#define kNtPeSectionMemWrite 0x80000000
|
||||
|
||||
#define kNtPeGuardCfInstrumented 0x000000100
|
||||
#define kNtPeGuardCfwInstrumented 0x000000200
|
||||
#define kNtPeGuardCfInstrumented 0x000000100
|
||||
#define kNtPeGuardCfwInstrumented 0x000000200
|
||||
#define kNtPeGuardCfFunctionTablePresent 0x000000400
|
||||
#define kNtPeGuardSecurityCookieUnused 0x000000800
|
||||
#define kNtPeGuardSecurityCookieUnused 0x000000800
|
||||
|
||||
#define kNtPeRelBasedAbsolute 0
|
||||
#define kNtPeRelBasedHigh 1
|
||||
#define kNtPeRelBasedLow 2
|
||||
#define kNtPeRelBasedHighlow 3
|
||||
#define kNtPeRelBasedHighadj 4
|
||||
#define kNtPeRelBasedMipsJmpaddr 5
|
||||
#define kNtPeRelBasedSection 6
|
||||
#define kNtPeRelBasedRel32 7
|
||||
#define kNtPeRelBasedAbsolute 0
|
||||
#define kNtPeRelBasedHigh 1
|
||||
#define kNtPeRelBasedLow 2
|
||||
#define kNtPeRelBasedHighlow 3
|
||||
#define kNtPeRelBasedHighadj 4
|
||||
#define kNtPeRelBasedMipsJmpaddr 5
|
||||
#define kNtPeRelBasedSection 6
|
||||
#define kNtPeRelBasedRel32 7
|
||||
#define kNtPeRelBasedMipsJmpaddr16 9
|
||||
#define kNtPeRelBasedIa64Imm64 9
|
||||
#define kNtPeRelBasedDir64 10
|
||||
#define kNtPeRelBasedHigh3adj 11
|
||||
#define kNtPeRelBasedIa64Imm64 9
|
||||
#define kNtPeRelBasedDir64 10
|
||||
#define kNtPeRelBasedHigh3adj 11
|
||||
|
||||
#define kNtImageFileRelocsStripped 0x0001
|
||||
#define kNtImageFileExecutableImage 0x0002
|
||||
#define kNtImageFileLineNumsStripped 0x0004
|
||||
#define kNtImageFileLocalSymsStripped 0x0008
|
||||
#define kNtImageFileAggresiveWsTrim 0x0010
|
||||
#define kNtImageFileLargeAddressAware 0x0020
|
||||
#define kNtImageFileBytesReversedLo 0x0080
|
||||
#define kNtImageFile32bitMachine 0x0100
|
||||
#define kNtImageFileDebugStripped 0x0200
|
||||
#define kNtImageFileRelocsStripped 0x0001
|
||||
#define kNtImageFileExecutableImage 0x0002
|
||||
#define kNtImageFileLineNumsStripped 0x0004
|
||||
#define kNtImageFileLocalSymsStripped 0x0008
|
||||
#define kNtImageFileAggresiveWsTrim 0x0010
|
||||
#define kNtImageFileLargeAddressAware 0x0020
|
||||
#define kNtImageFileBytesReversedLo 0x0080
|
||||
#define kNtImageFile32bitMachine 0x0100
|
||||
#define kNtImageFileDebugStripped 0x0200
|
||||
#define kNtImageFileRemovableRunFromSwap 0x0400
|
||||
#define kNtImageFileNetRunFromSwap 0x0800
|
||||
#define kNtImageFileSystem 0x1000
|
||||
#define kNtImageFileDll 0x2000
|
||||
#define kNtImageFileUpSystemOnly 0x4000
|
||||
#define kNtImageFileBytesReversedHi 0x8000
|
||||
#define kNtImageFileNetRunFromSwap 0x0800
|
||||
#define kNtImageFileSystem 0x1000
|
||||
#define kNtImageFileDll 0x2000
|
||||
#define kNtImageFileUpSystemOnly 0x4000
|
||||
#define kNtImageFileBytesReversedHi 0x8000
|
||||
|
||||
#define kNtImageFileMachineUnknown 0
|
||||
#define kNtImageFileMachineUnknown 0
|
||||
#define kNtImageFileMachineTargetHost 0x0001
|
||||
#define kNtImageFileMachineI386 0x014c
|
||||
#define kNtImageFileMachineR3000 0x0162
|
||||
#define kNtImageFileMachineR4000 0x0166
|
||||
#define kNtImageFileMachineR10000 0x0168
|
||||
#define kNtImageFileMachineWcemipsv2 0x0169
|
||||
#define kNtImageFileMachineAlpha 0x0184
|
||||
#define kNtImageFileMachineSh3 0x01a2
|
||||
#define kNtImageFileMachineSh3dsp 0x01a3
|
||||
#define kNtImageFileMachineSh3e 0x01a4
|
||||
#define kNtImageFileMachineSh4 0x01a6
|
||||
#define kNtImageFileMachineSh5 0x01a8
|
||||
#define kNtImageFileMachineArm 0x01c0
|
||||
#define kNtImageFileMachineThumb 0x01c2
|
||||
#define kNtImageFileMachineArmnt 0x01c4
|
||||
#define kNtImageFileMachineAm33 0x01d3
|
||||
#define kNtImageFileMachinePowerpc 0x01F0
|
||||
#define kNtImageFileMachinePowerpcfp 0x01f1
|
||||
#define kNtImageFileMachineIa64 0x0200
|
||||
#define kNtImageFileMachineMips16 0x0266
|
||||
#define kNtImageFileMachineAlpha64 0x0284
|
||||
#define kNtImageFileMachineMipsfpu 0x0366
|
||||
#define kNtImageFileMachineMipsfpu16 0x0466
|
||||
#define kNtImageFileMachineAxp64 kNtImageFileMachineAlpha64
|
||||
#define kNtImageFileMachineTricore 0x0520
|
||||
#define kNtImageFileMachineCef 0x0CEF
|
||||
#define kNtImageFileMachineEbc 0x0EBC
|
||||
#define kNtImageFileMachineNexgen32e 0x8664
|
||||
#define kNtImageFileMachineM32r 0x9041
|
||||
#define kNtImageFileMachineArm64 0xAA64
|
||||
#define kNtImageFileMachineCee 0xC0EE
|
||||
#define kNtImageFileMachineI386 0x014c
|
||||
#define kNtImageFileMachineR3000 0x0162
|
||||
#define kNtImageFileMachineR4000 0x0166
|
||||
#define kNtImageFileMachineR10000 0x0168
|
||||
#define kNtImageFileMachineWcemipsv2 0x0169
|
||||
#define kNtImageFileMachineAlpha 0x0184
|
||||
#define kNtImageFileMachineSh3 0x01a2
|
||||
#define kNtImageFileMachineSh3dsp 0x01a3
|
||||
#define kNtImageFileMachineSh3e 0x01a4
|
||||
#define kNtImageFileMachineSh4 0x01a6
|
||||
#define kNtImageFileMachineSh5 0x01a8
|
||||
#define kNtImageFileMachineArm 0x01c0
|
||||
#define kNtImageFileMachineThumb 0x01c2
|
||||
#define kNtImageFileMachineArmnt 0x01c4
|
||||
#define kNtImageFileMachineAm33 0x01d3
|
||||
#define kNtImageFileMachinePowerpc 0x01F0
|
||||
#define kNtImageFileMachinePowerpcfp 0x01f1
|
||||
#define kNtImageFileMachineIa64 0x0200
|
||||
#define kNtImageFileMachineMips16 0x0266
|
||||
#define kNtImageFileMachineAlpha64 0x0284
|
||||
#define kNtImageFileMachineMipsfpu 0x0366
|
||||
#define kNtImageFileMachineMipsfpu16 0x0466
|
||||
#define kNtImageFileMachineAxp64 kNtImageFileMachineAlpha64
|
||||
#define kNtImageFileMachineTricore 0x0520
|
||||
#define kNtImageFileMachineCef 0x0CEF
|
||||
#define kNtImageFileMachineEbc 0x0EBC
|
||||
#define kNtImageFileMachineNexgen32e 0x8664
|
||||
#define kNtImageFileMachineM32r 0x9041
|
||||
#define kNtImageFileMachineArm64 0xAA64
|
||||
#define kNtImageFileMachineCee 0xC0EE
|
||||
|
||||
#define kNtImageSubsystemUnknown 0
|
||||
#define kNtImageSubsystemNative 1
|
||||
#define kNtImageSubsystemWindowsGui 2
|
||||
#define kNtImageSubsystemWindowsCui 3
|
||||
#define kNtImageSubsystemOs2Cui 5
|
||||
#define kNtImageSubsystemPosixCui 7
|
||||
#define kNtImageSubsystemNativeWindows 8
|
||||
#define kNtImageSubsystemWindowsCeGui 9
|
||||
#define kNtImageSubsystemEfiApplication 1
|
||||
#define kNtImageSubsystemEfiBootServiceDriver 11
|
||||
#define kNtImageSubsystemEfiRuntimeDriver 12
|
||||
#define kNtImageSubsystemEfiRom 13
|
||||
#define kNtImageSubsystemXbox 14
|
||||
#define kNtImageSubsystemUnknown 0
|
||||
#define kNtImageSubsystemNative 1
|
||||
#define kNtImageSubsystemWindowsGui 2
|
||||
#define kNtImageSubsystemWindowsCui 3
|
||||
#define kNtImageSubsystemOs2Cui 5
|
||||
#define kNtImageSubsystemPosixCui 7
|
||||
#define kNtImageSubsystemNativeWindows 8
|
||||
#define kNtImageSubsystemWindowsCeGui 9
|
||||
#define kNtImageSubsystemEfiApplication 10
|
||||
#define kNtImageSubsystemEfiBootServiceDriver 11
|
||||
#define kNtImageSubsystemEfiRuntimeDriver 12
|
||||
#define kNtImageSubsystemEfiRom 13
|
||||
#define kNtImageSubsystemXbox 14
|
||||
#define kNtImageSubsystemWindowsBootApplication 16
|
||||
#define kNtImageSubsystemXboxCodeCatalog 17
|
||||
#define kNtImageSubsystemXboxCodeCatalog 17
|
||||
|
||||
#define kNtImageDllcharacteristicsHighEntropyVa 0x0020
|
||||
#define kNtImageDllcharacteristicsDynamicBase 0x0040
|
||||
#define kNtImageDllcharacteristicsForceIntegrity 0x0080
|
||||
#define kNtImageDllcharacteristicsNxCompat 0x0100
|
||||
#define kNtImageDllcharacteristicsNoIsolation 0x0200
|
||||
#define kNtImageDllcharacteristicsNoSeh 0x0400
|
||||
#define kNtImageDllcharacteristicsNoBind 0x0800
|
||||
#define kNtImageDllcharacteristicsAppcontainer 0x1000
|
||||
#define kNtImageDllcharacteristicsWdmDriver 0x2000
|
||||
#define kNtImageDllcharacteristicsGuardCf 0x4000
|
||||
#define kNtImageDllcharacteristicsHighEntropyVa 0x0020
|
||||
#define kNtImageDllcharacteristicsDynamicBase 0x0040
|
||||
#define kNtImageDllcharacteristicsForceIntegrity 0x0080
|
||||
#define kNtImageDllcharacteristicsNxCompat 0x0100
|
||||
#define kNtImageDllcharacteristicsNoIsolation 0x0200
|
||||
#define kNtImageDllcharacteristicsNoSeh 0x0400
|
||||
#define kNtImageDllcharacteristicsNoBind 0x0800
|
||||
#define kNtImageDllcharacteristicsAppcontainer 0x1000
|
||||
#define kNtImageDllcharacteristicsWdmDriver 0x2000
|
||||
#define kNtImageDllcharacteristicsGuardCf 0x4000
|
||||
#define kNtImageDllcharacteristicsTerminalServerAware 0x8000
|
||||
|
||||
#define kNtImageDirectoryEntryExport 0
|
||||
#define kNtImageDirectoryEntryImport 1
|
||||
#define kNtImageDirectoryEntryResource 2
|
||||
#define kNtImageDirectoryEntryException 3
|
||||
#define kNtImageDirectoryEntrySecurity 4
|
||||
#define kNtImageDirectoryEntryBasereloc 5
|
||||
#define kNtImageDirectoryEntryDebug 6
|
||||
#define kNtImageDirectoryEntryArchitecture 7
|
||||
#define kNtImageDirectoryEntryGlobalptr 8
|
||||
#define kNtImageDirectoryEntryTls 9
|
||||
#define kNtImageDirectoryEntryLoadConfig 10
|
||||
#define kNtImageDirectoryEntryBoundImport 11
|
||||
#define kNtImageDirectoryEntryIat 12
|
||||
#define kNtImageDirectoryEntryDelayImport 13
|
||||
#define kNtImageDirectoryEntryExport 0
|
||||
#define kNtImageDirectoryEntryImport 1
|
||||
#define kNtImageDirectoryEntryResource 2
|
||||
#define kNtImageDirectoryEntryException 3
|
||||
#define kNtImageDirectoryEntrySecurity 4
|
||||
#define kNtImageDirectoryEntryBasereloc 5
|
||||
#define kNtImageDirectoryEntryDebug 6
|
||||
#define kNtImageDirectoryEntryArchitecture 7
|
||||
#define kNtImageDirectoryEntryGlobalptr 8
|
||||
#define kNtImageDirectoryEntryTls 9
|
||||
#define kNtImageDirectoryEntryLoadConfig 10
|
||||
#define kNtImageDirectoryEntryBoundImport 11
|
||||
#define kNtImageDirectoryEntryIat 12
|
||||
#define kNtImageDirectoryEntryDelayImport 13
|
||||
#define kNtImageDirectoryEntryComDescriptor 14
|
||||
|
||||
#define kNtImageScnTypeNoPad 0x00000008
|
||||
#define kNtImageScnCntCode 0x00000020
|
||||
#define kNtImageScnCntInitializedData 0x00000040
|
||||
#define kNtImageScnTypeNoPad 0x00000008
|
||||
#define kNtImageScnCntCode 0x00000020
|
||||
#define kNtImageScnCntInitializedData 0x00000040
|
||||
#define kNtImageScnCntUninitializedData 0x00000080
|
||||
#define kNtImageScnLnkOther 0x00000100
|
||||
#define kNtImageScnLnkInfo 0x00000200
|
||||
#define kNtImageScnLnkRemove 0x00000800
|
||||
#define kNtImageScnLnkComdat 0x00001000
|
||||
#define kNtImageScnNoDeferSpecExc 0x00004000
|
||||
#define kNtImageScnGprel 0x00008000
|
||||
#define kNtImageScnMemFardata 0x00008000
|
||||
#define kNtImageScnMemPurgeable 0x00020000
|
||||
#define kNtImageScnMem16bit 0x00020000
|
||||
#define kNtImageScnMemLocked 0x00040000
|
||||
#define kNtImageScnMemPreload 0x00080000
|
||||
#define kNtImageScnLnkOther 0x00000100
|
||||
#define kNtImageScnLnkInfo 0x00000200
|
||||
#define kNtImageScnLnkRemove 0x00000800
|
||||
#define kNtImageScnLnkComdat 0x00001000
|
||||
#define kNtImageScnNoDeferSpecExc 0x00004000
|
||||
#define kNtImageScnGprel 0x00008000
|
||||
#define kNtImageScnMemFardata 0x00008000
|
||||
#define kNtImageScnMemPurgeable 0x00020000
|
||||
#define kNtImageScnMem16bit 0x00020000
|
||||
#define kNtImageScnMemLocked 0x00040000
|
||||
#define kNtImageScnMemPreload 0x00080000
|
||||
|
||||
#define kNtImageScnAlign1bytes 0x00100000
|
||||
#define kNtImageScnAlign2bytes 0x00200000
|
||||
#define kNtImageScnAlign4bytes 0x00300000
|
||||
#define kNtImageScnAlign8bytes 0x00400000
|
||||
#define kNtImageScnAlign16bytes 0x00500000
|
||||
#define kNtImageScnAlign32bytes 0x00600000
|
||||
#define kNtImageScnAlign64bytes 0x00700000
|
||||
#define kNtImageScnAlign128bytes 0x00800000
|
||||
#define kNtImageScnAlign256bytes 0x00900000
|
||||
#define kNtImageScnAlign512bytes 0x00A00000
|
||||
#define kNtImageScnAlign1bytes 0x00100000
|
||||
#define kNtImageScnAlign2bytes 0x00200000
|
||||
#define kNtImageScnAlign4bytes 0x00300000
|
||||
#define kNtImageScnAlign8bytes 0x00400000
|
||||
#define kNtImageScnAlign16bytes 0x00500000
|
||||
#define kNtImageScnAlign32bytes 0x00600000
|
||||
#define kNtImageScnAlign64bytes 0x00700000
|
||||
#define kNtImageScnAlign128bytes 0x00800000
|
||||
#define kNtImageScnAlign256bytes 0x00900000
|
||||
#define kNtImageScnAlign512bytes 0x00A00000
|
||||
#define kNtImageScnAlign1024bytes 0x00B00000
|
||||
#define kNtImageScnAlign2048bytes 0x00C00000
|
||||
#define kNtImageScnAlign4096bytes 0x00D00000
|
||||
#define kNtImageScnAlign8192bytes 0x00E00000
|
||||
#define kNtImageScnAlignMask 0x00F00000
|
||||
#define kNtImageScnAlignMask 0x00F00000
|
||||
|
||||
#define kNtImageScnLnkNrelocOvfl 0x01000000
|
||||
#define kNtImageScnLnkNrelocOvfl 0x01000000
|
||||
#define kNtImageScnMemDiscardable 0x02000000
|
||||
#define kNtImageScnMemNotCached 0x04000000
|
||||
#define kNtImageScnMemNotPaged 0x08000000
|
||||
#define kNtImageScnMemShared 0x10000000
|
||||
#define kNtImageScnMemExecute 0x20000000
|
||||
#define kNtImageScnMemRead 0x40000000
|
||||
#define kNtImageScnMemWrite 0x80000000
|
||||
#define kNtImageScnScaleIndex 0x00000001
|
||||
#define kNtImageScnMemNotCached 0x04000000
|
||||
#define kNtImageScnMemNotPaged 0x08000000
|
||||
#define kNtImageScnMemShared 0x10000000
|
||||
#define kNtImageScnMemExecute 0x20000000
|
||||
#define kNtImageScnMemRead 0x40000000
|
||||
#define kNtImageScnMemWrite 0x80000000
|
||||
#define kNtImageScnScaleIndex 0x00000001
|
||||
|
||||
#define kNtImageSymUndefined ((uint16_t)0)
|
||||
#define kNtImageSymAbsolute ((uint16_t)-1)
|
||||
#define kNtImageSymDebug ((uint16_t)-2)
|
||||
#define kNtImageSymSectionMax 0xFEFF
|
||||
#define kNtImageSymSectionMaxEx __LONG_MAX__
|
||||
#define kNtImageSymTypeNull 0x0000
|
||||
#define kNtImageSymTypeVoid 0x0001
|
||||
#define kNtImageSymTypeChar 0x0002
|
||||
#define kNtImageSymTypeShort 0x0003
|
||||
#define kNtImageSymTypeInt 0x0004
|
||||
#define kNtImageSymTypeLong 0x0005
|
||||
#define kNtImageSymTypeFloat 0x0006
|
||||
#define kNtImageSymTypeDouble 0x0007
|
||||
#define kNtImageSymTypeStruct 0x0008
|
||||
#define kNtImageSymTypeUnion 0x0009
|
||||
#define kNtImageSymTypeEnum 0x000A
|
||||
#define kNtImageSymTypeMoe 0x000B
|
||||
#define kNtImageSymTypeByte 0x000C
|
||||
#define kNtImageSymTypeWord 0x000D
|
||||
#define kNtImageSymTypeUint 0x000E
|
||||
#define kNtImageSymTypeDword 0x000F
|
||||
#define kNtImageSymTypePcode 0x8000
|
||||
#define kNtImageSymDtypeNull 0
|
||||
#define kNtImageSymDtypePointer 1
|
||||
#define kNtImageSymDtypeFunction 2
|
||||
#define kNtImageSymDtypeArray 3
|
||||
#define kNtImageSymClassEndOfFunction ((unsigned char)-1)
|
||||
#define kNtImageSymClassNull 0x0000
|
||||
#define kNtImageSymClassAutomatic 0x0001
|
||||
#define kNtImageSymClassExternal 0x0002
|
||||
#define kNtImageSymClassStatic 0x0003
|
||||
#define kNtImageSymClassRegister 0x0004
|
||||
#define kNtImageSymClassExternalDef 0x0005
|
||||
#define kNtImageSymClassLabel 0x0006
|
||||
#define kNtImageSymClassUndefinedLabel 0x0007
|
||||
#define kNtImageSymClassMemberOfStruct 0x0008
|
||||
#define kNtImageSymClassArgument 0x0009
|
||||
#define kNtImageSymClassStructTag 0x000A
|
||||
#define kNtImageSymClassMemberOfUnion 0x000B
|
||||
#define kNtImageSymClassUnionTag 0x000C
|
||||
#define kNtImageSymClassTypeDefinition 0x000D
|
||||
#define kNtImageSymUndefined ((uint16_t)0)
|
||||
#define kNtImageSymAbsolute ((uint16_t)-1)
|
||||
#define kNtImageSymDebug ((uint16_t)-2)
|
||||
#define kNtImageSymSectionMax 0xFEFF
|
||||
#define kNtImageSymSectionMaxEx __LONG_MAX__
|
||||
#define kNtImageSymTypeNull 0x0000
|
||||
#define kNtImageSymTypeVoid 0x0001
|
||||
#define kNtImageSymTypeChar 0x0002
|
||||
#define kNtImageSymTypeShort 0x0003
|
||||
#define kNtImageSymTypeInt 0x0004
|
||||
#define kNtImageSymTypeLong 0x0005
|
||||
#define kNtImageSymTypeFloat 0x0006
|
||||
#define kNtImageSymTypeDouble 0x0007
|
||||
#define kNtImageSymTypeStruct 0x0008
|
||||
#define kNtImageSymTypeUnion 0x0009
|
||||
#define kNtImageSymTypeEnum 0x000A
|
||||
#define kNtImageSymTypeMoe 0x000B
|
||||
#define kNtImageSymTypeByte 0x000C
|
||||
#define kNtImageSymTypeWord 0x000D
|
||||
#define kNtImageSymTypeUint 0x000E
|
||||
#define kNtImageSymTypeDword 0x000F
|
||||
#define kNtImageSymTypePcode 0x8000
|
||||
#define kNtImageSymDtypeNull 0
|
||||
#define kNtImageSymDtypePointer 1
|
||||
#define kNtImageSymDtypeFunction 2
|
||||
#define kNtImageSymDtypeArray 3
|
||||
#define kNtImageSymClassEndOfFunction ((unsigned char)-1)
|
||||
#define kNtImageSymClassNull 0x0000
|
||||
#define kNtImageSymClassAutomatic 0x0001
|
||||
#define kNtImageSymClassExternal 0x0002
|
||||
#define kNtImageSymClassStatic 0x0003
|
||||
#define kNtImageSymClassRegister 0x0004
|
||||
#define kNtImageSymClassExternalDef 0x0005
|
||||
#define kNtImageSymClassLabel 0x0006
|
||||
#define kNtImageSymClassUndefinedLabel 0x0007
|
||||
#define kNtImageSymClassMemberOfStruct 0x0008
|
||||
#define kNtImageSymClassArgument 0x0009
|
||||
#define kNtImageSymClassStructTag 0x000A
|
||||
#define kNtImageSymClassMemberOfUnion 0x000B
|
||||
#define kNtImageSymClassUnionTag 0x000C
|
||||
#define kNtImageSymClassTypeDefinition 0x000D
|
||||
#define kNtImageSymClassUndefinedStatic 0x000E
|
||||
#define kNtImageSymClassEnumTag 0x000F
|
||||
#define kNtImageSymClassMemberOfEnum 0x0010
|
||||
#define kNtImageSymClassRegisterParam 0x0011
|
||||
#define kNtImageSymClassBitField 0x0012
|
||||
#define kNtImageSymClassFarExternal 0x0044
|
||||
#define kNtImageSymClassBlock 0x0064
|
||||
#define kNtImageSymClassFunction 0x0065
|
||||
#define kNtImageSymClassEndOfStruct 0x0066
|
||||
#define kNtImageSymClassFile 0x0067
|
||||
#define kNtImageSymClassSection 0x0068
|
||||
#define kNtImageSymClassWeakExternal 0x0069
|
||||
#define kNtImageSymClassClrToken 0x006B
|
||||
#define kNtImageSymClassEnumTag 0x000F
|
||||
#define kNtImageSymClassMemberOfEnum 0x0010
|
||||
#define kNtImageSymClassRegisterParam 0x0011
|
||||
#define kNtImageSymClassBitField 0x0012
|
||||
#define kNtImageSymClassFarExternal 0x0044
|
||||
#define kNtImageSymClassBlock 0x0064
|
||||
#define kNtImageSymClassFunction 0x0065
|
||||
#define kNtImageSymClassEndOfStruct 0x0066
|
||||
#define kNtImageSymClassFile 0x0067
|
||||
#define kNtImageSymClassSection 0x0068
|
||||
#define kNtImageSymClassWeakExternal 0x0069
|
||||
#define kNtImageSymClassClrToken 0x006B
|
||||
|
||||
#define kNtImageComdatSelectNoduplicates 1
|
||||
#define kNtImageComdatSelectAny 2
|
||||
#define kNtImageComdatSelectSameSize 3
|
||||
#define kNtImageComdatSelectExactMatch 4
|
||||
#define kNtImageComdatSelectAssociative 5
|
||||
#define kNtImageComdatSelectLargest 6
|
||||
#define kNtImageComdatSelectNewest 7
|
||||
#define kNtImageComdatSelectAny 2
|
||||
#define kNtImageComdatSelectSameSize 3
|
||||
#define kNtImageComdatSelectExactMatch 4
|
||||
#define kNtImageComdatSelectAssociative 5
|
||||
#define kNtImageComdatSelectLargest 6
|
||||
#define kNtImageComdatSelectNewest 7
|
||||
|
||||
#define kNtImageWeakExternSearchNolibrary 1
|
||||
#define kNtImageWeakExternSearchLibrary 2
|
||||
#define kNtImageWeakExternSearchAlias 3
|
||||
#define kNtImageWeakExternAntiDependency 4
|
||||
#define kNtImageWeakExternSearchLibrary 2
|
||||
#define kNtImageWeakExternSearchAlias 3
|
||||
#define kNtImageWeakExternAntiDependency 4
|
||||
|
||||
#define kNtImageRelNexgen32eAbsolute 0x0000
|
||||
#define kNtImageRelNexgen32eAddr64 0x0001
|
||||
#define kNtImageRelNexgen32eAddr32 0x0002
|
||||
#define kNtImageRelNexgen32eAddr64 0x0001
|
||||
#define kNtImageRelNexgen32eAddr32 0x0002
|
||||
#define kNtImageRelNexgen32eAddr32nb 0x0003
|
||||
#define kNtImageRelNexgen32eRel32 0x0004
|
||||
#define kNtImageRelNexgen32eRel32_1 0x0005
|
||||
#define kNtImageRelNexgen32eRel32_2 0x0006
|
||||
#define kNtImageRelNexgen32eRel32_3 0x0007
|
||||
#define kNtImageRelNexgen32eRel32_4 0x0008
|
||||
#define kNtImageRelNexgen32eRel32_5 0x0009
|
||||
#define kNtImageRelNexgen32eSection 0x000A
|
||||
#define kNtImageRelNexgen32eSecrel 0x000B
|
||||
#define kNtImageRelNexgen32eSecrel7 0x000C
|
||||
#define kNtImageRelNexgen32eToken 0x000D
|
||||
#define kNtImageRelNexgen32eSrel32 0x000E
|
||||
#define kNtImageRelNexgen32ePair 0x000F
|
||||
#define kNtImageRelNexgen32eSspan32 0x0010
|
||||
#define kNtImageRelNexgen32eRel32 0x0004
|
||||
#define kNtImageRelNexgen32eRel32_1 0x0005
|
||||
#define kNtImageRelNexgen32eRel32_2 0x0006
|
||||
#define kNtImageRelNexgen32eRel32_3 0x0007
|
||||
#define kNtImageRelNexgen32eRel32_4 0x0008
|
||||
#define kNtImageRelNexgen32eRel32_5 0x0009
|
||||
#define kNtImageRelNexgen32eSection 0x000A
|
||||
#define kNtImageRelNexgen32eSecrel 0x000B
|
||||
#define kNtImageRelNexgen32eSecrel7 0x000C
|
||||
#define kNtImageRelNexgen32eToken 0x000D
|
||||
#define kNtImageRelNexgen32eSrel32 0x000E
|
||||
#define kNtImageRelNexgen32ePair 0x000F
|
||||
#define kNtImageRelNexgen32eSspan32 0x0010
|
||||
|
||||
#define kNtImageRelBasedAbsolute 0
|
||||
#define kNtImageRelBasedHigh 1
|
||||
#define kNtImageRelBasedLow 2
|
||||
#define kNtImageRelBasedHighlow 3
|
||||
#define kNtImageRelBasedHighadj 4
|
||||
#define kNtImageRelBasedAbsolute 0
|
||||
#define kNtImageRelBasedHigh 1
|
||||
#define kNtImageRelBasedLow 2
|
||||
#define kNtImageRelBasedHighlow 3
|
||||
#define kNtImageRelBasedHighadj 4
|
||||
#define kNtImageRelBasedMachineSpecific_5 5
|
||||
#define kNtImageRelBasedReserved 6
|
||||
#define kNtImageRelBasedReserved 6
|
||||
#define kNtImageRelBasedMachineSpecific_7 7
|
||||
#define kNtImageRelBasedMachineSpecific_8 8
|
||||
#define kNtImageRelBasedMachineSpecific_9 9
|
||||
#define kNtImageRelBasedDir64 10
|
||||
#define kNtImageRelBasedDir64 10
|
||||
|
||||
#define kNtImageArchiveStartSize 8
|
||||
#define kNtImageArchiveStart "!<arch>\n"
|
||||
#define kNtImageArchiveEnd "`\n"
|
||||
#define kNtImageArchivePad "\n"
|
||||
#define kNtImageArchiveLinkerMember "/ "
|
||||
#define kNtImageArchiveStartSize 8
|
||||
#define kNtImageArchiveStart "!<arch>\n"
|
||||
#define kNtImageArchiveEnd "`\n"
|
||||
#define kNtImageArchivePad "\n"
|
||||
#define kNtImageArchiveLinkerMember "/ "
|
||||
#define kNtImageArchiveLongnamesMember "// "
|
||||
#define kNtImageArchiveHybridmapMember "/<HYBRIDMAP>/ "
|
||||
|
||||
#define kNtImageOrdinalFlag 0x8000000000000000
|
||||
#define NtImageOrdinal(Ordinal) (Ordinal & 0xffff)
|
||||
#define kNtImageOrdinalFlag 0x8000000000000000
|
||||
#define NtImageOrdinal(Ordinal) (Ordinal & 0xffff)
|
||||
#define NtImageSnapByOrdinal(Ordinal) ((Ordinal & IMAGE_ORDINAL_FLAG64) != 0)
|
||||
|
||||
#define kNtImageResourceNameIsString 0x80000000
|
||||
#define kNtImageResourceNameIsString 0x80000000
|
||||
#define kNtImageResourceDataIsDirectory 0x80000000
|
||||
|
||||
#define kNtImageDynamicRelocationGuardRfPrologue 0x00000001
|
||||
#define kNtImageDynamicRelocationGuardRfEpilogue 0x00000002
|
||||
|
||||
#define kNtImageHotPatchBaseObligatory 0x00000001
|
||||
#define kNtImageHotPatchChunkInverse 0x80000000
|
||||
#define kNtImageHotPatchChunkObligatory 0x40000000
|
||||
#define kNtImageHotPatchChunkReserved 0x3FF03000
|
||||
#define kNtImageHotPatchChunkType 0x000FC000
|
||||
#define kNtImageHotPatchChunkSourceRva 0x00008000
|
||||
#define kNtImageHotPatchChunkTargetRva 0x00004000
|
||||
#define kNtImageHotPatchChunkSize 0x00000FFF
|
||||
#define kNtImageHotPatchNone 0x00000000
|
||||
#define kNtImageHotPatchFunction 0x0001C000
|
||||
#define kNtImageHotPatchAbsolute 0x0002C000
|
||||
#define kNtImageHotPatchRel32 0x0003C000
|
||||
#define kNtImageHotPatchCallTarget 0x00044000
|
||||
#define kNtImageHotPatchIndirect 0x0005C000
|
||||
#define kNtImageHotPatchNoCallTarget 0x00064000
|
||||
#define kNtImageHotPatchDynamicValue 0x00078000
|
||||
#define kNtImageGuardCfInstrumented 0x00000100
|
||||
#define kNtImageGuardCfwInstrumented 0x00000200
|
||||
#define kNtImageGuardCfFunctionTablePresent 0x00000400
|
||||
#define kNtImageGuardSecurityCookieUnused 0x00000800
|
||||
#define kNtImageGuardProtectDelayloadIat 0x00001000
|
||||
#define kNtImageGuardDelayloadIatInItsOwnSection 0x00002000
|
||||
#define kNtImageHotPatchBaseObligatory 0x00000001
|
||||
#define kNtImageHotPatchChunkInverse 0x80000000
|
||||
#define kNtImageHotPatchChunkObligatory 0x40000000
|
||||
#define kNtImageHotPatchChunkReserved 0x3FF03000
|
||||
#define kNtImageHotPatchChunkType 0x000FC000
|
||||
#define kNtImageHotPatchChunkSourceRva 0x00008000
|
||||
#define kNtImageHotPatchChunkTargetRva 0x00004000
|
||||
#define kNtImageHotPatchChunkSize 0x00000FFF
|
||||
#define kNtImageHotPatchNone 0x00000000
|
||||
#define kNtImageHotPatchFunction 0x0001C000
|
||||
#define kNtImageHotPatchAbsolute 0x0002C000
|
||||
#define kNtImageHotPatchRel32 0x0003C000
|
||||
#define kNtImageHotPatchCallTarget 0x00044000
|
||||
#define kNtImageHotPatchIndirect 0x0005C000
|
||||
#define kNtImageHotPatchNoCallTarget 0x00064000
|
||||
#define kNtImageHotPatchDynamicValue 0x00078000
|
||||
#define kNtImageGuardCfInstrumented 0x00000100
|
||||
#define kNtImageGuardCfwInstrumented 0x00000200
|
||||
#define kNtImageGuardCfFunctionTablePresent 0x00000400
|
||||
#define kNtImageGuardSecurityCookieUnused 0x00000800
|
||||
#define kNtImageGuardProtectDelayloadIat 0x00001000
|
||||
#define kNtImageGuardDelayloadIatInItsOwnSection 0x00002000
|
||||
#define kNtImageGuardCfExportSuppressionInfoPresent 0x00004000
|
||||
#define kNtImageGuardCfEnableExportSuppression 0x00008000
|
||||
#define kNtImageGuardCfLongjumpTablePresent 0x00010000
|
||||
#define kNtImageGuardRfInstrumented 0x00020000
|
||||
#define kNtImageGuardRfEnable 0x00040000
|
||||
#define kNtImageGuardRfStrict 0x00080000
|
||||
#define kNtImageGuardCfFunctionTableSizeMask 0xF0000000
|
||||
#define kNtImageGuardCfFunctionTableSizeShift 28
|
||||
#define kNtImageGuardFlagFidSuppressed 0x01
|
||||
#define kNtImageGuardFlagExportSuppressed 0x02
|
||||
#define kNtImageGuardCfEnableExportSuppression 0x00008000
|
||||
#define kNtImageGuardCfLongjumpTablePresent 0x00010000
|
||||
#define kNtImageGuardRfInstrumented 0x00020000
|
||||
#define kNtImageGuardRfEnable 0x00040000
|
||||
#define kNtImageGuardRfStrict 0x00080000
|
||||
#define kNtImageGuardCfFunctionTableSizeMask 0xF0000000
|
||||
#define kNtImageGuardCfFunctionTableSizeShift 28
|
||||
#define kNtImageGuardFlagFidSuppressed 0x01
|
||||
#define kNtImageGuardFlagExportSuppressed 0x02
|
||||
|
||||
#define kNtImageEnclaveImportMatchNone 0x00000000
|
||||
#define kNtImageEnclaveImportMatchNone 0x00000000
|
||||
#define kNtImageEnclaveImportMatchUniqueId 0x00000001
|
||||
#define kNtImageEnclaveImportMatchAuthorId 0x00000002
|
||||
#define kNtImageEnclaveImportMatchFamilyId 0x00000003
|
||||
#define kNtImageEnclaveImportMatchImageId 0x00000004
|
||||
#define kNtImageEnclaveImportMatchImageId 0x00000004
|
||||
|
||||
#define kNtImageDebugTypeUnknown 0
|
||||
#define kNtImageDebugTypeCoff 1
|
||||
#define kNtImageDebugTypeCodeview 2
|
||||
#define kNtImageDebugTypeFpo 3
|
||||
#define kNtImageDebugTypeMisc 4
|
||||
#define kNtImageDebugTypeException 5
|
||||
#define kNtImageDebugTypeFixup 6
|
||||
#define kNtImageDebugTypeOmapToSrc 7
|
||||
#define kNtImageDebugTypeUnknown 0
|
||||
#define kNtImageDebugTypeCoff 1
|
||||
#define kNtImageDebugTypeCodeview 2
|
||||
#define kNtImageDebugTypeFpo 3
|
||||
#define kNtImageDebugTypeMisc 4
|
||||
#define kNtImageDebugTypeException 5
|
||||
#define kNtImageDebugTypeFixup 6
|
||||
#define kNtImageDebugTypeOmapToSrc 7
|
||||
#define kNtImageDebugTypeOmapFromSrc 8
|
||||
#define kNtImageDebugTypeBorland 9
|
||||
#define kNtImageDebugTypeReserved10 10
|
||||
#define kNtImageDebugTypeClsid 11
|
||||
#define kNtImageDebugTypeVcFeature 12
|
||||
#define kNtImageDebugTypePogo 13
|
||||
#define kNtImageDebugTypeIltcg 14
|
||||
#define kNtImageDebugTypeMpx 15
|
||||
#define kNtImageDebugTypeRepro 16
|
||||
#define kNtImageDebugTypeBorland 9
|
||||
#define kNtImageDebugTypeReserved10 10
|
||||
#define kNtImageDebugTypeClsid 11
|
||||
#define kNtImageDebugTypeVcFeature 12
|
||||
#define kNtImageDebugTypePogo 13
|
||||
#define kNtImageDebugTypeIltcg 14
|
||||
#define kNtImageDebugTypeMpx 15
|
||||
#define kNtImageDebugTypeRepro 16
|
||||
|
||||
#define kNtFrameFpo 0
|
||||
#define kNtFrameTrap 1
|
||||
#define kNtFrameTss 2
|
||||
#define kNtFrameFpo 0
|
||||
#define kNtFrameTrap 1
|
||||
#define kNtFrameTss 2
|
||||
#define kNtFrameNonfpo 3
|
||||
|
||||
#define kNtImageSizeofShortName 8
|
||||
#define kNtImageSizeofSectionHeader 40
|
||||
#define kNtImageSizeofSymbol 18
|
||||
#define kNtImageEnclaveLongIdLength 32
|
||||
#define kNtImageEnclaveShortIdLength 16
|
||||
#define kNtImageSizeofShortName 8
|
||||
#define kNtImageSizeofSectionHeader 40
|
||||
#define kNtImageSizeofSymbol 18
|
||||
#define kNtImageEnclaveLongIdLength 32
|
||||
#define kNtImageEnclaveShortIdLength 16
|
||||
#define kNtImageNumberofDirectoryEntries 16
|
||||
|
||||
#endif /* COSMOPOLITAN_LIBC_NT_PEDEF_H_ */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue