Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
Extensible Firmware Interface Specification
5-2 12/01/02 Version 1.10
The rest of this chapter discusses individual functions. Global boot services functions fall into
these categories:
Event, Timer, and Task Priority Services (Section 5.1)
Memory Allocation Services (Section 5.2)
Protocol Handler Services (Section 5.3)
Image Services (Section 5.4)
Miscellaneous Services (Section 5.5)
5.1 Event, Timer, and Task Priority Services
The functions that make up the Event, Timer, and Task Priority Services are used during preboot to
create, close, signal, and wait for events; to set timers; and to raise and restore task priority levels.
See Table 5-1.
Table 5-1. Event, Timer, and Task Priority Functions
Name Type Description
CreateEvent Boot Creates a general-purpose event structure.
CloseEvent Boot Closes and frees an event structure.
SignalEvent Boot Signals an event.
WaitForEvent Boot Stops execution until an event is signaled.
CheckEvent Boot Checks whether an event is in the signaled state.
SetTimer Boot Sets an event to be signaled at a particular time.
RaiseTPL Boot Raises the task priority level.
RestoreTPL Boot Restores/lowers the task priority level.
Execution in the boot services environment occurs at different task priority levels, or TPLs. The
boot services environment exposes only three of these levels to EFI applications and drivers:
TPL_APPLICATION
, the lowest priority level
TPL_CALLBACK
, an intermediate priority level
TPL_NOTIFY
, the highest priority level
Tasks that execute at a higher priority level may interrupt tasks that execute at a lower priority
level. For example, tasks that run at the TPL_NOTIFY level may interrupt tasks that run at the
TPL_APPLICATION or TPL_CALLBACK level. While TPL_NOTIFY is the highest level
exposed to the boot services applications, the firmware may have higher task priority items it deals
with. For example, the firmware may have to deal with tasks of higher priority like timer ticks and
internal devices. Consequently, there is a fourth TPL, TPL_HIGH_LEVEL
, designed for use
exclusively by the firmware.