XenevaOS
Loading...
Searching...
No Matches
NvmExpressPassthru.h
Go to the documentation of this file.
1
20#ifndef _UEFI_NVM_EXPRESS_PASS_THRU_H_
21#define _UEFI_NVM_EXPRESS_PASS_THRU_H_
22
23#define EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL_GUID \
24 { \
25 0x52c78312, 0x8edc, 0x4233, { 0x98, 0xf2, 0x1a, 0x1a, 0xa5, 0xe3, 0x88, 0xa5 } \
26 }
27
29
35
36//
37// If this bit is set, then the EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL interface is
38// for directly addressable namespaces.
39//
40#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_PHYSICAL 0x0001
41//
42// If this bit is set, then the EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL interface is
43// for a single volume logical namespace comprised of multiple namespaces.
44//
45#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_LOGICAL 0x0002
46//
47// If this bit is set, then the EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL interface
48// supports non-blocking I/O.
49//
50#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_NONBLOCKIO 0x0004
51//
52// If this bit is set, then the EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL interface
53// supports NVM command set.
54//
55#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_CMD_SET_NVM 0x0008
56
57//
58// FusedOperation
59//
60#define NORMAL_CMD 0x00
61#define FUSED_FIRST_CMD 0x01
62#define FUSED_SECOND_CMD 0x02
63
69
70//
71// Flags
72//
73#define CDW2_VALID 0x01
74#define CDW3_VALID 0x02
75#define CDW10_VALID 0x04
76#define CDW11_VALID 0x08
77#define CDW12_VALID 0x10
78#define CDW13_VALID 0x20
79#define CDW14_VALID 0x40
80#define CDW15_VALID 0x80
81
82//
83// Queue Type
84//
85#define NVME_ADMIN_QUEUE 0x00
86#define NVME_IO_QUEUE 0x01
87
101
108
119
120//
121// Protocol function prototypes
122//
155typedef
159 IN UINT32 NamespaceId,
161 IN EFI_EVENT Event OPTIONAL
162 );
163
197typedef
201 IN OUT UINT32 *NamespaceId
202 );
203
235typedef
239 IN UINT32 NamespaceId,
240 IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
241 );
242
267typedef
271 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
272 OUT UINT32 *NamespaceId
273 );
274
275//
276// Protocol Interface Structure
277//
285
287
288#endif
289
#define EFIAPI
Definition ProcessorBind.h:172
unsigned int UINT32
Definition ProcessorBind.h:102
#define IN
Definition Base.h:347
#define OUT
Definition Base.h:352
#define OPTIONAL
Definition Base.h:358
EFI_STATUS(EFIAPI * EFI_NVM_EXPRESS_PASS_THRU_GET_NEXT_NAMESPACE)(IN EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL *This, IN OUT UINT32 *NamespaceId)
Definition NvmExpressPassthru.h:199
EFI_GUID gEfiNvmExpressPassThruProtocolGuid
EFI_STATUS(EFIAPI * EFI_NVM_EXPRESS_PASS_THRU_GET_NAMESPACE)(IN EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL *This, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, OUT UINT32 *NamespaceId)
Definition NvmExpressPassthru.h:269
EFI_STATUS(EFIAPI * EFI_NVM_EXPRESS_PASS_THRU_BUILD_DEVICE_PATH)(IN EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL *This, IN UINT32 NamespaceId, IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath)
Definition NvmExpressPassthru.h:237
EFI_STATUS(EFIAPI * EFI_NVM_EXPRESS_PASS_THRU_PASSTHRU)(IN EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL *This, IN UINT32 NamespaceId, IN OUT EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET *Packet, IN EFI_EVENT Event OPTIONAL)
Definition NvmExpressPassthru.h:157
RETURN_STATUS EFI_STATUS
Definition UefiBaseType.h:33
VOID * EFI_EVENT
Definition UefiBaseType.h:41
#define VOID
Definition acefi.h:190
unsigned char UINT8
Definition actypes.h:236
COMPILER_DEPENDENT_UINT64 UINT64
Definition actypes.h:239
Definition DevicePath.h:49
Definition NvmExpressPassthru.h:88
UINT32 Cdw2
Definition NvmExpressPassthru.h:92
UINT32 Nsid
Definition NvmExpressPassthru.h:91
UINT32 Cdw13
Definition NvmExpressPassthru.h:97
UINT32 Cdw11
Definition NvmExpressPassthru.h:95
NVME_CDW0 Cdw0
Definition NvmExpressPassthru.h:89
UINT32 Cdw10
Definition NvmExpressPassthru.h:94
UINT32 Cdw12
Definition NvmExpressPassthru.h:96
UINT32 Cdw15
Definition NvmExpressPassthru.h:99
UINT8 Flags
Definition NvmExpressPassthru.h:90
UINT32 Cdw14
Definition NvmExpressPassthru.h:98
UINT32 Cdw3
Definition NvmExpressPassthru.h:93
Definition NvmExpressPassthru.h:102
UINT32 DW3
Definition NvmExpressPassthru.h:106
UINT32 DW2
Definition NvmExpressPassthru.h:105
UINT32 DW0
Definition NvmExpressPassthru.h:103
UINT32 DW1
Definition NvmExpressPassthru.h:104
Definition NvmExpressPassthru.h:109
VOID * TransferBuffer
Definition NvmExpressPassthru.h:111
UINT32 TransferLength
Definition NvmExpressPassthru.h:112
UINT32 MetadataLength
Definition NvmExpressPassthru.h:114
UINT8 QueueType
Definition NvmExpressPassthru.h:115
UINT64 CommandTimeout
Definition NvmExpressPassthru.h:110
EFI_NVM_EXPRESS_COMPLETION * NvmeCompletion
Definition NvmExpressPassthru.h:117
EFI_NVM_EXPRESS_COMMAND * NvmeCmd
Definition NvmExpressPassthru.h:116
VOID * MetadataBuffer
Definition NvmExpressPassthru.h:113
Definition NvmExpressPassthru.h:30
UINT32 Attributes
Definition NvmExpressPassthru.h:31
UINT32 NvmeVersion
Definition NvmExpressPassthru.h:33
UINT32 IoAlign
Definition NvmExpressPassthru.h:32
Definition Base.h:281
Definition NvmExpressPassthru.h:64
UINT32 Opcode
Definition NvmExpressPassthru.h:65
UINT32 FusedOperation
Definition NvmExpressPassthru.h:66
UINT32 Reserved
Definition NvmExpressPassthru.h:67
Definition NvmExpressPassthru.h:278
EFI_NVM_EXPRESS_PASS_THRU_MODE * Mode
Definition NvmExpressPassthru.h:279
EFI_NVM_EXPRESS_PASS_THRU_BUILD_DEVICE_PATH BuildDevicePath
Definition NvmExpressPassthru.h:282
EFI_NVM_EXPRESS_PASS_THRU_GET_NEXT_NAMESPACE GetNextNamespace
Definition NvmExpressPassthru.h:281
EFI_NVM_EXPRESS_PASS_THRU_PASSTHRU PassThru
Definition NvmExpressPassthru.h:280
EFI_NVM_EXPRESS_PASS_THRU_GET_NAMESPACE GetNamespace
Definition NvmExpressPassthru.h:283