blob: d50840d977ca85cfc1c8b10b3611d5d30b2b1a75 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
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
|