Finished EFI System Table and EFI Simple Text Input Protocol

This commit is contained in:
Jozef Nagy 2024-01-21 10:30:12 +01:00
parent 9d885a0986
commit 25966996e3
No known key found for this signature in database
GPG key ID: 2D281D7D04AF4A3C

51
efi.h
View file

@ -25,6 +25,26 @@
#define TPL_HIGH_LEVEL 31 #define TPL_HIGH_LEVEL 31
// //
// EFI System Table Revisions
#define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249
#define EFI_2_100_SYSTEM_TABLE_REVISION ((2<<16) | (100))
#define EFI_2_90_SYSTEM_TABLE_REVISION ((2<<16) | (90))
#define EFI_2_80_SYSTEM_TABLE_REVISION ((2<<16) | (80))
#define EFI_2_70_SYSTEM_TABLE_REVISION ((2<<16) | (70))
#define EFI_2_60_SYSTEM_TABLE_REVISION ((2<<16) | (60))
#define EFI_2_50_SYSTEM_TABLE_REVISION ((2<<16) | (50))
#define EFI_2_40_SYSTEM_TABLE_REVISION ((2<<16) | (40))
#define EFI_2_31_SYSTEM_TABLE_REVISION ((2<<16) | (31))
#define EFI_2_30_SYSTEM_TABLE_REVISION ((2<<16) | (30))
#define EFI_2_20_SYSTEM_TABLE_REVISION ((2<<16) | (20))
#define EFI_2_10_SYSTEM_TABLE_REVISION ((2<<16) | (10))
#define EFI_2_00_SYSTEM_TABLE_REVISION ((2<<16) | (00))
#define EFI_1_10_SYSTEM_TABLE_REVISION ((1<<16) | (10))
#define EFI_1_02_SYSTEM_TABLE_REVISION ((1<<16) | (02))
#define EFI_SPECIFICATION_VERSION EFI_SYSTEM_TABLE_REVISION
#define EFI_SYSTEM_TABLE_REVISION EFI_2_100_SYSTEM_TABLE_REVISION
//
// OS Indications // OS Indications
#define EFI_OS_INDICATIONS_BOOT_TO_FW_UI 0x0000000000000001 #define EFI_OS_INDICATIONS_BOOT_TO_FW_UI 0x0000000000000001
#define EFI_OS_INDICATIONS_TIMESTAMP_REVOCATION 0x0000000000000002 #define EFI_OS_INDICATIONS_TIMESTAMP_REVOCATION 0x0000000000000002
@ -355,6 +375,13 @@ EFI_STATUS
OUT EFI_INPUT_KEY *Key OUT EFI_INPUT_KEY *Key
); );
typedef
EFI_STATUS
(EFIAPI *EFI_INPUT_RESET)(
IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,
IN BOOLEAN ExtendedVerification
);
// EFI Simple Text Output Protocol // EFI Simple Text Output Protocol
typedef typedef
@ -907,9 +934,9 @@ typedef struct EFI_DEVICE_PATH_PROTOCOL {
// EFI Simple Text Input Protocol // EFI Simple Text Input Protocol
typedef struct EFI_SIMPLE_TEXT_INPUT_PROTOCOL { typedef struct EFI_SIMPLE_TEXT_INPUT_PROTOCOL {
void *Reset; EFI_INPUT_RESET Reset;
EFI_INPUT_READ_KEY ReadKeyStroke; EFI_INPUT_READ_KEY ReadKeyStroke;
void *WaitForKey; EFI_EVENT WaitForKey;
} EFI_SIMPLE_TEXT_INPUT_PROTOCOL; } EFI_SIMPLE_TEXT_INPUT_PROTOCOL;
// EFI Simple Text Output Protocol // EFI Simple Text Output Protocol
@ -986,7 +1013,7 @@ typedef struct EFI_BOOT_SERVICES {
EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface; EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface;
EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface; EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface;
EFI_HANDLE_PROTOCOL HandleProtocol; EFI_HANDLE_PROTOCOL HandleProtocol;
void *Reserved; VOID *Reserved;
EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify; EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify;
EFI_LOCATE_HANDLE LocateHandle; EFI_LOCATE_HANDLE LocateHandle;
EFI_LOCATE_DEVICE_PATH LocateDevicePath; EFI_LOCATE_DEVICE_PATH LocateDevicePath;
@ -1035,22 +1062,28 @@ typedef struct {
VOID *CapsulePtr[ANYSIZE_ARRAY]; VOID *CapsulePtr[ANYSIZE_ARRAY];
} EFI_CAPSULE_TABLE; } EFI_CAPSULE_TABLE;
// EFI Configuration Table
typedef struct {
EFI_GUID VendorGuid;
VOID *VendorTable;
} EFI_CONFIGURATION_TABLE;
// EFI System Table // EFI System Table
typedef struct EFI_SYSTEM_TABLE { typedef struct EFI_SYSTEM_TABLE {
EFI_TABLE_HEADER Hdr; EFI_TABLE_HEADER Hdr;
void *FirmwareVendor; CHAR16 *FirmwareVendor;
UINT32 FirmwareRevision; UINT32 FirmwareRevision;
void *ConsoleInHandle; EFI_HANDLE ConsoleInHandle;
EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn; EFI_SIMPLE_TEXT_INPUT_PROTOCOL *ConIn;
void *ConsoleOutHandle; EFI_HANDLE ConsoleOutHandle;
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut; EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *ConOut;
void *StandardErrorHandle; EFI_HANDLE StandardErrorHandle;
void *StdErr; EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *StdErr;
EFI_RUNTIME_SERVICES *RuntimeServices; EFI_RUNTIME_SERVICES *RuntimeServices;
EFI_BOOT_SERVICES *BootServices; EFI_BOOT_SERVICES *BootServices;
UINTN NumberOfTableEntries; UINTN NumberOfTableEntries;
void *ConfigurationTable; EFI_CONFIGURATION_TABLE *ConfigurationTable;
} EFI_SYSTEM_TABLE; } EFI_SYSTEM_TABLE;
#endif /* EFI_H */ #endif /* EFI_H */