1 handoff state, 4 protocols – Intel Extensible Firmware Interface User Manual
Page 52

Extensible Firmware Interface Specification
2-12
12/01/02
Version 1.10
2.3.3.1
Handoff State
EFI uses the standard P64 C calling conventions that are defined for Itanium-based operating
systems. Figure 2-3 shows the stack after
ImageEntryPoint
has been called on Itanium-based
systems. The arguments are also stored in registers: out0 contains
EFI_HANDLE
and out1
contains the address of the
EFI_SYSTEM_TABLE
. The gp for the EFI Image will have been
loaded from the plabel pointed to by the
AddressOfEntryPoint
in the image’s PE32+
header. All EFI image entry points take two parameters. These are the image handle of the EFI
image, and a pointer to the EFI System Table.
OM13146
EFI_SYSTEM_TABLE *
EFI_HANDLE
SP + 8
SP
out1
out0
Stack Location Register
Figure 2-3. Stack after
AddressOfEntryPoint
Called, Itanium-based Systems
The SAL specification (see the References appendix) defines the state of the system registers at
boot handoff. The SAL specification also defines which system registers can only be used after
EFI boot services have been properly terminated.
2.4
Protocols
The protocols that a device handle supports are discovered through the
Boot Service or the
Boot Service. Each protocol has a specification that
includes the following:
• The protocol’s globally unique ID (GUID)
• The Protocol Interface structure
• The Protocol Services
To determine if the handle supports any given protocol, the protocol’s GUID is passed to
HandleProtocol()
or
OpenProtocol()
. If the device supports the requested protocol, a
pointer to the defined Protocol Interface structure is returned. The Protocol Interface structure links
the caller to the protocol-specific services to use for this device.