TianoCore EDK2 master
Loading...
Searching...
No Matches
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
114#define EFI_NVDIMM_LABEL_FLAGS_LOCAL 0x00000002
115
119//
120#define EFI_NVDIMM_LABEL_FLAGS_RESERVED 0x00000004
121
125#define EFI_NVDIMM_LABEL_FLAGS_UPDATING 0x00000008
126
131#define EFI_NVDIMM_LABEL_FLAGS_SPACOOKIE_BOUND 0x00000010
132
133typedef struct {
138
142 CHAR8 Name[EFI_NVDIMM_LABEL_NAME_LEN];
143
147 UINT32 Flags;
148
152 UINT16 NLabel;
153
157 UINT16 Position;
158
164 UINT64 SetCookie;
165
170 UINT64 LbaSize;
171
175 UINT64 Dpa;
176
180 UINT64 RawSize;
181
185 UINT32 Slot;
186
191
195 UINT8 Reserved[3];
196
201
206
214
218 UINT8 Reserved1[80];
219
224 UINT64 Checksum;
226
227typedef struct {
232
237
241 UINT16 VendorId;
242
247
252
256 UINT8 Reserved[31];
258
259typedef struct {
265
279typedef
283 OUT UINT32 *SizeOfLabelStorageArea,
284 OUT UINT32 *MaxTransferLength
285 );
286
310typedef
314 IN UINT32 Offset,
315 IN UINT32 TransferLength,
316 OUT UINT8 *LabelData
317 );
318
341typedef
345 IN UINT32 Offset,
346 IN UINT32 TransferLength,
347 IN UINT8 *LabelData
348 );
349
354 EFI_NVDIMM_LABEL_STORAGE_INFORMATION LabelStorageInformation;
355 EFI_NVDIMM_LABEL_STORAGE_READ LabelStorageRead;
356 EFI_NVDIMM_LABEL_STORAGE_WRITE LabelStorageWrite;
357};
358
359extern EFI_GUID gEfiNvdimmLabelProtocolGuid;
360
361#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:343
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:312
EFI_STATUS(EFIAPI * EFI_NVDIMM_LABEL_STORAGE_INFORMATION)(IN EFI_NVDIMM_LABEL_PROTOCOL *This, OUT UINT32 *SizeOfLabelStorageArea, OUT UINT32 *MaxTransferLength)
Definition: NvdimmLabel.h:281
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
EFI_GUID TypeGuid
Definition: NvdimmLabel.h:200
UINT64 SPALocationCookie
Definition: NvdimmLabel.h:213
EFI_GUID AddressAbstractionGuid
Definition: NvdimmLabel.h:205
Definition: Base.h:213