Intel Extensible Firmware Interface User Manual

Page 680

Advertising
background image

Extensible Firmware Interface Specification

15-74

12/01/02

Version 1.10

//*******************************************************
// EFI_BIS_VERSION predefined values
//

Use these values to initialize EFI_BIS_VERSION.Major

//

and to interpret results of Initialize.

//*******************************************************
#define BIS_CURRENT_VERSION_MAJOR

BIS_VERSION_1

#define BIS_VERSION_1

1

These C preprocessor macros supply values for the major version number of an

EFI_BIS_VERSION

. At the time of initialization, a caller supplies a value to request a BIS

interface version. On return, the (IN OUT) parameter is over-written with the actual version of the
interface.

//*******************************************************
// EFI_BIS_DATA
//
// EFI_BIS_DATA instances obtained from BIS must be freed by
// calling Free().
//*******************************************************
typedef struct _EFI_BIS_DATA {

UINT32

Length;

UINT8

*Data;

} EFI_BIS_DATA;

Length

The length of the data buffer in bytes.

Data

A pointer to the raw data buffer.

This type defines a structure that describes a buffer. BIS uses this type to pass back and forth most
large objects such as digital certificates, strings, etc.. Several of the BIS functions allocate a

EFI_BIS_DATA*

and return it as an “out” parameter. The caller must eventually free any

allocated

EFI_BIS_DATA*

using the

Free()

function.

Description

This function must be the first BIS function invoked by an application. It passes back a

BIS_APPLICATION_HANDLE

value that must be used in subsequent BIS functions. The handle

must be eventually destroyed by a call to the

Shutdown()

function, thus ending that handle’s

lifetime. After the handle is destroyed, BIS functions may no longer be called with that handle
value. Thus all other BIS functions may only be called between a pair of

Initialize()

and

Shutdown()

functions.

There is no penalty for calling

Initialize()

multiple times. Each call passes back a distinct

handle value. Each distinct handle must be destroyed by a distinct call to

Shutdown()

. T he

lifetimes of handles created and destroyed with these functions may be overlapped in any way.

Advertising