diff options
Diffstat (limited to 'documentation/UEFI_from_spec/EFI_BOOT_SERVICES')
-rw-r--r-- | documentation/UEFI_from_spec/EFI_BOOT_SERVICES | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/documentation/UEFI_from_spec/EFI_BOOT_SERVICES b/documentation/UEFI_from_spec/EFI_BOOT_SERVICES new file mode 100644 index 0000000..d50840d --- /dev/null +++ b/documentation/UEFI_from_spec/EFI_BOOT_SERVICES @@ -0,0 +1,99 @@ +EFI Boot Services Table + contains a table header and pointers to all of the boot services. Except for the table header, all elements + in the EFI Boot Services Tables are prototypes of function pointers to functions as defined in Section 7. + The function pointers in this table are not valid after the operating system has taken control of the platform with a call to + EFI_BOOT_SERVICES.ExitBootServices(). + + + +typedef struct { + EFI_TABLE_HEADER Hdr; + + // Task Priority Services + EFI_RAISE_TPL RaiseTPL Raises the task priority level. + EFI_RESTORE_TPL RestoreTPL RestoreTPL Restores/lowers the task priority level + + // Memory Services + EFI_ALLOCATE_PAGES AllocatePages Allocates pages of a particular type + EFI_FREE_PAGES FreePages Frees allocated pages + EFI_GET_MEMORY_MAP GetMemoryMap Returns the current boot services memory map and memory map key + EFI_ALLOCATE_POOL AllocatePool Allocates a pool of a particular type + EFI_FREE_POOL FreePool Frees allocated pool + + // Event & Timer Services + EFI_CREATE_EVENT CreateEvent Creates a general-purpose event structure + EFI_SET_TIMER SetTimer Sets an event to be signaled at a particular time + EFI_WAIT_FOR_EVENT WaitForEvent Stops execution until an event is signaled + EFI_SIGNAL_EVENT SignalEvent Signals an event + EFI_CLOSE_EVENT CloseEvent Closes and frees an event structure + EFI_CHECK_EVENT CheckEvent Checks whether an event is in the signaled state + + // Protocol Handler Services + EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface Installs a protocol interface on a device handle + EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface Reinstalls a protocol interface on a device handle + EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface Removes a protocol interface from a device handle + EFI_HANDLE_PROTOCOL HandleProtocol ProtocolQueries a handle to determine if it supports + a specified protocol + VOID* Reserved Reserved. Must be NULLs + EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify Registers an event that is to be signaled whenever an interface is + installed for a specified protocol + EFI_LOCATE_HANDLE LocateHandle Returns an array of handles that support a specified protocol + EFI_LOCATE_DEVICE_PATH LocateDevicePath Locates all devices on a device path that support a specified + protocol and returns the handle to the device that is closest to + the path + EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable Adds, updates, or removes a configuration table from + the EFI System Table + + //Image Services + EFI_IMAGE_LOAD LoadImage Loads an EFI image into memory + EFI_IMAGE_START StartImage Transfers control to a loaded image’s entry point + EFI_EXIT Exit Exits the image’s entry point + EFI_IMAGE_UNLOAD UnloadImage Unloads an image + EFI_EXIT_BOOT_SERVICES ExitBootServices Terminates boot service + + // Miscellaneous Services + EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount Returns a monotonically increasing count for the platform + EFI_STALL Stall Stalls the processor + EFI_SET_WATCHDOG_TIMER SetWatchdogTimer Resets and sets a watchdog timer used during boot services time + + // DriverSupport Services + EFI_CONNECT_CONTROLLER ConnectController Uses a set of precedence rules to find the best set of drivers + to manage a controller + EFI_DISCONNET_CONTROLLER DisconnectController Informs a set of drivers to stop managing a controller + + // Open and Close Protocol Services + EFI_OPEN_PROTOCOL OpenProtocol Adds elements to the list of agents consuming a protocol interface + EFI_CLOSE_PROTOCOL CloseProtocol Removes elements from the list of agents consuming a protocol interface + EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation Retrieve the list of agents that are currently consuming a protocol interface + + // Library Services + EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle Retrieves the list of protocols installed on a handle. + The return buffer is automatically allocated + EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer Retrieves the list of handles from the handle database that + meet the search criteria. The return buffer is automatically + allocated + EFI_LOCATE_PROTOCOL LocateProtocol Finds the first handle in the handle database the supports + the requested protocol + EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces Installs one or more protocol interfaces onto a handle + EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces Uninstalls one or more protocol interfaces from a handle + + // 32-bit CRC Services + + EFI_CALCULATE_CRC32 CalculateCrc32 Computes and returns a 32-bit CRC for a data buffer + + // Miscellaneous Services + EFI_COPY_MEM CopyMem Copies the contents of one buffer to another buffer + EFI_SET_MEM SetMem Fills a buffer with a specified value + EFI_CREATE_EVENT_EX CreateEventEx Creates an event structure as part of an event group + } EFI_BOOT_SERVICES + + + + + +References +[1] UEFI Specification 2.8 Errata A - 4.4 Boot Services - pp 93 + + +References +[1] UEFI Specification 2.8 Errata A, February 2020 - 4.4 EFI Boot Services Table - pp 93 |