MdeModulePkg/NvmExpressDxe: Add SecurityStorageProtocol support

Produce this protocol for each namespace at NVMe controller.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Tian Feng <feng.tian@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17638 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Tian Feng
2015-06-16 01:04:47 +00:00
committed by erictian
parent 9c4ae34ebb
commit 754b489b46
8 changed files with 628 additions and 42 deletions

View File

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