Intel Extensible Firmware Interface User Manual

Page 224

Advertising
background image

Extensible Firmware Interface Specification

8-4

12/01/02

Version 1.10

A Device Path is a series of generic Device Path nodes. The first Device Path node starts at byte
offset zero of the Device Path. The next Device Path node starts at the end of the previous Device
Path node. Therefore all nodes are byte-packed data structures that may appear on any byte
boundary. All code references to device path notes must assume all fields are

UNALIGNED

. Since

every Device Path node contains a length field in a known place, it is possible to traverse Device
Path nodes that are of an unknown type. There is no limit to the number, type, or sequence of
nodes in a Device Path.

A Device Path is terminated by an End of Hardware Device Path node. This type of node has two
sub-types (see Table 8-2):

End This Instance of a Device Path (sub-type 0x01). This type of node terminates one Device

Path instance and denotes the start of another. This is only required when an environment
variable represents multiple devices. An example of this would be the

ConsoleOut

environment variable that consists of both a VGA console and serial output console. This
variable would describe a console output stream that is sent to both VGA and serial
concurrently and thus has a Device Path that contains two complete Device Paths.

End Entire Device Path (sub-type 0xFF). This type of node terminates an entire Device Path.

Software searches for this sub-type to find the end of a Device Path. All Device Paths must
end with this sub-type.

Table 8-2.

Device Path End Structure


Mnemonic

Byte
Offset

Byte
Length


Description

Type

0

1

Type 0x7F – End of Hardware Device Path

Type 0xFF – End of Hardware Device Path

Sub-Type 1

1

Sub-Type

0xFF

– End Entire Device Path, or

Sub-Type 0x01 – End This Instance of a Device Path and start a new

Device Path

Length

2

2

Length of this structure in bytes. Length is 4 bytes.

Advertising