EFI CAPSULE BLOCK DESCRIPTOR

From PhoenixWiki

Jump to: navigation, search

Prototype

typedef struct (
  UINT64 Length;
  union {
    EFI_PHYSICAL_ADDRESS DataBlock;
    EFI_PHYSICAL_ADDRESS ContinuationPointer;
  }Union;
) EFI_CAPSULE_BLOCK_DESCRIPTOR;

Members

Member Description
Length Length in bytes of the data pointed to by DataBlock/ContinuationPointer.
DataBlock Physical address of the data block. This member of the union is used if Length is not equal to zero.
ContinuationPointer Physical address of another block of EFI_CAPSULE_BLOCK_DESCRIPTOR structures. This member of the union is used if Length is equal to zero. If ContinuationPointer is zero this entry represents the end of the list.

Description

This data structure defines the ScatterGatherList list the OS passes to the firmware. ScatterGatherList represents an array of structures and is terminated with a structure member whose Length is 0 and DataBlock physical address is 0. If Length is 0 and DataBlock physical address is not 0, the specified physical address is known as a “continuation pointer” and it points to a further list of EFI_CAPSULE_BLOCK_DESCRIPTOR structures. A continuation pointer is used to allow the scatter gather list to be contained in physical memory that is not contiguous. It also is used to allow more than a single capsule to be passed at one time.


Copyright (C) 2008 Phoenix Technologies Ltd. All Rights Reserved. Portions copyright (C) 2008 UEFI Forum, Inc. Used with permission.

Personal tools