#include <Protocol/BlockIo.h>\r
#include <Protocol/DiskInfo.h>\r
#include <Protocol/DriverSupportedEfiVersion.h>\r
+#include <Protocol/StorageSecurityCommand.h>\r
\r
#include <Library/BaseLib.h>\r
#include <Library/BaseMemoryLib.h>\r
// Nvme device private data structure\r
//\r
struct _NVME_DEVICE_PRIVATE_DATA {\r
- UINT32 Signature;\r
+ UINT32 Signature;\r
\r
- EFI_HANDLE DeviceHandle;\r
- EFI_HANDLE ControllerHandle;\r
- EFI_HANDLE DriverBindingHandle;\r
+ EFI_HANDLE DeviceHandle;\r
+ EFI_HANDLE ControllerHandle;\r
+ EFI_HANDLE DriverBindingHandle;\r
\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
\r
- EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
+ EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
\r
- UINT32 NamespaceId;\r
- UINT64 NamespaceUuid;\r
+ UINT32 NamespaceId;\r
+ UINT64 NamespaceUuid;\r
\r
- EFI_BLOCK_IO_MEDIA Media;\r
- EFI_BLOCK_IO_PROTOCOL BlockIo;\r
- EFI_DISK_INFO_PROTOCOL DiskInfo;\r
+ EFI_BLOCK_IO_MEDIA Media;\r
+ EFI_BLOCK_IO_PROTOCOL BlockIo;\r
+ EFI_DISK_INFO_PROTOCOL DiskInfo;\r
+ EFI_STORAGE_SECURITY_COMMAND_PROTOCOL StorageSecurity;\r
\r
- EFI_LBA NumBlocks;\r
+ EFI_LBA NumBlocks;\r
\r
- CHAR16 ModelName[80];\r
- NVME_ADMIN_NAMESPACE_DATA NamespaceData;\r
+ CHAR16 ModelName[80];\r
+ NVME_ADMIN_NAMESPACE_DATA NamespaceData;\r
\r
- NVME_CONTROLLER_PRIVATE_DATA *Controller;\r
+ NVME_CONTROLLER_PRIVATE_DATA *Controller;\r
\r
};\r
\r
NVME_DEVICE_PRIVATE_DATA_SIGNATURE \\r
)\r
\r
+#define NVME_DEVICE_PRIVATE_DATA_FROM_STORAGE_SECURITY(a)\\r
+ CR (a, \\r
+ NVME_DEVICE_PRIVATE_DATA, \\r
+ StorageSecurity, \\r
+ NVME_DEVICE_PRIVATE_DATA_SIGNATURE \\r
+ )\r
+\r
/**\r
Retrieves a Unicode string that is the user readable name of the driver.\r
\r