Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
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.Thegp 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 HandleProtocol()
Boot Service or the OpenProtocol() 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.