Extensible Firmware Interface Specification
Description
The
RaiseTPL()
previous priority level.
Only three task priority levels are exposed outside of the firmware during EFI boot services
execution. The first is
be interrupted to perform various asynchronous interrupt style notifications, which occur at the
or
TPL_CALLBACK
notifications are masked until the task priority level is restored, thereby synchronizing execution
with such notifications. Synchronous blocking I/O functions execute at TPL_NOTIFY.
is the typically used for application level notification functions. Device drivers
TPL_CALLBACK
will typically use
TPL_CALLBACK
and drivers may also use
The caller must restore the task priority level with
returning.
Note: If
is below the current TPL level, then the system behavior is indeterminate.
NewTpl
Additionally, only TPL_APPLICATION, TPL_CALLBACK, TPL_NOTIFY, and
TPL_HIGH_LEVEL
them will result in unpredictable behavior. Good codeing practice dictates that all code should
execute at its lowest possible TPL level, and the use of TPL levels above
must be minimized. Executing at TPL levels above
time may also result in unpredictable behavior.
Status Codes Returned
Unlike other EFI interface functions,
returns the previous task priority level, which is to be restored later with a matching call to
RestoreTPL().
40
function raises the priority of the currently executing task and returns its
TPL_APPLICATION
level. By raising the task priority level to
TPL_NOTIFY
or
TPL_NOTIFY
to protect data structures in critical sections of code.
TPL_NOTIFY
may be used. All other values are reserved for use by the firmware; using
RaiseTPL()
12/12/00
where all normal execution occurs. That level may
for their notification functions. Applications
to the previous level before
RestoreTPL()
TPL_APPLICATION
does not return a status code. Instead, it
such
TPL_NOTIFY
TPL_APPLICATION
for extended periods of
Version 1.02
Need help?
Do you have a question about the Extensible Firmware Interface and is the answer not in the manual?