typedef struct _EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL;\r
\r
typedef struct {\r
- UINT32 Attributes;\r
- UINT32 IoAlign;\r
- UINT32 NvmeVersion;\r
+ UINT32 Attributes;\r
+ UINT32 IoAlign;\r
+ UINT32 NvmeVersion;\r
} EFI_NVM_EXPRESS_PASS_THRU_MODE;\r
\r
//\r
// If this bit is set, then the EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL interface is\r
// for directly addressable namespaces.\r
//\r
-#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_PHYSICAL 0x0001\r
+#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_PHYSICAL 0x0001\r
//\r
// If this bit is set, then the EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL interface is\r
// for a single volume logical namespace comprised of multiple namespaces.\r
//\r
-#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_LOGICAL 0x0002\r
+#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_LOGICAL 0x0002\r
//\r
// If this bit is set, then the EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL interface\r
// supports non-blocking I/O.\r
//\r
-#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_NONBLOCKIO 0x0004\r
+#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_NONBLOCKIO 0x0004\r
//\r
// If this bit is set, then the EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL interface\r
// supports NVM command set.\r
//\r
-#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_CMD_SET_NVM 0x0008\r
+#define EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_CMD_SET_NVM 0x0008\r
\r
//\r
// FusedOperation\r
//\r
-#define NORMAL_CMD 0x00\r
-#define FUSED_FIRST_CMD 0x01\r
-#define FUSED_SECOND_CMD 0x02\r
+#define NORMAL_CMD 0x00\r
+#define FUSED_FIRST_CMD 0x01\r
+#define FUSED_SECOND_CMD 0x02\r
\r
typedef struct {\r
- UINT32 Opcode:8;\r
- UINT32 FusedOperation:2;\r
- UINT32 Reserved:22;\r
+ UINT32 Opcode : 8;\r
+ UINT32 FusedOperation : 2;\r
+ UINT32 Reserved : 22;\r
} NVME_CDW0;\r
\r
//\r
// Flags\r
//\r
-#define CDW2_VALID 0x01\r
-#define CDW3_VALID 0x02\r
-#define CDW10_VALID 0x04\r
-#define CDW11_VALID 0x08\r
-#define CDW12_VALID 0x10\r
-#define CDW13_VALID 0x20\r
-#define CDW14_VALID 0x40\r
-#define CDW15_VALID 0x80\r
+#define CDW2_VALID 0x01\r
+#define CDW3_VALID 0x02\r
+#define CDW10_VALID 0x04\r
+#define CDW11_VALID 0x08\r
+#define CDW12_VALID 0x10\r
+#define CDW13_VALID 0x20\r
+#define CDW14_VALID 0x40\r
+#define CDW15_VALID 0x80\r
\r
//\r
// Queue Type\r
//\r
-#define NVME_ADMIN_QUEUE 0x00\r
-#define NVME_IO_QUEUE 0x01\r
+#define NVME_ADMIN_QUEUE 0x00\r
+#define NVME_IO_QUEUE 0x01\r
\r
typedef struct {\r
- NVME_CDW0 Cdw0;\r
- UINT8 Flags;\r
- UINT32 Nsid;\r
- UINT32 Cdw2;\r
- UINT32 Cdw3;\r
- UINT32 Cdw10;\r
- UINT32 Cdw11;\r
- UINT32 Cdw12;\r
- UINT32 Cdw13;\r
- UINT32 Cdw14;\r
- UINT32 Cdw15;\r
+ NVME_CDW0 Cdw0;\r
+ UINT8 Flags;\r
+ UINT32 Nsid;\r
+ UINT32 Cdw2;\r
+ UINT32 Cdw3;\r
+ UINT32 Cdw10;\r
+ UINT32 Cdw11;\r
+ UINT32 Cdw12;\r
+ UINT32 Cdw13;\r
+ UINT32 Cdw14;\r
+ UINT32 Cdw15;\r
} EFI_NVM_EXPRESS_COMMAND;\r
\r
typedef struct {\r
- UINT32 DW0;\r
- UINT32 DW1;\r
- UINT32 DW2;\r
- UINT32 DW3;\r
+ UINT32 DW0;\r
+ UINT32 DW1;\r
+ UINT32 DW2;\r
+ UINT32 DW3;\r
} EFI_NVM_EXPRESS_COMPLETION;\r
\r
typedef struct {\r
- UINT64 CommandTimeout;\r
- VOID *TransferBuffer;\r
- UINT32 TransferLength;\r
- VOID *MetadataBuffer;\r
- UINT32 MetadataLength;\r
- UINT8 QueueType;\r
- EFI_NVM_EXPRESS_COMMAND *NvmeCmd;\r
- EFI_NVM_EXPRESS_COMPLETION *NvmeCompletion;\r
+ UINT64 CommandTimeout;\r
+ VOID *TransferBuffer;\r
+ UINT32 TransferLength;\r
+ VOID *MetadataBuffer;\r
+ UINT32 MetadataLength;\r
+ UINT8 QueueType;\r
+ EFI_NVM_EXPRESS_COMMAND *NvmeCmd;\r
+ EFI_NVM_EXPRESS_COMPLETION *NvmeCompletion;\r
} EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET;\r
\r
//\r
// Protocol function prototypes\r
//\r
+\r
/**\r
Sends an NVM Express Command Packet to an NVM Express controller or namespace. This function supports\r
both blocking I/O and non-blocking I/O. The blocking I/O functionality is required, and the non-blocking\r
(EFIAPI *EFI_NVM_EXPRESS_PASS_THRU_GET_NAMESPACE)(\r
IN EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL *This,\r
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,\r
- OUT UINT32 *NamespaceId\r
+ OUT UINT32 *NamespaceId\r
);\r
\r
//\r
// Protocol Interface Structure\r
//\r
struct _EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL {\r
- EFI_NVM_EXPRESS_PASS_THRU_MODE *Mode;\r
- EFI_NVM_EXPRESS_PASS_THRU_PASSTHRU PassThru;\r
- EFI_NVM_EXPRESS_PASS_THRU_GET_NEXT_NAMESPACE GetNextNamespace;\r
- EFI_NVM_EXPRESS_PASS_THRU_BUILD_DEVICE_PATH BuildDevicePath;\r
- EFI_NVM_EXPRESS_PASS_THRU_GET_NAMESPACE GetNamespace;\r
+ EFI_NVM_EXPRESS_PASS_THRU_MODE *Mode;\r
+ EFI_NVM_EXPRESS_PASS_THRU_PASSTHRU PassThru;\r
+ EFI_NVM_EXPRESS_PASS_THRU_GET_NEXT_NAMESPACE GetNextNamespace;\r
+ EFI_NVM_EXPRESS_PASS_THRU_BUILD_DEVICE_PATH BuildDevicePath;\r
+ EFI_NVM_EXPRESS_PASS_THRU_GET_NAMESPACE GetNamespace;\r
};\r
\r
-extern EFI_GUID gEfiNvmExpressPassThruProtocolGuid;\r
+extern EFI_GUID gEfiNvmExpressPassThruProtocolGuid;\r
\r
#endif\r
-\r