EFI Image
Version 1.02 12/12/00 113
typedef struct_EFI_CONFIGURATION_TABLE {
EFI_GUID VendorGuid;
VOID *VendorTable;
} EFI_CONFIGURATION_TABLE;
The EFI system table contains pointers to the runtime and boot services tables. The definitions for
these tables are shown in the following code fragments. Except for the table header, all elements in
the service tables are prototypes of function pointers to functions as defined in Chapter 3. The
GetTime() function is shown as an example.
NOTE
The size of the EFI system table, runtime services table, and boot services table may increase over
time. It is very important to always use the HeaderSize field of the EFI_TABLE_HEADER to
determine the size of these tables.
// Example interface prototype
typedef
EFI_STATUS
(EFIAPI *EFI_GET_TIME) (
OUT EFI_TIME *Time,
OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL
);
//
// EFI Runtime Services Table
//
#define EFI_RUNTIME_SERVICES_SIGNATURE 0x56524553544e5552
#define EFI_RUNTIME_SERVICES_REVISION (1<<16) | (99)
typedef struct {
EFI_TABLE_HEADER Hdr;
//
// Time Services
//
EFI_GET_TIME GetTime;
EFI_SET_TIME SetTime;
EFI_GET_WAKEUP_TIME GetWakeupTime;
EFI_SET_WAKEUP_TIME SetWakeupTime;
//
// Virtual Memory Services
//
EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;
EFI_CONVERT_POINTER ConvertPointer;
//
// Variable Services
//