summaryrefslogtreecommitdiffstats
path: root/documentation/UEFI/EFI_BOOT_SERVICES
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