Extensible Firmware Interface
Library Specification
Draft for Review
Version 1.10.1
January 5, 2004
EFI Library Specification
ii January 2004 Version 1.10.1
THIS SPECIFICATION IS PROVIDED "AS IS" WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY
OF MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY
OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE. Except for a limited copyright license
to copy this specification for internal use only, no license, express or implied, by estoppel or otherwise, to any intellectual
property rights is granted herein.
Intel disclaims all liability, including liability for infringement of any proprietary rights, relating to implementation of information
in this specification. Intel does not warrant or represent that such implementation(s) will not infringe such rights.
Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined."
Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising
from future changes to them.
This document is an intermediate draft for comment only and is subject to change without notice. Readers should not design
products based on this document.
Intel, the Intel logo, and Itanium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United
States and other countries.
* Other names and brands may be claimed as the property of others.
Copyright © 1999–2004, Intel Corporation.
Version 1.10.1 January 2004 iii
Revision History
Revision Revision History Date Author
0.1 Initial review draft 3/24/99 Intel
0.2 Updated to match 0.91.007 Sample Implementation 7/14/99 Intel
0.9 Updated to match 0.91.009 Sample Implementation 11/17/99 Intel
0.99 Updated to match 0.99.12.20 Sample
Implementation
4/24/00 Intel
1.1 Updated to match the 1.1 Sample Implementation
Release
Changed headers/footers.
7/31/01 Intel
1.10 Updated to match the EFI 1.10.14.54 Sample
Implementation that matches the 0.9 draft of the EFI
1.10 Specification
12/16/01 Intel
1.10.1 Updated to match the EFI 1.10.14.62 Application
Toolkit that matches the final version of the EFI 1.10
Specification.
1/5/04 Intel
EFI Library Specification
iv January 2004 Version 1.10.1
Version 1.10.1 January 2004 v
Contents
1 Introduction .................................................................................................... 11
1.1 Overview ......................................................................................................................11
1.2 Organization of this Document.....................................................................................11
1.3 Goals............................................................................................................................12
1.4 Target Audience...........................................................................................................12
1.5 Prerequisite Specifications...........................................................................................12
1.6 Conventions Used in This Document...........................................................................12
1.6.1 Data Structure Descriptions...........................................................................13
1.6.2 Procedure Descriptions .................................................................................14
1.6.3 Pseudo-Code Conventions............................................................................14
1.6.4 Typographic Conventions..............................................................................15
2 Constants........................................................................................................ 17
2.1 Constants.....................................................................................................................17
3 Global Variables ............................................................................................. 19
3.1 Global Variables...........................................................................................................19
3.2 EFI_GUID Variables.....................................................................................................19
3.2.1 Exported by EFI Library.................................................................................19
3.2.2 For EFI IDs ....................................................................................................20
3.2.3 For File System Information IDs....................................................................20
3.2.4 For Device Path Media Protocol IDs .............................................................20
3.2.5 For Sample Implementation Vendor Device Path GUIDs..............................20
3.2.6 For Disk Type Entries....................................................................................20
3.2.7 For EFI Configuration Table Entries..............................................................21
3.3 Device Path Data Structures........................................................................................21
3.4 Device I/O Protocol Interface .......................................................................................21
3.5 Memory Allocation Type...............................................................................................21
4 Functions and Macros ................................................................................... 23
4.1 Introduction ..................................................................................................................23
4.2 Initialization Functions..................................................................................................23
InitializeLib()......................................................................................................24
InitializeUnicodeSupport().................................................................................25
4.3 Linked List Support Macros..........................................................................................26
4.3.1 Related Definitions ........................................................................................27
LIST_ENTRY ....................................................................................................27
4.3.2 Macros........................................................................................................... 28
InitializeListHead().............................................................................................28
IsListEmpty() .....................................................................................................29
RemoveEntryList() ............................................................................................30
InsertTailList() ...................................................................................................31
InsertHeadList().................................................................................................32