MdePkg[all]  1.08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
NvdimmLabel.h File Reference

Data Structures

struct  EFI_NVDIMM_LABEL_INDEX_BLOCK
 
struct  EFI_NVDIMM_LABEL
 
struct  EFI_NVDIMM_LABEL_SET_COOKIE_MAP
 
struct  EFI_NVDIMM_LABEL_SET_COOKIE_INFO
 
struct  _EFI_NVDIMM_LABEL_PROTOCOL
 

Macros

#define EFI_NVDIMM_LABEL_PROTOCOL_GUID
 
#define EFI_NVDIMM_LABEL_INDEX_SIG_LEN   16
 
#define EFI_NVDIMM_LABEL_INDEX_ALIGN   256
 
#define EFI_NVDIMM_LABEL_NAME_LEN   64
 
#define EFI_NVDIMM_LABEL_FLAGS_ROLABEL   0x00000001
 
#define EFI_NVDIMM_LABEL_FLAGS_LOCAL   0x00000002
 
#define EFI_NVDIMM_LABEL_FLAGS_RESERVED   0x00000004
 
#define EFI_NVDIMM_LABEL_FLAGS_UPDATING   0x00000008
 

Typedefs

typedef struct
_EFI_NVDIMM_LABEL_PROTOCOL 
EFI_NVDIMM_LABEL_PROTOCOL
 
typedef OUT UINT32SizeOfLabelStorageArea
 
typedef OUT UINT32 OUT UINT32MaxTransferLength
 
typedef IN UINT32 Offset
 
typedef IN UINT32 IN UINT32 TransferLength
 
typedef IN UINT32 IN UINT32
OUT UINT8
LabelData
 

Functions

typedef EFI_STATUS (EFIAPI *EFI_NVDIMM_LABEL_STORAGE_INFORMATION)(IN EFI_NVDIMM_LABEL_PROTOCOL *This
 

Variables

EFI_GUID gEfiNvdimmLabelProtocolGuid
 

Detailed Description

EFI NVDIMM Label Protocol Definition

The EFI NVDIMM Label Protocol is used to Provides services that allow management of labels contained in a Label Storage Area that are associated with a specific NVDIMM Device Path.

Copyright (c) 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Revision Reference:
This Protocol was introduced in UEFI Specification 2.7.

Macro Definition Documentation

#define EFI_NVDIMM_LABEL_FLAGS_LOCAL   0x00000002

When set, the complete label set is local to a single NVDIMM Label Storage Area. When clear, the complete label set is contained on multiple NVDIMM Label Storage Areas.

#define EFI_NVDIMM_LABEL_FLAGS_RESERVED   0x00000004

This reserved flag is utilized on older implementations and has been deprecated. Do not use.

#define EFI_NVDIMM_LABEL_FLAGS_ROLABEL   0x00000001

The label is read-only.

#define EFI_NVDIMM_LABEL_FLAGS_UPDATING   0x00000008

When set, the label set is being updated.

#define EFI_NVDIMM_LABEL_INDEX_ALIGN   256
#define EFI_NVDIMM_LABEL_INDEX_SIG_LEN   16
#define EFI_NVDIMM_LABEL_NAME_LEN   64
#define EFI_NVDIMM_LABEL_PROTOCOL_GUID
Value:
{ \
0xd40b6b80, 0x97d5, 0x4282, {0xbb, 0x1d, 0x22, 0x3a, 0x16, 0x91, 0x80, 0x58 } \
}

Typedef Documentation

Function Documentation

typedef EFI_STATUS ( EFIAPI EFI_NVDIMM_LABEL_STORAGE_WRITE)

Retrieves the Label Storage Area size and the maximum transfer size for the LabelStorageRead and LabelStorageWrite methods.

Parameters
ThisA pointer to the EFI_NVDIMM_LABEL_PROTOCOL instance.
SizeOfLabelStorageAreaThe size of the Label Storage Area for the NVDIMM in bytes.
MaxTransferLengthThe maximum number of bytes that can be transferred in a single call to LabelStorageRead or LabelStorageWrite.
Return values
EFI_SUCCESSThe size of theLabel Storage Area and maximum transfer size returned are valid.
EFI_ACCESS_DENIEDThe Label Storage Area for the NVDIMM device is not currently accessible.
EFI_DEVICE_ERRORA physical device error occurred and the data transfer failed to complete.

Retrieves the label data for the requested offset and length from within the Label Storage Area for the NVDIMM.

Parameters
ThisA pointer to the EFI_NVDIMM_LABEL_PROTOCOL instance.
OffsetThe byte offset within the Label Storage Area to read from.
TransferLengthNumber of bytes to read from the Label Storage Area beginning at the byte Offset specified. A TransferLength of 0 reads no data.
LabelDataThe return label data read at the requested offset and length from within the Label Storage Area.
Return values
EFI_SUCCESSThe label data from the Label Storage Area for the NVDIMM was read successfully at the specified Offset and TransferLength and LabelData contains valid data.
EFI_INVALID_PARAMETERAny of the following are true:
  • Offset > SizeOfLabelStorageArea reported in the LabelStorageInformation return data.
  • Offset + TransferLength is > SizeOfLabelStorageArea reported in the LabelStorageInformation return data.
  • TransferLength is > MaxTransferLength reported in the LabelStorageInformation return data.
EFI_ACCESS_DENIEDThe Label Storage Area for the NVDIMM device is not currently accessible and labels cannot be read at this time.
EFI_DEVICE_ERRORA physical device error occurred and the data transfer failed to complete.

Writes the label data for the requested offset and length in to the Label Storage Area for the NVDIMM.

Parameters
ThisA pointer to the EFI_NVDIMM_LABEL_PROTOCOL instance.
OffsetThe byte offset within the Label Storage Area to write to.
TransferLengthNumber of bytes to write to the Label Storage Area beginning at the byte Offset specified. A TransferLength of 0 writes no data.
LabelDataThe return label data write at the requested offset and length from within the Label Storage Area.
Return values
EFI_SUCCESSThe label data from the Label Storage Area for the NVDIMM written read successfully at the specified Offset and TransferLength.
EFI_INVALID_PARAMETERAny of the following are true:
  • Offset > SizeOfLabelStorageArea reported in the LabelStorageInformation return data.
  • Offset + TransferLength is > SizeOfLabelStorageArea reported in the LabelStorageInformation return data.
  • TransferLength is > MaxTransferLength reported in the LabelStorageInformation return data.
EFI_ACCESS_DENIEDThe Label Storage Area for the NVDIMM device is not currently accessible and labels cannot be written at this time.
EFI_DEVICE_ERRORA physical device error occurred and the data transfer failed to complete.

Variable Documentation

EFI_GUID gEfiNvdimmLabelProtocolGuid