diff --git a/efi_st.h b/efi_st.h index 51040a8..97935db 100644 --- a/efi_st.h +++ b/efi_st.h @@ -25,8 +25,10 @@ #define EFI_SPECIFICATION_VERSION EFI_SYSTEM_TABLE_REVISION #define EFI_SYSTEM_TABLE_REVISION EFI_2_100_SYSTEM_TABLE_REVISION -#define EFI_ACPI_10_TABLE_GUID {0xeb9d2d30,0x2d88,0x11d3, {0x9a,0x16,0x00,0x90,0x27,0x3f,0xc1,0x4d}} +#define ACPI_TABLE_GUID {0xeb9d2d30,0x2d88,0x11d3, {0x9a,0x16,0x00,0x90,0x27,0x3f,0xc1,0x4d}} #define EFI_ACPI_20_TABLE_GUID {0x8868e871,0xe4f1,0x11d3, {0xbc,0x22,0x00,0x80,0xc7,0x3c,0x88,0x81}} +#define ACPI_10_TABLE_GUID ACPI_TABLE_GUID* +#define EFI_ACPI_TABLE_GUID {0x8868e871,0xe4f1,0x11d3, {0xbc,0x22,0x00,0x80,0xc7,0x3c,0x88,0x81}} #define SAL_SYSTEM_TABLE_GUID {0xeb9d2d32,0x2d88,0x11d3, {0x9a,0x16,0x00,0x90,0x27,0x3f,0xc1,0x4d}} #define SMBIOS_TABLE_GUID {0xeb9d2d31,0x2d88,0x11d3, {0x9a,0x16,0x00,0x90,0x27,0x3f,0xc1,0x4d}} #define SMBIOS3_TABLE_GUID {0xf2fd1544, 0x9794, 0x4a2c, {0x99,0x2e,0xe5,0xbb,0xcf,0x20,0xe3,0x94}} diff --git a/efi_types.h b/efi_types.h index f1a057c..c56fb5e 100644 --- a/efi_types.h +++ b/efi_types.h @@ -1,21 +1,36 @@ #ifndef EFI_TYPES_H #define EFI_TYPES_H -#include +// Standard Data types +typedef char efi_int8_t; +typedef unsigned char efi_uint8_t; +typedef short efi_int16_t; +typedef unsigned short efi_uint16_t; +typedef efi_int efi_int32_t; +typedef unsigned efi_int efi_uint32_t; +#if defined(_X64) +typedef long efi_int64_t; +typedef unsigned long efi_uint64_t; +#elif defined (_X32) +typedef long long efi_int64_t; +typedef unsigned long long efi_uint64_t; +#else +#error _X32/_X64 is undefined! +#endif // Common UEFI Data types -typedef int8_t EFI_INT8; -typedef uint8_t EFI_UINT8; -typedef int16_t EFI_INT16; -typedef uint16_t EFI_UINT16; -typedef int32_t EFI_INT32; -typedef uint32_t EFI_UINT32; -typedef int64_t EFI_INT64; -typedef uint64_t EFI_UINT64; -typedef int64_t EFI_INTN; -typedef uint64_t EFI_UINTN; +typedef efi_int8_t EFI_INT8; +typedef efi_uint8_t EFI_UINT8; +typedef efi_int16_t EFI_INT16; +typedef efi_uint16_t EFI_UINT16; +typedef efi_int32_t EFI_INT32; +typedef efi_uint32_t EFI_UINT32; +typedef efi_int64_t EFI_INT64; +typedef efi_uint64_t EFI_UINT64; +typedef efi_int64_t EFI_INTN; +typedef efi_uint64_t EFI_UINTN; typedef char CHAR8; -typedef uint16_t CHAR16; +typedef efi_uint16_t CHAR16; typedef void VOID; typedef EFI_INT32 EFI_INT; @@ -162,7 +177,7 @@ typedef struct { #define EFI_BACKGROUND_BROWN 0x60 #define EFI_BACKGROUND_LIGHTGRAY 0x70 -// Converts Foreground and Background colors into a single value +// Converts Foreground and Background colors efi_into a single value #define EFI_TEXT_ATTR(Foreground,Background) \ ((Foreground) | ((Background) << 4)) diff --git a/efilib.h b/efilib.h index 5a2907b..40e0750 100644 --- a/efilib.h +++ b/efilib.h @@ -2,96 +2,9 @@ #define EFI_EFILIB_H #include "efi.h" +#include "efi_st.h" -#define EFI_ERROR(status) (((EFI_INTN)(status)) < 0) - -static inline const char *efi_status_to_str(EFI_STATUS s) -{ - switch (s) { - case EFI_SUCCESS: - return "Success"; - case EFI_LOAD_ERROR: - return "Image failed to load"; - case EFI_INVALID_PARAMETER: - return "Invalid parameter specified"; - case EFI_UNSUPPORTED: - return "Operation not supported"; - case EFI_BAD_BUFFER_SIZE: - return "Improper buffer size"; - case EFI_BUFFER_TOO_SMALL: - return "Buffer is too small"; - case EFI_NOT_READY: - return "No data pending"; - case EFI_DEVICE_ERROR: - return "Device reported an error"; - case EFI_WRITE_PROTECTED: - return "Device has write protection"; - case EFI_OUT_OF_RESOURCES: - return "Out of resources"; - case EFI_VOLUME_CORRUPTED: - return "File system is corrupted"; - case EFI_VOLUME_FULL: - return "No more space on filesystem"; - case EFI_NO_MEDIA: - return "No medium found"; - case EFI_MEDIA_CHANGED: - return "Medium has changed"; - case EFI_NOT_FOUND: - return "Item not found"; - case EFI_ACCESS_DENIED: - return "Access denied"; - case EFI_NO_RESPONSE: - return "Server was not found or did not respond"; - case EFI_NO_MAPPING: - return "A mapping to a device doesn't exist"; - case EFI_TIMEOUT: - return "Timeout"; - case EFI_NOT_STARTED: - return "Protocol has not been started yet"; - case EFI_ALREADY_STARTED: - return "Protocol has already been started"; - case EFI_ABORTED: - return "Operation was aborted"; - case EFI_ICMP_ERROR: - return "ICMP error"; - case EFI_TFTP_ERROR: - return "TFTP error"; - case EFI_PROTOCOL_ERROR: - return "Protocol error"; - case EFI_INCOMPATIBLE_VERSION: - return "Incompatible version"; - case EFI_SECURITY_VIOLATION: - return "Security violation"; - case EFI_CRC_ERROR: - return "CRC error"; - case EFI_END_OF_MEDIA: - return "End of media reached"; - case EFI_END_OF_FILE: - return "End of file reached"; - case EFI_INVALID_LANGUAGE: - return "Invalid language specified"; - case EFI_COMPROMISED_DATA: - return "Security status of data is unknown or compromised"; - case EFI_IP_ADDRESS_CONFLICT: - return "IP Address conflict"; - case EFI_HTTP_ERROR: - return "HTTP Error"; - default: - return "Unknown Error"; - } - - __builtin_unreachable(); - return "Unknown Error"; -} - -/* AxBoot-specific stuff */ -#ifdef AXBOOT_UEFI - -extern EFI_HANDLE gImageHandle; -extern EFI_SYSTEM_TABLE *gSystemTable; -extern EFI_BOOT_SERVICES *gBootServices; - -#endif +#define EFI_ERROR(status) (((INTN)(status)) < 0) #endif /* EFI_EFILIB_H */ diff --git a/protocols/console_support.h b/protocols/console_support.h index cc7c81d..dfd5d22 100644 --- a/protocols/console_support.h +++ b/protocols/console_support.h @@ -31,13 +31,6 @@ #define EFI_SCANCODE_FN10 0x14 #define EFI_SCANCODE_ESC 0x17 -// EFI special characters -#define EFI_CHAR_NULL 0x0000 -#define EFI_CHAR_BACKSPACE 0x0008 -#define EFI_CHAR_TAB 0x0009 -#define EFI_CHAR_LINEFEED 0x000A -#define EFI_CHAR_CARRIAGE_RETURN 0x000D - typedef struct _EFI_SIMPLE_TEXT_INPUT_PROTOCOL EFI_SIMPLE_TEXT_INPUT_PROTOCOL; typedef struct { @@ -257,7 +250,7 @@ EFI_STATUS ); typedef struct { - EFI_INT32 MaxMode; + EFI_INT32 MaxNode; // Current settings EFI_INT32 Mode; diff --git a/protocols/media_access.h b/protocols/media_access.h index 1d4d2dd..28e8a64 100644 --- a/protocols/media_access.h +++ b/protocols/media_access.h @@ -41,8 +41,6 @@ typedef EFI_LOAD_FILE_PROTOCOL EFI_LOAD_FILE2_PROTOCOL; #define EFI_FILE_PROTOCOL_REVISION2 0x00020000 #define EFI_FILE_PROTOCOL_LATEST_REVISION EFI_FILE_PROTOCOL_REVISION2 -#define EFI_FILE_INFO_GUID {0x09576e92,0x6d3f,0x11d2, {0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b}} - #define EFI_FILE_MODE_READ 0x0000000000000001 #define EFI_FILE_MODE_WRITE 0x0000000000000002 #define EFI_FILE_MODE_CREATE 0x8000000000000000 @@ -64,17 +62,6 @@ typedef struct { VOID *Buffer; } EFI_FILE_IO_TOKEN; -typedef struct { - EFI_UINT64 Size; - EFI_UINT64 FileSize; - EFI_UINT64 PhysicalSize; - EFI_TIME CreateTime; - EFI_TIME LastAccessTime; - EFI_TIME ModificationTime; - EFI_UINT64 Attribute; - CHAR16 FileName[256]; -} EFI_FILE_INFO; - typedef EFI_STATUS (EFIAPI *EFI_FILE_OPEN)( @@ -133,7 +120,7 @@ EFI_STATUS IN EFI_FILE_PROTOCOL *This, IN EFI_GUID *InformationType, IN OUT EFI_UINTN *BufferSize, - OUT EFI_FILE_INFO *Buffer + OUT VOID *Buffer ); typedef @@ -142,7 +129,7 @@ EFI_STATUS IN EFI_FILE_PROTOCOL *This, IN EFI_GUID *InformationType, IN EFI_UINTN BufferSize, - IN EFI_FILE_INFO *Buffer + IN VOID *Buffer ); typedef