1 event, timer, and task priority services, 1 event, timer, and task priorityservices – Intel Extensible Firmware Interface User Manual

Page 100

Advertising
background image

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 PriorityServices

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 PriorityFunctions

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.

Advertising