**/\r
EFI_STATUS\r
ReadSectors (\r
- IN NVME_DEVICE_PRIVATE_DATA *Device,\r
- IN UINT64 Buffer,\r
- IN UINT64 Lba,\r
- IN UINT32 Blocks\r
+ IN NVME_DEVICE_PRIVATE_DATA *Device,\r
+ IN UINT64 Buffer,\r
+ IN UINT64 Lba,\r
+ IN UINT32 Blocks\r
)\r
{\r
- NVME_CONTROLLER_PRIVATE_DATA *Private;\r
- UINT32 Bytes;\r
- EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET CommandPacket;\r
- EFI_NVM_EXPRESS_COMMAND Command;\r
- EFI_NVM_EXPRESS_COMPLETION Completion;\r
- EFI_STATUS Status;\r
- UINT32 BlockSize;\r
-\r
- Private = Device->Controller;\r
- BlockSize = Device->Media.BlockSize;\r
- Bytes = Blocks * BlockSize;\r
-\r
- ZeroMem (&CommandPacket, sizeof(EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET));\r
- ZeroMem (&Command, sizeof(EFI_NVM_EXPRESS_COMMAND));\r
- ZeroMem (&Completion, sizeof(EFI_NVM_EXPRESS_COMPLETION));\r
+ NVME_CONTROLLER_PRIVATE_DATA *Private;\r
+ UINT32 Bytes;\r
+ EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET CommandPacket;\r
+ EFI_NVM_EXPRESS_COMMAND Command;\r
+ EFI_NVM_EXPRESS_COMPLETION Completion;\r
+ EFI_STATUS Status;\r
+ UINT32 BlockSize;\r
+\r
+ Private = Device->Controller;\r
+ BlockSize = Device->Media.BlockSize;\r
+ Bytes = Blocks * BlockSize;\r
+\r
+ ZeroMem (&CommandPacket, sizeof (EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET));\r
+ ZeroMem (&Command, sizeof (EFI_NVM_EXPRESS_COMMAND));\r
+ ZeroMem (&Completion, sizeof (EFI_NVM_EXPRESS_COMPLETION));\r
\r
CommandPacket.NvmeCmd = &Command;\r
CommandPacket.NvmeCompletion = &Completion;\r
CommandPacket.QueueType = NVME_IO_QUEUE;\r
\r
CommandPacket.NvmeCmd->Cdw10 = (UINT32)Lba;\r
- CommandPacket.NvmeCmd->Cdw11 = (UINT32)RShiftU64(Lba, 32);\r
+ CommandPacket.NvmeCmd->Cdw11 = (UINT32)RShiftU64 (Lba, 32);\r
CommandPacket.NvmeCmd->Cdw12 = (Blocks - 1) & 0xFFFF;\r
\r
CommandPacket.NvmeCmd->Flags = CDW10_VALID | CDW11_VALID | CDW12_VALID;\r
**/\r
EFI_STATUS\r
WriteSectors (\r
- IN NVME_DEVICE_PRIVATE_DATA *Device,\r
- IN UINT64 Buffer,\r
- IN UINT64 Lba,\r
- IN UINT32 Blocks\r
+ IN NVME_DEVICE_PRIVATE_DATA *Device,\r
+ IN UINT64 Buffer,\r
+ IN UINT64 Lba,\r
+ IN UINT32 Blocks\r
)\r
{\r
- NVME_CONTROLLER_PRIVATE_DATA *Private;\r
- EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET CommandPacket;\r
- EFI_NVM_EXPRESS_COMMAND Command;\r
- EFI_NVM_EXPRESS_COMPLETION Completion;\r
- EFI_STATUS Status;\r
- UINT32 Bytes;\r
- UINT32 BlockSize;\r
-\r
- Private = Device->Controller;\r
- BlockSize = Device->Media.BlockSize;\r
- Bytes = Blocks * BlockSize;\r
-\r
- ZeroMem (&CommandPacket, sizeof(EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET));\r
- ZeroMem (&Command, sizeof(EFI_NVM_EXPRESS_COMMAND));\r
- ZeroMem (&Completion, sizeof(EFI_NVM_EXPRESS_COMPLETION));\r
+ NVME_CONTROLLER_PRIVATE_DATA *Private;\r
+ EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET CommandPacket;\r
+ EFI_NVM_EXPRESS_COMMAND Command;\r
+ EFI_NVM_EXPRESS_COMPLETION Completion;\r
+ EFI_STATUS Status;\r
+ UINT32 Bytes;\r
+ UINT32 BlockSize;\r
+\r
+ Private = Device->Controller;\r
+ BlockSize = Device->Media.BlockSize;\r
+ Bytes = Blocks * BlockSize;\r
+\r
+ ZeroMem (&CommandPacket, sizeof (EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET));\r
+ ZeroMem (&Command, sizeof (EFI_NVM_EXPRESS_COMMAND));\r
+ ZeroMem (&Completion, sizeof (EFI_NVM_EXPRESS_COMPLETION));\r
\r
CommandPacket.NvmeCmd = &Command;\r
CommandPacket.NvmeCompletion = &Completion;\r
\r
CommandPacket.NvmeCmd->Cdw0.Opcode = NVME_IO_WRITE_OPC;\r
- CommandPacket.NvmeCmd->Nsid = Device->NamespaceId;\r
- CommandPacket.TransferBuffer = (VOID *)(UINTN)Buffer;\r
+ CommandPacket.NvmeCmd->Nsid = Device->NamespaceId;\r
+ CommandPacket.TransferBuffer = (VOID *)(UINTN)Buffer;\r
\r
CommandPacket.TransferLength = Bytes;\r
CommandPacket.CommandTimeout = NVME_GENERIC_TIMEOUT;\r
CommandPacket.QueueType = NVME_IO_QUEUE;\r
\r
CommandPacket.NvmeCmd->Cdw10 = (UINT32)Lba;\r
- CommandPacket.NvmeCmd->Cdw11 = (UINT32)RShiftU64(Lba, 32);\r
+ CommandPacket.NvmeCmd->Cdw11 = (UINT32)RShiftU64 (Lba, 32);\r
//\r
// Set Force Unit Access bit (bit 30) to use write-through behaviour\r
//\r
**/\r
EFI_STATUS\r
NvmeRead (\r
- IN NVME_DEVICE_PRIVATE_DATA *Device,\r
- OUT VOID *Buffer,\r
- IN UINT64 Lba,\r
- IN UINTN Blocks\r
+ IN NVME_DEVICE_PRIVATE_DATA *Device,\r
+ OUT VOID *Buffer,\r
+ IN UINT64 Lba,\r
+ IN UINTN Blocks\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT32 BlockSize;\r
- NVME_CONTROLLER_PRIVATE_DATA *Private;\r
- UINT32 MaxTransferBlocks;\r
- UINTN OrginalBlocks;\r
- BOOLEAN IsEmpty;\r
- EFI_TPL OldTpl;\r
+ EFI_STATUS Status;\r
+ UINT32 BlockSize;\r
+ NVME_CONTROLLER_PRIVATE_DATA *Private;\r
+ UINT32 MaxTransferBlocks;\r
+ UINTN OrginalBlocks;\r
+ BOOLEAN IsEmpty;\r
+ EFI_TPL OldTpl;\r
\r
//\r
// Wait for the device's asynchronous I/O queue to become empty.\r
Blocks = 0;\r
}\r
\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
break;\r
}\r
}\r
\r
- DEBUG ((DEBUG_BLKIO, "%a: Lba = 0x%08Lx, Original = 0x%08Lx, "\r
- "Remaining = 0x%08Lx, BlockSize = 0x%x, Status = %r\n", __FUNCTION__, Lba,\r
- (UINT64)OrginalBlocks, (UINT64)Blocks, BlockSize, Status));\r
+ DEBUG ((\r
+ DEBUG_BLKIO,\r
+ "%a: Lba = 0x%08Lx, Original = 0x%08Lx, "\r
+ "Remaining = 0x%08Lx, BlockSize = 0x%x, Status = %r\n",\r
+ __FUNCTION__,\r
+ Lba,\r
+ (UINT64)OrginalBlocks,\r
+ (UINT64)Blocks,\r
+ BlockSize,\r
+ Status\r
+ ));\r
\r
return Status;\r
}\r
**/\r
EFI_STATUS\r
NvmeWrite (\r
- IN NVME_DEVICE_PRIVATE_DATA *Device,\r
- IN VOID *Buffer,\r
- IN UINT64 Lba,\r
- IN UINTN Blocks\r
+ IN NVME_DEVICE_PRIVATE_DATA *Device,\r
+ IN VOID *Buffer,\r
+ IN UINT64 Lba,\r
+ IN UINTN Blocks\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT32 BlockSize;\r
- NVME_CONTROLLER_PRIVATE_DATA *Private;\r
- UINT32 MaxTransferBlocks;\r
- UINTN OrginalBlocks;\r
- BOOLEAN IsEmpty;\r
- EFI_TPL OldTpl;\r
+ EFI_STATUS Status;\r
+ UINT32 BlockSize;\r
+ NVME_CONTROLLER_PRIVATE_DATA *Private;\r
+ UINT32 MaxTransferBlocks;\r
+ UINTN OrginalBlocks;\r
+ BOOLEAN IsEmpty;\r
+ EFI_TPL OldTpl;\r
\r
//\r
// Wait for the device's asynchronous I/O queue to become empty.\r
Blocks = 0;\r
}\r
\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
break;\r
}\r
}\r
\r
- DEBUG ((DEBUG_BLKIO, "%a: Lba = 0x%08Lx, Original = 0x%08Lx, "\r
- "Remaining = 0x%08Lx, BlockSize = 0x%x, Status = %r\n", __FUNCTION__, Lba,\r
- (UINT64)OrginalBlocks, (UINT64)Blocks, BlockSize, Status));\r
+ DEBUG ((\r
+ DEBUG_BLKIO,\r
+ "%a: Lba = 0x%08Lx, Original = 0x%08Lx, "\r
+ "Remaining = 0x%08Lx, BlockSize = 0x%x, Status = %r\n",\r
+ __FUNCTION__,\r
+ Lba,\r
+ (UINT64)OrginalBlocks,\r
+ (UINT64)Blocks,\r
+ BlockSize,\r
+ Status\r
+ ));\r
\r
return Status;\r
}\r
**/\r
EFI_STATUS\r
NvmeFlush (\r
- IN NVME_DEVICE_PRIVATE_DATA *Device\r
+ IN NVME_DEVICE_PRIVATE_DATA *Device\r
)\r
{\r
- NVME_CONTROLLER_PRIVATE_DATA *Private;\r
- EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET CommandPacket;\r
- EFI_NVM_EXPRESS_COMMAND Command;\r
- EFI_NVM_EXPRESS_COMPLETION Completion;\r
- EFI_STATUS Status;\r
+ NVME_CONTROLLER_PRIVATE_DATA *Private;\r
+ EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET CommandPacket;\r
+ EFI_NVM_EXPRESS_COMMAND Command;\r
+ EFI_NVM_EXPRESS_COMPLETION Completion;\r
+ EFI_STATUS Status;\r
\r
Private = Device->Controller;\r
\r
- ZeroMem (&CommandPacket, sizeof(EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET));\r
- ZeroMem (&Command, sizeof(EFI_NVM_EXPRESS_COMMAND));\r
- ZeroMem (&Completion, sizeof(EFI_NVM_EXPRESS_COMPLETION));\r
+ ZeroMem (&CommandPacket, sizeof (EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET));\r
+ ZeroMem (&Command, sizeof (EFI_NVM_EXPRESS_COMMAND));\r
+ ZeroMem (&Completion, sizeof (EFI_NVM_EXPRESS_COMPLETION));\r
\r
CommandPacket.NvmeCmd = &Command;\r
CommandPacket.NvmeCompletion = &Completion;\r
\r
CommandPacket.NvmeCmd->Cdw0.Opcode = NVME_IO_FLUSH_OPC;\r
- CommandPacket.NvmeCmd->Nsid = Device->NamespaceId;\r
- CommandPacket.CommandTimeout = NVME_GENERIC_TIMEOUT;\r
- CommandPacket.QueueType = NVME_IO_QUEUE;\r
+ CommandPacket.NvmeCmd->Nsid = Device->NamespaceId;\r
+ CommandPacket.CommandTimeout = NVME_GENERIC_TIMEOUT;\r
+ CommandPacket.QueueType = NVME_IO_QUEUE;\r
\r
Status = Private->Passthru.PassThru (\r
&Private->Passthru,\r
VOID\r
EFIAPI\r
AsyncIoCallback (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
- NVME_BLKIO2_SUBTASK *Subtask;\r
- NVME_BLKIO2_REQUEST *Request;\r
- NVME_CQ *Completion;\r
- EFI_BLOCK_IO2_TOKEN *Token;\r
+ NVME_BLKIO2_SUBTASK *Subtask;\r
+ NVME_BLKIO2_REQUEST *Request;\r
+ NVME_CQ *Completion;\r
+ EFI_BLOCK_IO2_TOKEN *Token;\r
\r
gBS->CloseEvent (Event);\r
\r
- Subtask = (NVME_BLKIO2_SUBTASK *) Context;\r
- Completion = (NVME_CQ *) Subtask->CommandPacket->NvmeCompletion;\r
+ Subtask = (NVME_BLKIO2_SUBTASK *)Context;\r
+ Completion = (NVME_CQ *)Subtask->CommandPacket->NvmeCompletion;\r
Request = Subtask->BlockIo2Request;\r
Token = Request->Token;\r
\r
//\r
// Dump completion entry status for debugging.\r
//\r
- DEBUG_CODE_BEGIN();\r
- NvmeDumpStatus (Completion);\r
- DEBUG_CODE_END();\r
+ DEBUG_CODE_BEGIN ();\r
+ NvmeDumpStatus (Completion);\r
+ DEBUG_CODE_END ();\r
}\r
}\r
\r
**/\r
EFI_STATUS\r
AsyncReadSectors (\r
- IN NVME_DEVICE_PRIVATE_DATA *Device,\r
- IN NVME_BLKIO2_REQUEST *Request,\r
- IN UINT64 Buffer,\r
- IN UINT64 Lba,\r
- IN UINT32 Blocks,\r
- IN BOOLEAN IsLast\r
+ IN NVME_DEVICE_PRIVATE_DATA *Device,\r
+ IN NVME_BLKIO2_REQUEST *Request,\r
+ IN UINT64 Buffer,\r
+ IN UINT64 Lba,\r
+ IN UINT32 Blocks,\r
+ IN BOOLEAN IsLast\r
)\r
{\r
- NVME_CONTROLLER_PRIVATE_DATA *Private;\r
- UINT32 Bytes;\r
- NVME_BLKIO2_SUBTASK *Subtask;\r
- EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET *CommandPacket;\r
- EFI_NVM_EXPRESS_COMMAND *Command;\r
- EFI_NVM_EXPRESS_COMPLETION *Completion;\r
- EFI_STATUS Status;\r
- UINT32 BlockSize;\r
- EFI_TPL OldTpl;\r
+ NVME_CONTROLLER_PRIVATE_DATA *Private;\r
+ UINT32 Bytes;\r
+ NVME_BLKIO2_SUBTASK *Subtask;\r
+ EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET *CommandPacket;\r
+ EFI_NVM_EXPRESS_COMMAND *Command;\r
+ EFI_NVM_EXPRESS_COMPLETION *Completion;\r
+ EFI_STATUS Status;\r
+ UINT32 BlockSize;\r
+ EFI_TPL OldTpl;\r
\r
Private = Device->Controller;\r
BlockSize = Device->Media.BlockSize;\r
Subtask,\r
&Subtask->Event\r
);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
goto ErrorExit;\r
}\r
\r
CommandPacket->QueueType = NVME_IO_QUEUE;\r
\r
CommandPacket->NvmeCmd->Cdw10 = (UINT32)Lba;\r
- CommandPacket->NvmeCmd->Cdw11 = (UINT32)RShiftU64(Lba, 32);\r
+ CommandPacket->NvmeCmd->Cdw11 = (UINT32)RShiftU64 (Lba, 32);\r
CommandPacket->NvmeCmd->Cdw12 = (Blocks - 1) & 0xFFFF;\r
\r
CommandPacket->NvmeCmd->Flags = CDW10_VALID | CDW11_VALID | CDW12_VALID;\r
**/\r
EFI_STATUS\r
AsyncWriteSectors (\r
- IN NVME_DEVICE_PRIVATE_DATA *Device,\r
- IN NVME_BLKIO2_REQUEST *Request,\r
- IN UINT64 Buffer,\r
- IN UINT64 Lba,\r
- IN UINT32 Blocks,\r
- IN BOOLEAN IsLast\r
+ IN NVME_DEVICE_PRIVATE_DATA *Device,\r
+ IN NVME_BLKIO2_REQUEST *Request,\r
+ IN UINT64 Buffer,\r
+ IN UINT64 Lba,\r
+ IN UINT32 Blocks,\r
+ IN BOOLEAN IsLast\r
)\r
{\r
- NVME_CONTROLLER_PRIVATE_DATA *Private;\r
- UINT32 Bytes;\r
- NVME_BLKIO2_SUBTASK *Subtask;\r
- EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET *CommandPacket;\r
- EFI_NVM_EXPRESS_COMMAND *Command;\r
- EFI_NVM_EXPRESS_COMPLETION *Completion;\r
- EFI_STATUS Status;\r
- UINT32 BlockSize;\r
- EFI_TPL OldTpl;\r
+ NVME_CONTROLLER_PRIVATE_DATA *Private;\r
+ UINT32 Bytes;\r
+ NVME_BLKIO2_SUBTASK *Subtask;\r
+ EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET *CommandPacket;\r
+ EFI_NVM_EXPRESS_COMMAND *Command;\r
+ EFI_NVM_EXPRESS_COMPLETION *Completion;\r
+ EFI_STATUS Status;\r
+ UINT32 BlockSize;\r
+ EFI_TPL OldTpl;\r
\r
Private = Device->Controller;\r
BlockSize = Device->Media.BlockSize;\r
Subtask,\r
&Subtask->Event\r
);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
goto ErrorExit;\r
}\r
\r
CommandPacket->QueueType = NVME_IO_QUEUE;\r
\r
CommandPacket->NvmeCmd->Cdw10 = (UINT32)Lba;\r
- CommandPacket->NvmeCmd->Cdw11 = (UINT32)RShiftU64(Lba, 32);\r
+ CommandPacket->NvmeCmd->Cdw11 = (UINT32)RShiftU64 (Lba, 32);\r
//\r
// Set Force Unit Access bit (bit 30) to use write-through behaviour\r
//\r
**/\r
EFI_STATUS\r
NvmeAsyncRead (\r
- IN NVME_DEVICE_PRIVATE_DATA *Device,\r
- OUT VOID *Buffer,\r
- IN UINT64 Lba,\r
- IN UINTN Blocks,\r
- IN EFI_BLOCK_IO2_TOKEN *Token\r
+ IN NVME_DEVICE_PRIVATE_DATA *Device,\r
+ OUT VOID *Buffer,\r
+ IN UINT64 Lba,\r
+ IN UINTN Blocks,\r
+ IN EFI_BLOCK_IO2_TOKEN *Token\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT32 BlockSize;\r
- NVME_CONTROLLER_PRIVATE_DATA *Private;\r
- NVME_BLKIO2_REQUEST *BlkIo2Req;\r
- UINT32 MaxTransferBlocks;\r
- UINTN OrginalBlocks;\r
- BOOLEAN IsEmpty;\r
- EFI_TPL OldTpl;\r
+ EFI_STATUS Status;\r
+ UINT32 BlockSize;\r
+ NVME_CONTROLLER_PRIVATE_DATA *Private;\r
+ NVME_BLKIO2_REQUEST *BlkIo2Req;\r
+ UINT32 MaxTransferBlocks;\r
+ UINTN OrginalBlocks;\r
+ BOOLEAN IsEmpty;\r
+ EFI_TPL OldTpl;\r
\r
Status = EFI_SUCCESS;\r
Private = Device->Controller;\r
if (Blocks > MaxTransferBlocks) {\r
Status = AsyncReadSectors (\r
Device,\r
- BlkIo2Req, (UINT64)(UINTN)Buffer,\r
+ BlkIo2Req,\r
+ (UINT64)(UINTN)Buffer,\r
Lba,\r
MaxTransferBlocks,\r
FALSE\r
Blocks = 0;\r
}\r
\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);\r
IsEmpty = IsListEmpty (&BlkIo2Req->SubtasksQueue) &&\r
(BlkIo2Req->UnsubmittedSubtaskNum == 0);\r
// should be returned to make sure that the caller does not free\r
// resources still using by these requests.\r
//\r
- Status = EFI_SUCCESS;\r
- Token->TransactionStatus = EFI_DEVICE_ERROR;\r
+ Status = EFI_SUCCESS;\r
+ Token->TransactionStatus = EFI_DEVICE_ERROR;\r
BlkIo2Req->LastSubtaskSubmitted = TRUE;\r
}\r
\r
}\r
}\r
\r
- DEBUG ((DEBUG_BLKIO, "%a: Lba = 0x%08Lx, Original = 0x%08Lx, "\r
- "Remaining = 0x%08Lx, BlockSize = 0x%x, Status = %r\n", __FUNCTION__, Lba,\r
- (UINT64)OrginalBlocks, (UINT64)Blocks, BlockSize, Status));\r
+ DEBUG ((\r
+ DEBUG_BLKIO,\r
+ "%a: Lba = 0x%08Lx, Original = 0x%08Lx, "\r
+ "Remaining = 0x%08Lx, BlockSize = 0x%x, Status = %r\n",\r
+ __FUNCTION__,\r
+ Lba,\r
+ (UINT64)OrginalBlocks,\r
+ (UINT64)Blocks,\r
+ BlockSize,\r
+ Status\r
+ ));\r
\r
return Status;\r
}\r
**/\r
EFI_STATUS\r
NvmeAsyncWrite (\r
- IN NVME_DEVICE_PRIVATE_DATA *Device,\r
- IN VOID *Buffer,\r
- IN UINT64 Lba,\r
- IN UINTN Blocks,\r
- IN EFI_BLOCK_IO2_TOKEN *Token\r
+ IN NVME_DEVICE_PRIVATE_DATA *Device,\r
+ IN VOID *Buffer,\r
+ IN UINT64 Lba,\r
+ IN UINTN Blocks,\r
+ IN EFI_BLOCK_IO2_TOKEN *Token\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT32 BlockSize;\r
- NVME_CONTROLLER_PRIVATE_DATA *Private;\r
- NVME_BLKIO2_REQUEST *BlkIo2Req;\r
- UINT32 MaxTransferBlocks;\r
- UINTN OrginalBlocks;\r
- BOOLEAN IsEmpty;\r
- EFI_TPL OldTpl;\r
+ EFI_STATUS Status;\r
+ UINT32 BlockSize;\r
+ NVME_CONTROLLER_PRIVATE_DATA *Private;\r
+ NVME_BLKIO2_REQUEST *BlkIo2Req;\r
+ UINT32 MaxTransferBlocks;\r
+ UINTN OrginalBlocks;\r
+ BOOLEAN IsEmpty;\r
+ EFI_TPL OldTpl;\r
\r
Status = EFI_SUCCESS;\r
Private = Device->Controller;\r
\r
while (Blocks > 0) {\r
if (Blocks > MaxTransferBlocks) {\r
- Status = AsyncWriteSectors (\r
- Device,\r
- BlkIo2Req,\r
- (UINT64)(UINTN)Buffer,\r
- Lba,\r
- MaxTransferBlocks,\r
- FALSE\r
- );\r
+ Status = AsyncWriteSectors (\r
+ Device,\r
+ BlkIo2Req,\r
+ (UINT64)(UINTN)Buffer,\r
+ Lba,\r
+ MaxTransferBlocks,\r
+ FALSE\r
+ );\r
\r
Blocks -= MaxTransferBlocks;\r
Buffer = (VOID *)(UINTN)((UINT64)(UINTN)Buffer + MaxTransferBlocks * BlockSize);\r
Blocks = 0;\r
}\r
\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);\r
IsEmpty = IsListEmpty (&BlkIo2Req->SubtasksQueue) &&\r
(BlkIo2Req->UnsubmittedSubtaskNum == 0);\r
// should be returned to make sure that the caller does not free\r
// resources still using by these requests.\r
//\r
- Status = EFI_SUCCESS;\r
- Token->TransactionStatus = EFI_DEVICE_ERROR;\r
+ Status = EFI_SUCCESS;\r
+ Token->TransactionStatus = EFI_DEVICE_ERROR;\r
BlkIo2Req->LastSubtaskSubmitted = TRUE;\r
}\r
\r
}\r
}\r
\r
- DEBUG ((DEBUG_BLKIO, "%a: Lba = 0x%08Lx, Original = 0x%08Lx, "\r
- "Remaining = 0x%08Lx, BlockSize = 0x%x, Status = %r\n", __FUNCTION__, Lba,\r
- (UINT64)OrginalBlocks, (UINT64)Blocks, BlockSize, Status));\r
+ DEBUG ((\r
+ DEBUG_BLKIO,\r
+ "%a: Lba = 0x%08Lx, Original = 0x%08Lx, "\r
+ "Remaining = 0x%08Lx, BlockSize = 0x%x, Status = %r\n",\r
+ __FUNCTION__,\r
+ Lba,\r
+ (UINT64)OrginalBlocks,\r
+ (UINT64)Blocks,\r
+ BlockSize,\r
+ Status\r
+ ));\r
\r
return Status;\r
}\r
EFI_STATUS\r
EFIAPI\r
NvmeBlockIoReset (\r
- IN EFI_BLOCK_IO_PROTOCOL *This,\r
- IN BOOLEAN ExtendedVerification\r
+ IN EFI_BLOCK_IO_PROTOCOL *This,\r
+ IN BOOLEAN ExtendedVerification\r
)\r
{\r
- EFI_TPL OldTpl;\r
- NVME_CONTROLLER_PRIVATE_DATA *Private;\r
- NVME_DEVICE_PRIVATE_DATA *Device;\r
- EFI_STATUS Status;\r
+ EFI_TPL OldTpl;\r
+ NVME_CONTROLLER_PRIVATE_DATA *Private;\r
+ NVME_DEVICE_PRIVATE_DATA *Device;\r
+ EFI_STATUS Status;\r
\r
if (This == NULL) {\r
return EFI_INVALID_PARAMETER;\r
//\r
// For Nvm Express subsystem, reset block device means reset controller.\r
//\r
- OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
+ OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
\r
- Device = NVME_DEVICE_PRIVATE_DATA_FROM_BLOCK_IO (This);\r
+ Device = NVME_DEVICE_PRIVATE_DATA_FROM_BLOCK_IO (This);\r
\r
Private = Device->Controller;\r
\r
- Status = NvmeControllerInit (Private);\r
+ Status = NvmeControllerInit (Private);\r
\r
if (EFI_ERROR (Status)) {\r
Status = EFI_DEVICE_ERROR;\r
EFI_STATUS\r
EFIAPI\r
NvmeBlockIoReadBlocks (\r
- IN EFI_BLOCK_IO_PROTOCOL *This,\r
- IN UINT32 MediaId,\r
- IN EFI_LBA Lba,\r
- IN UINTN BufferSize,\r
- OUT VOID *Buffer\r
+ IN EFI_BLOCK_IO_PROTOCOL *This,\r
+ IN UINT32 MediaId,\r
+ IN EFI_LBA Lba,\r
+ IN UINTN BufferSize,\r
+ OUT VOID *Buffer\r
)\r
{\r
- NVME_DEVICE_PRIVATE_DATA *Device;\r
- EFI_STATUS Status;\r
- EFI_BLOCK_IO_MEDIA *Media;\r
- UINTN BlockSize;\r
- UINTN NumberOfBlocks;\r
- UINTN IoAlign;\r
- EFI_TPL OldTpl;\r
+ NVME_DEVICE_PRIVATE_DATA *Device;\r
+ EFI_STATUS Status;\r
+ EFI_BLOCK_IO_MEDIA *Media;\r
+ UINTN BlockSize;\r
+ UINTN NumberOfBlocks;\r
+ UINTN IoAlign;\r
+ EFI_TPL OldTpl;\r
\r
//\r
// Check parameters.\r
return EFI_BAD_BUFFER_SIZE;\r
}\r
\r
- NumberOfBlocks = BufferSize / BlockSize;\r
+ NumberOfBlocks = BufferSize / BlockSize;\r
if ((Lba + NumberOfBlocks - 1) > Media->LastBlock) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
IoAlign = Media->IoAlign;\r
- if (IoAlign > 0 && (((UINTN) Buffer & (IoAlign - 1)) != 0)) {\r
+ if ((IoAlign > 0) && (((UINTN)Buffer & (IoAlign - 1)) != 0)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
NvmeBlockIoWriteBlocks (\r
- IN EFI_BLOCK_IO_PROTOCOL *This,\r
- IN UINT32 MediaId,\r
- IN EFI_LBA Lba,\r
- IN UINTN BufferSize,\r
- IN VOID *Buffer\r
+ IN EFI_BLOCK_IO_PROTOCOL *This,\r
+ IN UINT32 MediaId,\r
+ IN EFI_LBA Lba,\r
+ IN UINTN BufferSize,\r
+ IN VOID *Buffer\r
)\r
{\r
- NVME_DEVICE_PRIVATE_DATA *Device;\r
- EFI_STATUS Status;\r
- EFI_BLOCK_IO_MEDIA *Media;\r
- UINTN BlockSize;\r
- UINTN NumberOfBlocks;\r
- UINTN IoAlign;\r
- EFI_TPL OldTpl;\r
+ NVME_DEVICE_PRIVATE_DATA *Device;\r
+ EFI_STATUS Status;\r
+ EFI_BLOCK_IO_MEDIA *Media;\r
+ UINTN BlockSize;\r
+ UINTN NumberOfBlocks;\r
+ UINTN IoAlign;\r
+ EFI_TPL OldTpl;\r
\r
//\r
// Check parameters.\r
return EFI_BAD_BUFFER_SIZE;\r
}\r
\r
- NumberOfBlocks = BufferSize / BlockSize;\r
+ NumberOfBlocks = BufferSize / BlockSize;\r
if ((Lba + NumberOfBlocks - 1) > Media->LastBlock) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
IoAlign = Media->IoAlign;\r
- if (IoAlign > 0 && (((UINTN) Buffer & (IoAlign - 1)) != 0)) {\r
+ if ((IoAlign > 0) && (((UINTN)Buffer & (IoAlign - 1)) != 0)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
NvmeBlockIoFlushBlocks (\r
- IN EFI_BLOCK_IO_PROTOCOL *This\r
+ IN EFI_BLOCK_IO_PROTOCOL *This\r
)\r
{\r
- NVME_DEVICE_PRIVATE_DATA *Device;\r
- EFI_STATUS Status;\r
- EFI_TPL OldTpl;\r
+ NVME_DEVICE_PRIVATE_DATA *Device;\r
+ EFI_STATUS Status;\r
+ EFI_TPL OldTpl;\r
\r
//\r
// Check parameters.\r
IN BOOLEAN ExtendedVerification\r
)\r
{\r
- EFI_STATUS Status;\r
- NVME_DEVICE_PRIVATE_DATA *Device;\r
- NVME_CONTROLLER_PRIVATE_DATA *Private;\r
- BOOLEAN IsEmpty;\r
- EFI_TPL OldTpl;\r
+ EFI_STATUS Status;\r
+ NVME_DEVICE_PRIVATE_DATA *Device;\r
+ NVME_CONTROLLER_PRIVATE_DATA *Private;\r
+ BOOLEAN IsEmpty;\r
+ EFI_TPL OldTpl;\r
\r
if (This == NULL) {\r
return EFI_INVALID_PARAMETER;\r
\r
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);\r
\r
- Status = NvmeControllerInit (Private);\r
+ Status = NvmeControllerInit (Private);\r
\r
if (EFI_ERROR (Status)) {\r
Status = EFI_DEVICE_ERROR;\r
EFI_STATUS\r
EFIAPI\r
NvmeBlockIoReadBlocksEx (\r
- IN EFI_BLOCK_IO2_PROTOCOL *This,\r
- IN UINT32 MediaId,\r
- IN EFI_LBA Lba,\r
- IN OUT EFI_BLOCK_IO2_TOKEN *Token,\r
- IN UINTN BufferSize,\r
- OUT VOID *Buffer\r
+ IN EFI_BLOCK_IO2_PROTOCOL *This,\r
+ IN UINT32 MediaId,\r
+ IN EFI_LBA Lba,\r
+ IN OUT EFI_BLOCK_IO2_TOKEN *Token,\r
+ IN UINTN BufferSize,\r
+ OUT VOID *Buffer\r
)\r
{\r
- NVME_DEVICE_PRIVATE_DATA *Device;\r
- EFI_STATUS Status;\r
- EFI_BLOCK_IO_MEDIA *Media;\r
- UINTN BlockSize;\r
- UINTN NumberOfBlocks;\r
- UINTN IoAlign;\r
- EFI_TPL OldTpl;\r
+ NVME_DEVICE_PRIVATE_DATA *Device;\r
+ EFI_STATUS Status;\r
+ EFI_BLOCK_IO_MEDIA *Media;\r
+ UINTN BlockSize;\r
+ UINTN NumberOfBlocks;\r
+ UINTN IoAlign;\r
+ EFI_TPL OldTpl;\r
\r
//\r
// Check parameters.\r
Token->TransactionStatus = EFI_SUCCESS;\r
gBS->SignalEvent (Token->Event);\r
}\r
+\r
return EFI_SUCCESS;\r
}\r
\r
return EFI_BAD_BUFFER_SIZE;\r
}\r
\r
- NumberOfBlocks = BufferSize / BlockSize;\r
+ NumberOfBlocks = BufferSize / BlockSize;\r
if ((Lba + NumberOfBlocks - 1) > Media->LastBlock) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
IoAlign = Media->IoAlign;\r
- if (IoAlign > 0 && (((UINTN) Buffer & (IoAlign - 1)) != 0)) {\r
+ if ((IoAlign > 0) && (((UINTN)Buffer & (IoAlign - 1)) != 0)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
\r
if ((Token != NULL) && (Token->Event != NULL)) {\r
Token->TransactionStatus = EFI_SUCCESS;\r
- Status = NvmeAsyncRead (Device, Buffer, Lba, NumberOfBlocks, Token);\r
+ Status = NvmeAsyncRead (Device, Buffer, Lba, NumberOfBlocks, Token);\r
} else {\r
Status = NvmeRead (Device, Buffer, Lba, NumberOfBlocks);\r
}\r
EFIAPI\r
NvmeBlockIoWriteBlocksEx (\r
IN EFI_BLOCK_IO2_PROTOCOL *This,\r
- IN UINT32 MediaId,\r
- IN EFI_LBA Lba,\r
- IN OUT EFI_BLOCK_IO2_TOKEN *Token,\r
- IN UINTN BufferSize,\r
- IN VOID *Buffer\r
+ IN UINT32 MediaId,\r
+ IN EFI_LBA Lba,\r
+ IN OUT EFI_BLOCK_IO2_TOKEN *Token,\r
+ IN UINTN BufferSize,\r
+ IN VOID *Buffer\r
)\r
{\r
- NVME_DEVICE_PRIVATE_DATA *Device;\r
- EFI_STATUS Status;\r
- EFI_BLOCK_IO_MEDIA *Media;\r
- UINTN BlockSize;\r
- UINTN NumberOfBlocks;\r
- UINTN IoAlign;\r
- EFI_TPL OldTpl;\r
+ NVME_DEVICE_PRIVATE_DATA *Device;\r
+ EFI_STATUS Status;\r
+ EFI_BLOCK_IO_MEDIA *Media;\r
+ UINTN BlockSize;\r
+ UINTN NumberOfBlocks;\r
+ UINTN IoAlign;\r
+ EFI_TPL OldTpl;\r
\r
//\r
// Check parameters.\r
Token->TransactionStatus = EFI_SUCCESS;\r
gBS->SignalEvent (Token->Event);\r
}\r
+\r
return EFI_SUCCESS;\r
}\r
\r
return EFI_BAD_BUFFER_SIZE;\r
}\r
\r
- NumberOfBlocks = BufferSize / BlockSize;\r
+ NumberOfBlocks = BufferSize / BlockSize;\r
if ((Lba + NumberOfBlocks - 1) > Media->LastBlock) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
IoAlign = Media->IoAlign;\r
- if (IoAlign > 0 && (((UINTN) Buffer & (IoAlign - 1)) != 0)) {\r
+ if ((IoAlign > 0) && (((UINTN)Buffer & (IoAlign - 1)) != 0)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
\r
if ((Token != NULL) && (Token->Event != NULL)) {\r
Token->TransactionStatus = EFI_SUCCESS;\r
- Status = NvmeAsyncWrite (Device, Buffer, Lba, NumberOfBlocks, Token);\r
+ Status = NvmeAsyncWrite (Device, Buffer, Lba, NumberOfBlocks, Token);\r
} else {\r
Status = NvmeWrite (Device, Buffer, Lba, NumberOfBlocks);\r
}\r
EFI_STATUS\r
EFIAPI\r
NvmeBlockIoFlushBlocksEx (\r
- IN EFI_BLOCK_IO2_PROTOCOL *This,\r
- IN OUT EFI_BLOCK_IO2_TOKEN *Token\r
+ IN EFI_BLOCK_IO2_PROTOCOL *This,\r
+ IN OUT EFI_BLOCK_IO2_TOKEN *Token\r
)\r
{\r
- NVME_DEVICE_PRIVATE_DATA *Device;\r
- BOOLEAN IsEmpty;\r
- EFI_TPL OldTpl;\r
+ NVME_DEVICE_PRIVATE_DATA *Device;\r
+ BOOLEAN IsEmpty;\r
+ EFI_TPL OldTpl;\r
\r
//\r
// Check parameters.\r
**/\r
EFI_STATUS\r
TrustTransferNvmeDevice (\r
- IN OUT NVME_CONTROLLER_PRIVATE_DATA *Private,\r
- IN OUT VOID *Buffer,\r
- IN UINT8 SecurityProtocolId,\r
- IN UINT16 SecurityProtocolSpecificData,\r
- IN UINTN TransferLength,\r
- IN BOOLEAN IsTrustSend,\r
- IN UINT64 Timeout,\r
- OUT UINTN *TransferLengthOut\r
+ IN OUT NVME_CONTROLLER_PRIVATE_DATA *Private,\r
+ IN OUT VOID *Buffer,\r
+ IN UINT8 SecurityProtocolId,\r
+ IN UINT16 SecurityProtocolSpecificData,\r
+ IN UINTN TransferLength,\r
+ IN BOOLEAN IsTrustSend,\r
+ IN UINT64 Timeout,\r
+ OUT UINTN *TransferLengthOut\r
)\r
{\r
- EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET CommandPacket;\r
- EFI_NVM_EXPRESS_COMMAND Command;\r
- EFI_NVM_EXPRESS_COMPLETION Completion;\r
- EFI_STATUS Status;\r
- UINT16 SpecificData;\r
+ EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET CommandPacket;\r
+ EFI_NVM_EXPRESS_COMMAND Command;\r
+ EFI_NVM_EXPRESS_COMPLETION Completion;\r
+ EFI_STATUS Status;\r
+ UINT16 SpecificData;\r
\r
ZeroMem (&CommandPacket, sizeof (EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET));\r
ZeroMem (&Command, sizeof (EFI_NVM_EXPRESS_COMMAND));\r
);\r
\r
if (!IsTrustSend) {\r
- if (EFI_ERROR (Status)) {\r
+ if (EFI_ERROR (Status)) {\r
*TransferLengthOut = 0;\r
} else {\r
- *TransferLengthOut = (UINTN) TransferLength;\r
+ *TransferLengthOut = (UINTN)TransferLength;\r
}\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
NvmeStorageSecurityReceiveData (\r
- IN EFI_STORAGE_SECURITY_COMMAND_PROTOCOL *This,\r
- IN UINT32 MediaId,\r
- IN UINT64 Timeout,\r
- IN UINT8 SecurityProtocolId,\r
- IN UINT16 SecurityProtocolSpecificData,\r
- IN UINTN PayloadBufferSize,\r
- OUT VOID *PayloadBuffer,\r
- OUT UINTN *PayloadTransferSize\r
+ IN EFI_STORAGE_SECURITY_COMMAND_PROTOCOL *This,\r
+ IN UINT32 MediaId,\r
+ IN UINT64 Timeout,\r
+ IN UINT8 SecurityProtocolId,\r
+ IN UINT16 SecurityProtocolSpecificData,\r
+ IN UINTN PayloadBufferSize,\r
+ OUT VOID *PayloadBuffer,\r
+ OUT UINTN *PayloadTransferSize\r
)\r
{\r
- EFI_STATUS Status;\r
- NVME_DEVICE_PRIVATE_DATA *Device;\r
+ EFI_STATUS Status;\r
+ NVME_DEVICE_PRIVATE_DATA *Device;\r
\r
- Status = EFI_SUCCESS;\r
+ Status = EFI_SUCCESS;\r
\r
if ((PayloadBuffer == NULL) || (PayloadTransferSize == NULL) || (PayloadBufferSize == 0)) {\r
return EFI_INVALID_PARAMETER;\r
EFI_STATUS\r
EFIAPI\r
NvmeStorageSecuritySendData (\r
- IN EFI_STORAGE_SECURITY_COMMAND_PROTOCOL *This,\r
- IN UINT32 MediaId,\r
- IN UINT64 Timeout,\r
- IN UINT8 SecurityProtocolId,\r
- IN UINT16 SecurityProtocolSpecificData,\r
- IN UINTN PayloadBufferSize,\r
- IN VOID *PayloadBuffer\r
+ IN EFI_STORAGE_SECURITY_COMMAND_PROTOCOL *This,\r
+ IN UINT32 MediaId,\r
+ IN UINT64 Timeout,\r
+ IN UINT8 SecurityProtocolId,\r
+ IN UINT16 SecurityProtocolSpecificData,\r
+ IN UINTN PayloadBufferSize,\r
+ IN VOID *PayloadBuffer\r
)\r
{\r
- EFI_STATUS Status;\r
- NVME_DEVICE_PRIVATE_DATA *Device;\r
+ EFI_STATUS Status;\r
+ NVME_DEVICE_PRIVATE_DATA *Device;\r
\r
- Status = EFI_SUCCESS;\r
+ Status = EFI_SUCCESS;\r
\r
if ((PayloadBuffer == NULL) && (PayloadBufferSize != 0)) {\r
return EFI_INVALID_PARAMETER;\r
\r
return Status;\r
}\r
-\r
-\r
-\r
-\r