summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/VirtioBlkDxe
diff options
context:
space:
mode:
authorMichael Kubacki <michael.kubacki@microsoft.com>2021-12-05 14:54:09 -0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2021-12-07 17:24:28 +0000
commitac0a286f4d747a4c6c603a7b225917293cbe1e9f (patch)
tree32654f2b35755afc961e2c97296b2dec5762da75 /OvmfPkg/VirtioBlkDxe
parentd1050b9dff1cace252aff86630bfdb59dff5f507 (diff)
downloadedk2-ac0a286f4d747a4c6c603a7b225917293cbe1e9f.tar.gz
edk2-ac0a286f4d747a4c6c603a7b225917293cbe1e9f.tar.bz2
edk2-ac0a286f4d747a4c6c603a7b225917293cbe1e9f.zip
OvmfPkg: Apply uncrustify changes
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the OvmfPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Andrew Fish <afish@apple.com>
Diffstat (limited to 'OvmfPkg/VirtioBlkDxe')
-rw-r--r--OvmfPkg/VirtioBlkDxe/VirtioBlk.c410
-rw-r--r--OvmfPkg/VirtioBlkDxe/VirtioBlk.h87
2 files changed, 261 insertions, 236 deletions
diff --git a/OvmfPkg/VirtioBlkDxe/VirtioBlk.c b/OvmfPkg/VirtioBlkDxe/VirtioBlk.c
index 06b9859a64..cc094cc4dd 100644
--- a/OvmfPkg/VirtioBlkDxe/VirtioBlk.c
+++ b/OvmfPkg/VirtioBlkDxe/VirtioBlk.c
@@ -63,7 +63,7 @@
(Value) \
))
-#define VIRTIO_CFG_READ(Dev, Field, Pointer) ((Dev)->VirtIo->ReadDevice ( \
+#define VIRTIO_CFG_READ(Dev, Field, Pointer) ((Dev)->VirtIo->ReadDevice ( \
(Dev)->VirtIo, \
OFFSET_OF_VBLK (Field), \
SIZE_OF_VBLK (Field), \
@@ -71,7 +71,6 @@
(Pointer) \
))
-
//
// UEFI Spec 2.3.1 + Errata C, 12.8 EFI Block I/O Protocol
// Driver Writer's Guide for UEFI 2.3.1 v1.01,
@@ -80,8 +79,8 @@
EFI_STATUS
EFIAPI
VirtioBlkReset (
- IN EFI_BLOCK_IO_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_BLOCK_IO_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
)
{
//
@@ -143,26 +142,28 @@ STATIC
EFI_STATUS
EFIAPI
VerifyReadWriteRequest (
- IN EFI_BLOCK_IO_MEDIA *Media,
- IN EFI_LBA Lba,
- IN UINTN PositiveBufferSize,
- IN BOOLEAN RequestIsWrite
+ IN EFI_BLOCK_IO_MEDIA *Media,
+ IN EFI_LBA Lba,
+ IN UINTN PositiveBufferSize,
+ IN BOOLEAN RequestIsWrite
)
{
- UINTN BlockCount;
+ UINTN BlockCount;
ASSERT (PositiveBufferSize > 0);
- if (PositiveBufferSize > SIZE_1GB ||
- PositiveBufferSize % Media->BlockSize > 0) {
+ if ((PositiveBufferSize > SIZE_1GB) ||
+ (PositiveBufferSize % Media->BlockSize > 0))
+ {
return EFI_BAD_BUFFER_SIZE;
}
+
BlockCount = PositiveBufferSize / Media->BlockSize;
//
// Avoid unsigned wraparound on either side in the second comparison.
//
- if (Lba > Media->LastBlock || BlockCount - 1 > Media->LastBlock - Lba) {
+ if ((Lba > Media->LastBlock) || (BlockCount - 1 > Media->LastBlock - Lba)) {
return EFI_INVALID_PARAMETER;
}
@@ -173,9 +174,6 @@ VerifyReadWriteRequest (
return EFI_SUCCESS;
}
-
-
-
/**
Format a read / write / flush request as three consecutive virtio
@@ -230,31 +228,30 @@ VerifyReadWriteRequest (
for a bus master operation.
**/
-
STATIC
EFI_STATUS
EFIAPI
SynchronousRequest (
- IN VBLK_DEV *Dev,
- IN EFI_LBA Lba,
- IN UINTN BufferSize,
- IN OUT volatile VOID *Buffer,
- IN BOOLEAN RequestIsWrite
+ IN VBLK_DEV *Dev,
+ IN EFI_LBA Lba,
+ IN UINTN BufferSize,
+ IN OUT volatile VOID *Buffer,
+ IN BOOLEAN RequestIsWrite
)
{
- UINT32 BlockSize;
- volatile VIRTIO_BLK_REQ Request;
- volatile UINT8 *HostStatus;
- VOID *HostStatusBuffer;
- DESC_INDICES Indices;
- VOID *RequestMapping;
- VOID *StatusMapping;
- VOID *BufferMapping;
- EFI_PHYSICAL_ADDRESS BufferDeviceAddress;
- EFI_PHYSICAL_ADDRESS HostStatusDeviceAddress;
- EFI_PHYSICAL_ADDRESS RequestDeviceAddress;
- EFI_STATUS Status;
- EFI_STATUS UnmapStatus;
+ UINT32 BlockSize;
+ volatile VIRTIO_BLK_REQ Request;
+ volatile UINT8 *HostStatus;
+ VOID *HostStatusBuffer;
+ DESC_INDICES Indices;
+ VOID *RequestMapping;
+ VOID *StatusMapping;
+ VOID *BufferMapping;
+ EFI_PHYSICAL_ADDRESS BufferDeviceAddress;
+ EFI_PHYSICAL_ADDRESS HostStatusDeviceAddress;
+ EFI_PHYSICAL_ADDRESS RequestDeviceAddress;
+ EFI_STATUS Status;
+ EFI_STATUS UnmapStatus;
BlockSize = Dev->BlockIoMedia.BlockSize;
@@ -280,11 +277,11 @@ SynchronousRequest (
// Prepare virtio-blk request header, setting zero size for flush.
// IO Priority is homogeneously 0.
//
- Request.Type = RequestIsWrite ?
- (BufferSize == 0 ? VIRTIO_BLK_T_FLUSH : VIRTIO_BLK_T_OUT) :
- VIRTIO_BLK_T_IN;
+ Request.Type = RequestIsWrite ?
+ (BufferSize == 0 ? VIRTIO_BLK_T_FLUSH : VIRTIO_BLK_T_OUT) :
+ VIRTIO_BLK_T_IN;
Request.IoPrio = 0;
- Request.Sector = MultU64x32(Lba, BlockSize / 512);
+ Request.Sector = MultU64x32 (Lba, BlockSize / 512);
//
// Host status is bi-directional (we preset with a value and expect the
@@ -309,7 +306,7 @@ SynchronousRequest (
Status = VirtioMapAllBytesInSharedBuffer (
Dev->VirtIo,
VirtioOperationBusMasterRead,
- (VOID *) &Request,
+ (VOID *)&Request,
sizeof Request,
&RequestDeviceAddress,
&RequestMapping
@@ -328,7 +325,7 @@ SynchronousRequest (
(RequestIsWrite ?
VirtioOperationBusMasterRead :
VirtioOperationBusMasterWrite),
- (VOID *) Buffer,
+ (VOID *)Buffer,
BufferSize,
&BufferDeviceAddress,
&BufferMapping
@@ -400,7 +397,7 @@ SynchronousRequest (
VirtioAppendDesc (
&Dev->Ring,
BufferDeviceAddress,
- (UINT32) BufferSize,
+ (UINT32)BufferSize,
VRING_DESC_F_NEXT | (RequestIsWrite ? 0 : VRING_DESC_F_WRITE),
&Indices
);
@@ -420,9 +417,15 @@ SynchronousRequest (
//
// virtio-blk's only virtqueue is #0, called "requestq" (see Appendix D).
//
- if (VirtioFlush (Dev->VirtIo, 0, &Dev->Ring, &Indices,
- NULL) == EFI_SUCCESS &&
- *HostStatus == VIRTIO_BLK_S_OK) {
+ if ((VirtioFlush (
+ Dev->VirtIo,
+ 0,
+ &Dev->Ring,
+ &Indices,
+ NULL
+ ) == EFI_SUCCESS) &&
+ (*HostStatus == VIRTIO_BLK_S_OK))
+ {
Status = EFI_SUCCESS;
} else {
Status = EFI_DEVICE_ERROR;
@@ -454,7 +457,6 @@ FreeHostStatusBuffer:
return Status;
}
-
/**
ReadBlocks() operation for virtio-blk.
@@ -472,25 +474,24 @@ FreeHostStatusBuffer:
successfully.
**/
-
EFI_STATUS
EFIAPI
VirtioBlkReadBlocks (
- IN EFI_BLOCK_IO_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN UINTN BufferSize,
- OUT VOID *Buffer
+ IN EFI_BLOCK_IO_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN EFI_LBA Lba,
+ IN UINTN BufferSize,
+ OUT VOID *Buffer
)
{
- VBLK_DEV *Dev;
- EFI_STATUS Status;
+ VBLK_DEV *Dev;
+ EFI_STATUS Status;
if (BufferSize == 0) {
return EFI_SUCCESS;
}
- Dev = VIRTIO_BLK_FROM_BLOCK_IO (This);
+ Dev = VIRTIO_BLK_FROM_BLOCK_IO (This);
Status = VerifyReadWriteRequest (
&Dev->BlockIoMedia,
Lba,
@@ -527,25 +528,24 @@ VirtioBlkReadBlocks (
successfully.
**/
-
EFI_STATUS
EFIAPI
VirtioBlkWriteBlocks (
- IN EFI_BLOCK_IO_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_BLOCK_IO_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN EFI_LBA Lba,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
)
{
- VBLK_DEV *Dev;
- EFI_STATUS Status;
+ VBLK_DEV *Dev;
+ EFI_STATUS Status;
if (BufferSize == 0) {
return EFI_SUCCESS;
}
- Dev = VIRTIO_BLK_FROM_BLOCK_IO (This);
+ Dev = VIRTIO_BLK_FROM_BLOCK_IO (This);
Status = VerifyReadWriteRequest (
&Dev->BlockIoMedia,
Lba,
@@ -565,7 +565,6 @@ VirtioBlkWriteBlocks (
);
}
-
/**
FlushBlocks() operation for virtio-blk.
@@ -582,28 +581,26 @@ VirtioBlkWriteBlocks (
Should they do nonetheless, we do nothing, successfully.
**/
-
EFI_STATUS
EFIAPI
VirtioBlkFlushBlocks (
- IN EFI_BLOCK_IO_PROTOCOL *This
+ IN EFI_BLOCK_IO_PROTOCOL *This
)
{
- VBLK_DEV *Dev;
+ VBLK_DEV *Dev;
Dev = VIRTIO_BLK_FROM_BLOCK_IO (This);
return Dev->BlockIoMedia.WriteCaching ?
- SynchronousRequest (
- Dev,
- 0, // Lba
- 0, // BufferSize
- NULL, // Buffer
- TRUE // RequestIsWrite
- ) :
- EFI_SUCCESS;
+ SynchronousRequest (
+ Dev,
+ 0, // Lba
+ 0, // BufferSize
+ NULL, // Buffer
+ TRUE // RequestIsWrite
+ ) :
+ EFI_SUCCESS;
}
-
/**
Device probe function for this driver.
@@ -640,17 +637,16 @@ VirtioBlkFlushBlocks (
the VirtIo protocol.
**/
-
EFI_STATUS
EFIAPI
VirtioBlkDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE DeviceHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE DeviceHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
- EFI_STATUS Status;
- VIRTIO_DEVICE_PROTOCOL *VirtIo;
+ EFI_STATUS Status;
+ VIRTIO_DEVICE_PROTOCOL *VirtIo;
//
// Attempt to open the device with the VirtIo set of interfaces. On success,
@@ -679,12 +675,15 @@ VirtioBlkDriverBindingSupported (
// We needed VirtIo access only transitorily, to see whether we support the
// device or not.
//
- gBS->CloseProtocol (DeviceHandle, &gVirtioDeviceProtocolGuid,
- This->DriverBindingHandle, DeviceHandle);
+ gBS->CloseProtocol (
+ DeviceHandle,
+ &gVirtioDeviceProtocolGuid,
+ This->DriverBindingHandle,
+ DeviceHandle
+ );
return Status;
}
-
/**
Set up all BlockIo and virtio-blk aspects of this driver for the specified
@@ -704,47 +703,46 @@ VirtioBlkDriverBindingSupported (
VirtioRingMap().
**/
-
STATIC
EFI_STATUS
EFIAPI
VirtioBlkInit (
- IN OUT VBLK_DEV *Dev
+ IN OUT VBLK_DEV *Dev
)
{
- UINT8 NextDevStat;
- EFI_STATUS Status;
-
- UINT64 Features;
- UINT64 NumSectors;
- UINT32 BlockSize;
- UINT8 PhysicalBlockExp;
- UINT8 AlignmentOffset;
- UINT32 OptIoSize;
- UINT16 QueueSize;
- UINT64 RingBaseShift;
+ UINT8 NextDevStat;
+ EFI_STATUS Status;
+
+ UINT64 Features;
+ UINT64 NumSectors;
+ UINT32 BlockSize;
+ UINT8 PhysicalBlockExp;
+ UINT8 AlignmentOffset;
+ UINT32 OptIoSize;
+ UINT16 QueueSize;
+ UINT64 RingBaseShift;
PhysicalBlockExp = 0;
- AlignmentOffset = 0;
- OptIoSize = 0;
+ AlignmentOffset = 0;
+ OptIoSize = 0;
//
// Execute virtio-0.9.5, 2.2.1 Device Initialization Sequence.
//
NextDevStat = 0; // step 1 -- reset device
- Status = Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, NextDevStat);
+ Status = Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, NextDevStat);
if (EFI_ERROR (Status)) {
goto Failed;
}
NextDevStat |= VSTAT_ACK; // step 2 -- acknowledge device presence
- Status = Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, NextDevStat);
+ Status = Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, NextDevStat);
if (EFI_ERROR (Status)) {
goto Failed;
}
NextDevStat |= VSTAT_DRIVER; // step 3 -- we know how to drive it
- Status = Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, NextDevStat);
+ Status = Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, NextDevStat);
if (EFI_ERROR (Status)) {
goto Failed;
}
@@ -769,6 +767,7 @@ VirtioBlkInit (
if (EFI_ERROR (Status)) {
goto Failed;
}
+
if (NumSectors == 0) {
Status = EFI_UNSUPPORTED;
goto Failed;
@@ -779,8 +778,10 @@ VirtioBlkInit (
if (EFI_ERROR (Status)) {
goto Failed;
}
- if (BlockSize == 0 || BlockSize % 512 != 0 ||
- ModU64x32 (NumSectors, BlockSize / 512) != 0) {
+
+ if ((BlockSize == 0) || (BlockSize % 512 != 0) ||
+ (ModU64x32 (NumSectors, BlockSize / 512) != 0))
+ {
//
// We can only handle a logical block consisting of whole sectors,
// and only a disk composed of whole logical blocks.
@@ -788,17 +789,20 @@ VirtioBlkInit (
Status = EFI_UNSUPPORTED;
goto Failed;
}
- }
- else {
+ } else {
BlockSize = 512;
}
if (Features & VIRTIO_BLK_F_TOPOLOGY) {
- Status = VIRTIO_CFG_READ (Dev, Topology.PhysicalBlockExp,
- &PhysicalBlockExp);
+ Status = VIRTIO_CFG_READ (
+ Dev,
+ Topology.PhysicalBlockExp,
+ &PhysicalBlockExp
+ );
if (EFI_ERROR (Status)) {
goto Failed;
}
+
if (PhysicalBlockExp >= 32) {
Status = EFI_UNSUPPORTED;
goto Failed;
@@ -837,11 +841,14 @@ VirtioBlkInit (
if (EFI_ERROR (Status)) {
goto Failed;
}
+
Status = Dev->VirtIo->GetQueueNumMax (Dev->VirtIo, &QueueSize);
if (EFI_ERROR (Status)) {
goto Failed;
}
- if (QueueSize < 3) { // SynchronousRequest() uses at most three descriptors
+
+ if (QueueSize < 3) {
+ // SynchronousRequest() uses at most three descriptors
Status = EFI_UNSUPPORTED;
goto Failed;
}
@@ -890,13 +897,12 @@ VirtioBlkInit (
goto UnmapQueue;
}
-
//
// step 5 -- Report understood features.
//
if (Dev->VirtIo->Revision < VIRTIO_SPEC_REVISION (1, 0, 0)) {
Features &= ~(UINT64)(VIRTIO_F_VERSION_1 | VIRTIO_F_IOMMU_PLATFORM);
- Status = Dev->VirtIo->SetGuestFeatures (Dev->VirtIo, Features);
+ Status = Dev->VirtIo->SetGuestFeatures (Dev->VirtIo, Features);
if (EFI_ERROR (Status)) {
goto UnmapQueue;
}
@@ -906,7 +912,7 @@ VirtioBlkInit (
// step 6 -- initialization complete
//
NextDevStat |= VSTAT_DRIVER_OK;
- Status = Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, NextDevStat);
+ Status = Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, NextDevStat);
if (EFI_ERROR (Status)) {
goto UnmapQueue;
}
@@ -925,30 +931,45 @@ VirtioBlkInit (
Dev->BlockIoMedia.RemovableMedia = FALSE;
Dev->BlockIoMedia.MediaPresent = TRUE;
Dev->BlockIoMedia.LogicalPartition = FALSE;
- Dev->BlockIoMedia.ReadOnly = (BOOLEAN) ((Features & VIRTIO_BLK_F_RO) != 0);
- Dev->BlockIoMedia.WriteCaching = (BOOLEAN) ((Features & VIRTIO_BLK_F_FLUSH) != 0);
+ Dev->BlockIoMedia.ReadOnly = (BOOLEAN)((Features & VIRTIO_BLK_F_RO) != 0);
+ Dev->BlockIoMedia.WriteCaching = (BOOLEAN)((Features & VIRTIO_BLK_F_FLUSH) != 0);
Dev->BlockIoMedia.BlockSize = BlockSize;
Dev->BlockIoMedia.IoAlign = 0;
- Dev->BlockIoMedia.LastBlock = DivU64x32 (NumSectors,
- BlockSize / 512) - 1;
-
- DEBUG ((DEBUG_INFO, "%a: LbaSize=0x%x[B] NumBlocks=0x%Lx[Lba]\n",
- __FUNCTION__, Dev->BlockIoMedia.BlockSize,
- Dev->BlockIoMedia.LastBlock + 1));
+ Dev->BlockIoMedia.LastBlock = DivU64x32 (
+ NumSectors,
+ BlockSize / 512
+ ) - 1;
+
+ DEBUG ((
+ DEBUG_INFO,
+ "%a: LbaSize=0x%x[B] NumBlocks=0x%Lx[Lba]\n",
+ __FUNCTION__,
+ Dev->BlockIoMedia.BlockSize,
+ Dev->BlockIoMedia.LastBlock + 1
+ ));
if (Features & VIRTIO_BLK_F_TOPOLOGY) {
Dev->BlockIo.Revision = EFI_BLOCK_IO_PROTOCOL_REVISION3;
- Dev->BlockIoMedia.LowestAlignedLba = AlignmentOffset;
- Dev->BlockIoMedia.LogicalBlocksPerPhysicalBlock = 1u << PhysicalBlockExp;
+ Dev->BlockIoMedia.LowestAlignedLba = AlignmentOffset;
+ Dev->BlockIoMedia.LogicalBlocksPerPhysicalBlock = 1u << PhysicalBlockExp;
Dev->BlockIoMedia.OptimalTransferLengthGranularity = OptIoSize;
- DEBUG ((DEBUG_INFO, "%a: FirstAligned=0x%Lx[Lba] PhysBlkSize=0x%x[Lba]\n",
- __FUNCTION__, Dev->BlockIoMedia.LowestAlignedLba,
- Dev->BlockIoMedia.LogicalBlocksPerPhysicalBlock));
- DEBUG ((DEBUG_INFO, "%a: OptimalTransferLengthGranularity=0x%x[Lba]\n",
- __FUNCTION__, Dev->BlockIoMedia.OptimalTransferLengthGranularity));
+ DEBUG ((
+ DEBUG_INFO,
+ "%a: FirstAligned=0x%Lx[Lba] PhysBlkSize=0x%x[Lba]\n",
+ __FUNCTION__,
+ Dev->BlockIoMedia.LowestAlignedLba,
+ Dev->BlockIoMedia.LogicalBlocksPerPhysicalBlock
+ ));
+ DEBUG ((
+ DEBUG_INFO,
+ "%a: OptimalTransferLengthGranularity=0x%x[Lba]\n",
+ __FUNCTION__,
+ Dev->BlockIoMedia.OptimalTransferLengthGranularity
+ ));
}
+
return EFI_SUCCESS;
UnmapQueue:
@@ -968,7 +989,6 @@ Failed:
return Status; // reached only via Failed above
}
-
/**
Uninitialize the internals of a virtio-blk device that has been successfully
@@ -977,12 +997,11 @@ Failed:
@param[in out] Dev The device to clean up.
**/
-
STATIC
VOID
EFIAPI
VirtioBlkUninit (
- IN OUT VBLK_DEV *Dev
+ IN OUT VBLK_DEV *Dev
)
{
//
@@ -995,11 +1014,10 @@ VirtioBlkUninit (
Dev->VirtIo->UnmapSharedBuffer (Dev->VirtIo, Dev->RingMap);
VirtioRingUninit (Dev->VirtIo, &Dev->Ring);
- SetMem (&Dev->BlockIo, sizeof Dev->BlockIo, 0x00);
+ SetMem (&Dev->BlockIo, sizeof Dev->BlockIo, 0x00);
SetMem (&Dev->BlockIoMedia, sizeof Dev->BlockIoMedia, 0x00);
}
-
/**
Event notification function enqueued by ExitBootServices().
@@ -1009,16 +1027,15 @@ VirtioBlkUninit (
@param[in] Context Pointer to the VBLK_DEV structure.
**/
-
STATIC
VOID
EFIAPI
VirtioBlkExitBoot (
- IN EFI_EVENT Event,
- IN VOID *Context
+ IN EFI_EVENT Event,
+ IN VOID *Context
)
{
- VBLK_DEV *Dev;
+ VBLK_DEV *Dev;
DEBUG ((DEBUG_VERBOSE, "%a: Context=0x%p\n", __FUNCTION__, Context));
//
@@ -1060,26 +1077,30 @@ VirtioBlkExitBoot (
or the InstallProtocolInterface() boot service.
**/
-
EFI_STATUS
EFIAPI
VirtioBlkDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE DeviceHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE DeviceHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
- VBLK_DEV *Dev;
- EFI_STATUS Status;
+ VBLK_DEV *Dev;
+ EFI_STATUS Status;
- Dev = (VBLK_DEV *) AllocateZeroPool (sizeof *Dev);
+ Dev = (VBLK_DEV *)AllocateZeroPool (sizeof *Dev);
if (Dev == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- Status = gBS->OpenProtocol (DeviceHandle, &gVirtioDeviceProtocolGuid,
- (VOID **)&Dev->VirtIo, This->DriverBindingHandle,
- DeviceHandle, EFI_OPEN_PROTOCOL_BY_DRIVER);
+ Status = gBS->OpenProtocol (
+ DeviceHandle,
+ &gVirtioDeviceProtocolGuid,
+ (VOID **)&Dev->VirtIo,
+ This->DriverBindingHandle,
+ DeviceHandle,
+ EFI_OPEN_PROTOCOL_BY_DRIVER
+ );
if (EFI_ERROR (Status)) {
goto FreeVirtioBlk;
}
@@ -1092,8 +1113,13 @@ VirtioBlkDriverBindingStart (
goto CloseVirtIo;
}
- Status = gBS->CreateEvent (EVT_SIGNAL_EXIT_BOOT_SERVICES, TPL_CALLBACK,
- &VirtioBlkExitBoot, Dev, &Dev->ExitBoot);
+ Status = gBS->CreateEvent (
+ EVT_SIGNAL_EXIT_BOOT_SERVICES,
+ TPL_CALLBACK,
+ &VirtioBlkExitBoot,
+ Dev,
+ &Dev->ExitBoot
+ );
if (EFI_ERROR (Status)) {
goto UninitDev;
}
@@ -1102,9 +1128,12 @@ VirtioBlkDriverBindingStart (
// Setup complete, attempt to export the driver instance's BlockIo interface.
//
Dev->Signature = VBLK_SIG;
- Status = gBS->InstallProtocolInterface (&DeviceHandle,
- &gEfiBlockIoProtocolGuid, EFI_NATIVE_INTERFACE,
- &Dev->BlockIo);
+ Status = gBS->InstallProtocolInterface (
+ &DeviceHandle,
+ &gEfiBlockIoProtocolGuid,
+ EFI_NATIVE_INTERFACE,
+ &Dev->BlockIo
+ );
if (EFI_ERROR (Status)) {
goto CloseExitBoot;
}
@@ -1118,8 +1147,12 @@ UninitDev:
VirtioBlkUninit (Dev);
CloseVirtIo:
- gBS->CloseProtocol (DeviceHandle, &gVirtioDeviceProtocolGuid,
- This->DriverBindingHandle, DeviceHandle);
+ gBS->CloseProtocol (
+ DeviceHandle,
+ &gVirtioDeviceProtocolGuid,
+ This->DriverBindingHandle,
+ DeviceHandle
+ );
FreeVirtioBlk:
FreePool (Dev);
@@ -1127,7 +1160,6 @@ FreeVirtioBlk:
return Status;
}
-
/**
Stop driving a virtio-blk device and remove its BlockIo interface.
@@ -1150,19 +1182,18 @@ FreeVirtioBlk:
@param[in] ChildHandleBuffer Ignored (corresponding to NumberOfChildren).
**/
-
EFI_STATUS
EFIAPI
VirtioBlkDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE DeviceHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE DeviceHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
)
{
- EFI_STATUS Status;
- EFI_BLOCK_IO_PROTOCOL *BlockIo;
- VBLK_DEV *Dev;
+ EFI_STATUS Status;
+ EFI_BLOCK_IO_PROTOCOL *BlockIo;
+ VBLK_DEV *Dev;
Status = gBS->OpenProtocol (
DeviceHandle, // candidate device
@@ -1181,8 +1212,11 @@ VirtioBlkDriverBindingStop (
//
// Handle Stop() requests for in-use driver instances gracefully.
//
- Status = gBS->UninstallProtocolInterface (DeviceHandle,
- &gEfiBlockIoProtocolGuid, &Dev->BlockIo);
+ Status = gBS->UninstallProtocolInterface (
+ DeviceHandle,
+ &gEfiBlockIoProtocolGuid,
+ &Dev->BlockIo
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1191,21 +1225,24 @@ VirtioBlkDriverBindingStop (
VirtioBlkUninit (Dev);
- gBS->CloseProtocol (DeviceHandle, &gVirtioDeviceProtocolGuid,
- This->DriverBindingHandle, DeviceHandle);
+ gBS->CloseProtocol (
+ DeviceHandle,
+ &gVirtioDeviceProtocolGuid,
+ This->DriverBindingHandle,
+ DeviceHandle
+ );
FreePool (Dev);
return EFI_SUCCESS;
}
-
//
// The static object that groups the Supported() (ie. probe), Start() and
// Stop() functions of the driver together. Refer to UEFI Spec 2.3.1 + Errata
// C, 10.1 EFI Driver Binding Protocol.
//
-STATIC EFI_DRIVER_BINDING_PROTOCOL gDriverBinding = {
+STATIC EFI_DRIVER_BINDING_PROTOCOL gDriverBinding = {
&VirtioBlkDriverBindingSupported,
&VirtioBlkDriverBindingStart,
&VirtioBlkDriverBindingStop,
@@ -1215,7 +1252,6 @@ STATIC EFI_DRIVER_BINDING_PROTOCOL gDriverBinding = {
NULL // DriverBindingHandle, ditto
};
-
//
// The purpose of the following scaffolding (EFI_COMPONENT_NAME_PROTOCOL and
// EFI_COMPONENT_NAME2_PROTOCOL implementation) is to format the driver's name
@@ -1229,20 +1265,20 @@ STATIC EFI_DRIVER_BINDING_PROTOCOL gDriverBinding = {
//
STATIC
-EFI_UNICODE_STRING_TABLE mDriverNameTable[] = {
+EFI_UNICODE_STRING_TABLE mDriverNameTable[] = {
{ "eng;en", L"Virtio Block Driver" },
{ NULL, NULL }
};
STATIC
-EFI_COMPONENT_NAME_PROTOCOL gComponentName;
+EFI_COMPONENT_NAME_PROTOCOL gComponentName;
EFI_STATUS
EFIAPI
VirtioBlkGetDriverName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN CHAR8 *Language,
- OUT CHAR16 **DriverName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN CHAR8 *Language,
+ OUT CHAR16 **DriverName
)
{
return LookupUnicodeString2 (
@@ -1257,39 +1293,38 @@ VirtioBlkGetDriverName (
EFI_STATUS
EFIAPI
VirtioBlkGetDeviceName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE DeviceHandle,
- IN EFI_HANDLE ChildHandle,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE DeviceHandle,
+ IN EFI_HANDLE ChildHandle,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
)
{
return EFI_UNSUPPORTED;
}
STATIC
-EFI_COMPONENT_NAME_PROTOCOL gComponentName = {
+EFI_COMPONENT_NAME_PROTOCOL gComponentName = {
&VirtioBlkGetDriverName,
&VirtioBlkGetDeviceName,
"eng" // SupportedLanguages, ISO 639-2 language codes
};
STATIC
-EFI_COMPONENT_NAME2_PROTOCOL gComponentName2 = {
- (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) &VirtioBlkGetDriverName,
- (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) &VirtioBlkGetDeviceName,
+EFI_COMPONENT_NAME2_PROTOCOL gComponentName2 = {
+ (EFI_COMPONENT_NAME2_GET_DRIVER_NAME)&VirtioBlkGetDriverName,
+ (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)&VirtioBlkGetDeviceName,
"en" // SupportedLanguages, RFC 4646 language codes
};
-
//
// Entry point of this driver.
//
EFI_STATUS
EFIAPI
VirtioBlkEntryPoint (
- IN EFI_HANDLE ImageHandle,
- IN EFI_SYSTEM_TABLE *SystemTable
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
)
{
return EfiLibInstallDriverBindingComponentName2 (
@@ -1301,4 +1336,3 @@ VirtioBlkEntryPoint (
&gComponentName2
);
}
-
diff --git a/OvmfPkg/VirtioBlkDxe/VirtioBlk.h b/OvmfPkg/VirtioBlkDxe/VirtioBlk.h
index efbbe2162f..54a96626ff 100644
--- a/OvmfPkg/VirtioBlkDxe/VirtioBlk.h
+++ b/OvmfPkg/VirtioBlkDxe/VirtioBlk.h
@@ -18,8 +18,7 @@
#include <IndustryStandard/Virtio.h>
-
-#define VBLK_SIG SIGNATURE_32 ('V', 'B', 'L', 'K')
+#define VBLK_SIG SIGNATURE_32 ('V', 'B', 'L', 'K')
typedef struct {
//
@@ -29,19 +28,18 @@ typedef struct {
//
// field init function init dpth
// --------------------- ------------------ ---------
- UINT32 Signature; // DriverBindingStart 0
- VIRTIO_DEVICE_PROTOCOL *VirtIo; // DriverBindingStart 0
- EFI_EVENT ExitBoot; // DriverBindingStart 0
- VRING Ring; // VirtioRingInit 2
- EFI_BLOCK_IO_PROTOCOL BlockIo; // VirtioBlkInit 1
- EFI_BLOCK_IO_MEDIA BlockIoMedia; // VirtioBlkInit 1
- VOID *RingMap; // VirtioRingMap 2
+ UINT32 Signature; // DriverBindingStart 0
+ VIRTIO_DEVICE_PROTOCOL *VirtIo; // DriverBindingStart 0
+ EFI_EVENT ExitBoot; // DriverBindingStart 0
+ VRING Ring; // VirtioRingInit 2
+ EFI_BLOCK_IO_PROTOCOL BlockIo; // VirtioBlkInit 1
+ EFI_BLOCK_IO_MEDIA BlockIoMedia; // VirtioBlkInit 1
+ VOID *RingMap; // VirtioRingMap 2
} VBLK_DEV;
#define VIRTIO_BLK_FROM_BLOCK_IO(BlockIoPointer) \
CR (BlockIoPointer, VBLK_DEV, BlockIo, VBLK_SIG)
-
/**
Device probe function for this driver.
@@ -81,12 +79,11 @@ typedef struct {
EFI_STATUS
EFIAPI
VirtioBlkDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE DeviceHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE DeviceHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
-
/**
After we've pronounced support for a specific device in
@@ -119,12 +116,11 @@ VirtioBlkDriverBindingSupported (
EFI_STATUS
EFIAPI
VirtioBlkDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE DeviceHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE DeviceHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
-
/**
Stop driving a virtio-blk device and remove its BlockIo interface.
@@ -151,13 +147,12 @@ VirtioBlkDriverBindingStart (
EFI_STATUS
EFIAPI
VirtioBlkDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE DeviceHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE DeviceHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer
);
-
//
// UEFI Spec 2.3.1 + Errata C, 12.8 EFI Block I/O Protocol
// Driver Writer's Guide for UEFI 2.3.1 v1.01,
@@ -166,11 +161,10 @@ VirtioBlkDriverBindingStop (
EFI_STATUS
EFIAPI
VirtioBlkReset (
- IN EFI_BLOCK_IO_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
+ IN EFI_BLOCK_IO_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
);
-
/**
ReadBlocks() operation for virtio-blk.
@@ -192,14 +186,13 @@ VirtioBlkReset (
EFI_STATUS
EFIAPI
VirtioBlkReadBlocks (
- IN EFI_BLOCK_IO_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN UINTN BufferSize,
- OUT VOID *Buffer
+ IN EFI_BLOCK_IO_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN EFI_LBA Lba,
+ IN UINTN BufferSize,
+ OUT VOID *Buffer
);
-
/**
WriteBlocks() operation for virtio-blk.
@@ -221,14 +214,13 @@ VirtioBlkReadBlocks (
EFI_STATUS
EFIAPI
VirtioBlkWriteBlocks (
- IN EFI_BLOCK_IO_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN UINTN BufferSize,
- IN VOID *Buffer
+ IN EFI_BLOCK_IO_PROTOCOL *This,
+ IN UINT32 MediaId,
+ IN EFI_LBA Lba,
+ IN UINTN BufferSize,
+ IN VOID *Buffer
);
-
/**
FlushBlocks() operation for virtio-blk.
@@ -249,10 +241,9 @@ VirtioBlkWriteBlocks (
EFI_STATUS
EFIAPI
VirtioBlkFlushBlocks (
- IN EFI_BLOCK_IO_PROTOCOL *This
+ IN EFI_BLOCK_IO_PROTOCOL *This
);
-
//
// The purpose of the following scaffolding (EFI_COMPONENT_NAME_PROTOCOL and
// EFI_COMPONENT_NAME2_PROTOCOL implementation) is to format the driver's name
@@ -268,19 +259,19 @@ VirtioBlkFlushBlocks (
EFI_STATUS
EFIAPI
VirtioBlkGetDriverName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN CHAR8 *Language,
- OUT CHAR16 **DriverName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN CHAR8 *Language,
+ OUT CHAR16 **DriverName
);
EFI_STATUS
EFIAPI
VirtioBlkGetDeviceName (
- IN EFI_COMPONENT_NAME_PROTOCOL *This,
- IN EFI_HANDLE DeviceHandle,
- IN EFI_HANDLE ChildHandle,
- IN CHAR8 *Language,
- OUT CHAR16 **ControllerName
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,
+ IN EFI_HANDLE DeviceHandle,
+ IN EFI_HANDLE ChildHandle,
+ IN CHAR8 *Language,
+ OUT CHAR16 **ControllerName
);
#endif // _VIRTIO_BLK_DXE_H_