Extensible Firmware Interface Specification
Table 3-2.
TPL Usage (continued)
Task Priority Level
(Firmware Interrupts)
TPL_HIGH_LEVEL
Executing code can temporarily raise its priority level by calling the
Doing this masks event notifications from code running at equal or lower priority levels until the
function is called to reduce the priority to a level below that of the pending event
RestoreTPL()
notifications. There are restrictions on the TPL levels at which many EFI service functions and
protocol interface functions can execute. Table 3-3 summarizes the restrictions.
Table 3-3.
TPL Restrictions
Name
Memory Allocation Services
Variable Services
ExitBootServices()
LoadImage()
WaitForEvent()
SignalEvent()
Event Notification Levels
Protocol Interface Functions
Block I/O Protocol
Disk I/O Protocol
Simple File System Protocol
Simple Input Protocol
Simple Text Output Protocol
Serial I/O Protocol
PXE Base Code Protocol
Simple Network Protocol
28
Usage
This level is internal to the firmware. It is the level at which internal interrupts
occur. Code running at this level interrupts code running at the
TPL_NOTIFY
level (or lower levels). If the interrupt requires extended time
to complete, firmware signals another event (or events) to perform the longer
term operations so that other interrupts can occur.
Interrupts code executing below
priority level. It is not interruptable (interrupts are disabled) and is used
sparingly by firmware to synchronize operations that need to be accessible
from any priority level. For example, it must be possible to signal events while
executing at any priority level. Therefore, firmware manipulates the internal
event structure while at this priority level.
Restriction
Task Priority Level
<=
TPL_NOTIFY
<=
TPL_CALLBACK
=
TPL_APPLICATION
<=
TPL_CALLBACK
=
TPL_APPLICATION
<=
TPL_HIGH_LEVEL
>
TPL_APPLICATION
<=
TPL_HIGH_LEVEL
<=
TPL_NOTIIFY
<=
TPL_CALLBACK
<=
TPL_CALLBACK
<=
TPL_CALLBACK
<=
TPL_APPLICATION
<=
TPL_NOTIFY
<=
TPL_CALLBACK
<=
TPL_CALLBACK
<=
TPL_CALLBACK
12/12/00
TPL_HIGH_LEVEL
. This is the highest
RaiseTPL()
Version 1.02
function.
Need help?
Do you have a question about the Extensible Firmware Interface and is the answer not in the manual?