TianoCore EDK2 master
NvdimmLabel.h
Go to the documentation of this file.
1
16#ifndef __EFI_NVDIMM_LABEL_PROTOCOL_H__
17#define __EFI_NVDIMM_LABEL_PROTOCOL_H__
18
19#define EFI_NVDIMM_LABEL_PROTOCOL_GUID \
20 { \
21 0xd40b6b80, 0x97d5, 0x4282, {0xbb, 0x1d, 0x22, 0x3a, 0x16, 0x91, 0x80, 0x58 } \
22 }
23
25
26#define EFI_NVDIMM_LABEL_INDEX_SIG_LEN 16
27#define EFI_NVDIMM_LABEL_INDEX_ALIGN 256
28typedef struct {
32 CHAR8 Sig[EFI_NVDIMM_LABEL_INDEX_SIG_LEN];
33
37 UINT8 Flags[3];
38
43 UINT8 LabelSize;
44
48 UINT32 Seq;
49
53 UINT64 MyOff;
54
59 UINT64 MySize;
60
64 UINT64 OtherOff;
65
69 UINT64 LabelOff;
70
74 UINT32 NSlot;
75
79 UINT16 Major;
80
84 UINT16 Minor;
85
89 UINT64 Checksum;
90
98 UINT8 Free[];
100
101#define EFI_NVDIMM_LABEL_NAME_LEN 64
102
106#define EFI_NVDIMM_LABEL_FLAGS_ROLABEL 0x00000001
107
112#define EFI_NVDIMM_LABEL_FLAGS_LOCAL 0x00000002
113
117//
118#define EFI_NVDIMM_LABEL_FLAGS_RESERVED 0x00000004
119
123#define EFI_NVDIMM_LABEL_FLAGS_UPDATING 0x00000008
124
125typedef struct {
130
134 CHAR8 Name[EFI_NVDIMM_LABEL_NAME_LEN];
135
139 UINT32 Flags;
140
144 UINT16 NLabel;
145
149 UINT16 Position;
150
156 UINT64 SetCookie;
157
162 UINT64 LbaSize;
163
167 UINT64 Dpa;
168
172 UINT64 RawSize;
173
177 UINT32 Slot;
178
183
187 UINT8 Reserved[3];
188
193
198
202 UINT8 Reserved1[88];
203
208 UINT64 Checksum;
210
211typedef struct {
216
221
225 UINT16 VendorId;
226
231
236
240 UINT8 Reserved[31];
242
243typedef struct {
249
263typedef
267 OUT UINT32 *SizeOfLabelStorageArea,
268 OUT UINT32 *MaxTransferLength
269 );
270
294typedef
298 IN UINT32 Offset,
299 IN UINT32 TransferLength,
300 OUT UINT8 *LabelData
301 );
302
325typedef
329 IN UINT32 Offset,
330 IN UINT32 TransferLength,
331 IN UINT8 *LabelData
332 );
333
338 EFI_NVDIMM_LABEL_STORAGE_INFORMATION LabelStorageInformation;
339 EFI_NVDIMM_LABEL_STORAGE_READ LabelStorageRead;
340 EFI_NVDIMM_LABEL_STORAGE_WRITE LabelStorageWrite;
341};
342
343extern EFI_GUID gEfiNvdimmLabelProtocolGuid;
344
345#endif
#define CONST
Definition: Base.h:259
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
EFI_STATUS(EFIAPI * EFI_NVDIMM_LABEL_STORAGE_WRITE)(IN CONST EFI_NVDIMM_LABEL_PROTOCOL *This, IN UINT32 Offset, IN UINT32 TransferLength, IN UINT8 *LabelData)
Definition: NvdimmLabel.h:327
EFI_STATUS(EFIAPI * EFI_NVDIMM_LABEL_STORAGE_READ)(IN CONST EFI_NVDIMM_LABEL_PROTOCOL *This, IN UINT32 Offset, IN UINT32 TransferLength, OUT UINT8 *LabelData)
Definition: NvdimmLabel.h:296
EFI_STATUS(EFIAPI * EFI_NVDIMM_LABEL_STORAGE_INFORMATION)(IN EFI_NVDIMM_LABEL_PROTOCOL *This, OUT UINT32 *SizeOfLabelStorageArea, OUT UINT32 *MaxTransferLength)
Definition: NvdimmLabel.h:265
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:28
EFI_GUID TypeGuid
Definition: NvdimmLabel.h:192
EFI_GUID AddressAbstractionGuid
Definition: NvdimmLabel.h:197
Definition: Base.h:213