summaryrefslogtreecommitdiffstats
path: root/documentation/UEFI_from_spec/EFI_BOOT_SERVICES
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/UEFI_from_spec/EFI_BOOT_SERVICES')
-rw-r--r--documentation/UEFI_from_spec/EFI_BOOT_SERVICES99
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