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>
This commit is contained in:
Michael Kubacki
2021-12-05 14:54:09 -08:00
committed by mergify[bot]
parent d1050b9dff
commit ac0a286f4d
445 changed files with 30894 additions and 26369 deletions

View File

@@ -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;
UINT8 NextDevStat;
EFI_STATUS Status;
UINT64 Features;
UINT64 NumSectors;
UINT32 BlockSize;
UINT8 PhysicalBlockExp;
UINT8 AlignmentOffset;
UINT32 OptIoSize;
UINT16 QueueSize;
UINT64 RingBaseShift;
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;
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));
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
);
}