**/\r
EFI_STATUS\r
VirtioGpuInit (\r
- IN OUT VGPU_DEV *VgpuDev\r
+ IN OUT VGPU_DEV *VgpuDev\r
)\r
{\r
- UINT8 NextDevStat;\r
- EFI_STATUS Status;\r
- UINT64 Features;\r
- UINT16 QueueSize;\r
- UINT64 RingBaseShift;\r
+ UINT8 NextDevStat;\r
+ EFI_STATUS Status;\r
+ UINT64 Features;\r
+ UINT16 QueueSize;\r
+ UINT64 RingBaseShift;\r
\r
//\r
// Execute virtio-v1.0-cs04, 3.1.1 Driver Requirements: Device\r
// 1. Reset the device.\r
//\r
NextDevStat = 0;\r
- Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);\r
+ Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
// 2. Set the ACKNOWLEDGE status bit [...]\r
//\r
NextDevStat |= VSTAT_ACK;\r
- Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);\r
+ Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
// 3. Set the DRIVER status bit [...]\r
//\r
NextDevStat |= VSTAT_DRIVER;\r
- Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);\r
+ Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
+\r
if ((Features & VIRTIO_F_VERSION_1) == 0) {\r
Status = EFI_UNSUPPORTED;\r
goto Failed;\r
}\r
+\r
//\r
// We only want the most basic 2D features.\r
//\r
// 7. Perform device-specific setup, including discovery of virtqueues for\r
// the device [...]\r
//\r
- Status = VgpuDev->VirtIo->SetQueueSel (VgpuDev->VirtIo,\r
- VIRTIO_GPU_CONTROL_QUEUE);\r
+ Status = VgpuDev->VirtIo->SetQueueSel (\r
+ VgpuDev->VirtIo,\r
+ VIRTIO_GPU_CONTROL_QUEUE\r
+ );\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
+\r
Status = VgpuDev->VirtIo->GetQueueNumMax (VgpuDev->VirtIo, &QueueSize);\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
if (EFI_ERROR (Status)) {\r
goto Failed;\r
}\r
+\r
//\r
// If anything fails from here on, we have to release the ring.\r
//\r
if (EFI_ERROR (Status)) {\r
goto ReleaseQueue;\r
}\r
+\r
//\r
// If anything fails from here on, we have to unmap the ring.\r
//\r
// 8. Set the DRIVER_OK status bit.\r
//\r
NextDevStat |= VSTAT_DRIVER_OK;\r
- Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);\r
+ Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);\r
if (EFI_ERROR (Status)) {\r
goto UnmapQueue;\r
}\r
**/\r
VOID\r
VirtioGpuUninit (\r
- IN OUT VGPU_DEV *VgpuDev\r
+ IN OUT VGPU_DEV *VgpuDev\r
)\r
{\r
//\r
**/\r
EFI_STATUS\r
VirtioGpuAllocateZeroAndMapBackingStore (\r
- IN VGPU_DEV *VgpuDev,\r
- IN UINTN NumberOfPages,\r
- OUT VOID **HostAddress,\r
- OUT EFI_PHYSICAL_ADDRESS *DeviceAddress,\r
- OUT VOID **Mapping\r
+ IN VGPU_DEV *VgpuDev,\r
+ IN UINTN NumberOfPages,\r
+ OUT VOID **HostAddress,\r
+ OUT EFI_PHYSICAL_ADDRESS *DeviceAddress,\r
+ OUT VOID **Mapping\r
)\r
{\r
- EFI_STATUS Status;\r
- VOID *NewHostAddress;\r
+ EFI_STATUS Status;\r
+ VOID *NewHostAddress;\r
\r
Status = VgpuDev->VirtIo->AllocateSharedPages (\r
VgpuDev->VirtIo,\r
**/\r
VOID\r
VirtioGpuUnmapAndFreeBackingStore (\r
- IN VGPU_DEV *VgpuDev,\r
- IN UINTN NumberOfPages,\r
- IN VOID *HostAddress,\r
- IN VOID *Mapping\r
+ IN VGPU_DEV *VgpuDev,\r
+ IN UINTN NumberOfPages,\r
+ IN VOID *HostAddress,\r
+ IN VOID *Mapping\r
)\r
{\r
VgpuDev->VirtIo->UnmapSharedBuffer (\r
VOID\r
EFIAPI\r
VirtioGpuExitBoot (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
- VGPU_DEV *VgpuDev;\r
+ VGPU_DEV *VgpuDev;\r
\r
DEBUG ((DEBUG_VERBOSE, "%a: Context=0x%p\n", __FUNCTION__, Context));\r
VgpuDev = Context;\r
STATIC\r
EFI_STATUS\r
VirtioGpuSendCommand (\r
- IN OUT VGPU_DEV *VgpuDev,\r
- IN VIRTIO_GPU_CONTROL_TYPE RequestType,\r
- IN BOOLEAN Fence,\r
- IN OUT volatile VIRTIO_GPU_CONTROL_HEADER *Header,\r
- IN UINTN RequestSize\r
+ IN OUT VGPU_DEV *VgpuDev,\r
+ IN VIRTIO_GPU_CONTROL_TYPE RequestType,\r
+ IN BOOLEAN Fence,\r
+ IN OUT volatile VIRTIO_GPU_CONTROL_HEADER *Header,\r
+ IN UINTN RequestSize\r
)\r
{\r
- DESC_INDICES Indices;\r
- volatile VIRTIO_GPU_CONTROL_HEADER Response;\r
- EFI_STATUS Status;\r
- UINT32 ResponseSize;\r
- EFI_PHYSICAL_ADDRESS RequestDeviceAddress;\r
- VOID *RequestMap;\r
- EFI_PHYSICAL_ADDRESS ResponseDeviceAddress;\r
- VOID *ResponseMap;\r
+ DESC_INDICES Indices;\r
+ volatile VIRTIO_GPU_CONTROL_HEADER Response;\r
+ EFI_STATUS Status;\r
+ UINT32 ResponseSize;\r
+ EFI_PHYSICAL_ADDRESS RequestDeviceAddress;\r
+ VOID *RequestMap;\r
+ EFI_PHYSICAL_ADDRESS ResponseDeviceAddress;\r
+ VOID *ResponseMap;\r
\r
//\r
// Initialize Header.\r
//\r
- Header->Type = RequestType;\r
+ Header->Type = RequestType;\r
if (Fence) {\r
Header->Flags = VIRTIO_GPU_FLAG_FENCE;\r
Header->FenceId = VgpuDev->FenceId++;\r
Header->Flags = 0;\r
Header->FenceId = 0;\r
}\r
- Header->CtxId = 0;\r
- Header->Padding = 0;\r
+\r
+ Header->CtxId = 0;\r
+ Header->Padding = 0;\r
\r
ASSERT (RequestSize >= sizeof *Header);\r
ASSERT (RequestSize <= MAX_UINT32);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
Status = VirtioMapAllBytesInSharedBuffer (\r
VgpuDev->VirtIo,\r
VirtioOperationBusMasterWrite,\r
//\r
// Send the command.\r
//\r
- Status = VirtioFlush (VgpuDev->VirtIo, VIRTIO_GPU_CONTROL_QUEUE,\r
- &VgpuDev->Ring, &Indices, &ResponseSize);\r
+ Status = VirtioFlush (\r
+ VgpuDev->VirtIo,\r
+ VIRTIO_GPU_CONTROL_QUEUE,\r
+ &VgpuDev->Ring,\r
+ &Indices,\r
+ &ResponseSize\r
+ );\r
if (EFI_ERROR (Status)) {\r
goto UnmapResponse;\r
}\r
// Verify response size.\r
//\r
if (ResponseSize != sizeof Response) {\r
- DEBUG ((DEBUG_ERROR, "%a: malformed response to Request=0x%x\n",\r
- __FUNCTION__, (UINT32)RequestType));\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "%a: malformed response to Request=0x%x\n",\r
+ __FUNCTION__,\r
+ (UINT32)RequestType\r
+ ));\r
Status = EFI_PROTOCOL_ERROR;\r
goto UnmapResponse;\r
}\r
if (EFI_ERROR (Status)) {\r
goto UnmapRequest;\r
}\r
+\r
Status = VgpuDev->VirtIo->UnmapSharedBuffer (VgpuDev->VirtIo, RequestMap);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
return EFI_SUCCESS;\r
}\r
\r
- DEBUG ((DEBUG_ERROR, "%a: Request=0x%x Response=0x%x\n", __FUNCTION__,\r
- (UINT32)RequestType, Response.Type));\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
+ "%a: Request=0x%x Response=0x%x\n",\r
+ __FUNCTION__,\r
+ (UINT32)RequestType,\r
+ Response.Type\r
+ ));\r
return EFI_DEVICE_ERROR;\r
\r
UnmapResponse:\r
**/\r
EFI_STATUS\r
VirtioGpuResourceCreate2d (\r
- IN OUT VGPU_DEV *VgpuDev,\r
- IN UINT32 ResourceId,\r
- IN VIRTIO_GPU_FORMATS Format,\r
- IN UINT32 Width,\r
- IN UINT32 Height\r
+ IN OUT VGPU_DEV *VgpuDev,\r
+ IN UINT32 ResourceId,\r
+ IN VIRTIO_GPU_FORMATS Format,\r
+ IN UINT32 Width,\r
+ IN UINT32 Height\r
)\r
{\r
- volatile VIRTIO_GPU_RESOURCE_CREATE_2D Request;\r
+ volatile VIRTIO_GPU_RESOURCE_CREATE_2D Request;\r
\r
if (ResourceId == 0) {\r
return EFI_INVALID_PARAMETER;\r
\r
EFI_STATUS\r
VirtioGpuResourceUnref (\r
- IN OUT VGPU_DEV *VgpuDev,\r
- IN UINT32 ResourceId\r
+ IN OUT VGPU_DEV *VgpuDev,\r
+ IN UINT32 ResourceId\r
)\r
{\r
- volatile VIRTIO_GPU_RESOURCE_UNREF Request;\r
+ volatile VIRTIO_GPU_RESOURCE_UNREF Request;\r
\r
if (ResourceId == 0) {\r
return EFI_INVALID_PARAMETER;\r
\r
EFI_STATUS\r
VirtioGpuResourceAttachBacking (\r
- IN OUT VGPU_DEV *VgpuDev,\r
- IN UINT32 ResourceId,\r
- IN EFI_PHYSICAL_ADDRESS BackingStoreDeviceAddress,\r
- IN UINTN NumberOfPages\r
+ IN OUT VGPU_DEV *VgpuDev,\r
+ IN UINT32 ResourceId,\r
+ IN EFI_PHYSICAL_ADDRESS BackingStoreDeviceAddress,\r
+ IN UINTN NumberOfPages\r
)\r
{\r
- volatile VIRTIO_GPU_RESOURCE_ATTACH_BACKING Request;\r
+ volatile VIRTIO_GPU_RESOURCE_ATTACH_BACKING Request;\r
\r
if (ResourceId == 0) {\r
return EFI_INVALID_PARAMETER;\r
\r
EFI_STATUS\r
VirtioGpuResourceDetachBacking (\r
- IN OUT VGPU_DEV *VgpuDev,\r
- IN UINT32 ResourceId\r
+ IN OUT VGPU_DEV *VgpuDev,\r
+ IN UINT32 ResourceId\r
)\r
{\r
- volatile VIRTIO_GPU_RESOURCE_DETACH_BACKING Request;\r
+ volatile VIRTIO_GPU_RESOURCE_DETACH_BACKING Request;\r
\r
if (ResourceId == 0) {\r
return EFI_INVALID_PARAMETER;\r
\r
EFI_STATUS\r
VirtioGpuSetScanout (\r
- IN OUT VGPU_DEV *VgpuDev,\r
- IN UINT32 X,\r
- IN UINT32 Y,\r
- IN UINT32 Width,\r
- IN UINT32 Height,\r
- IN UINT32 ScanoutId,\r
- IN UINT32 ResourceId\r
+ IN OUT VGPU_DEV *VgpuDev,\r
+ IN UINT32 X,\r
+ IN UINT32 Y,\r
+ IN UINT32 Width,\r
+ IN UINT32 Height,\r
+ IN UINT32 ScanoutId,\r
+ IN UINT32 ResourceId\r
)\r
{\r
- volatile VIRTIO_GPU_SET_SCANOUT Request;\r
+ volatile VIRTIO_GPU_SET_SCANOUT Request;\r
\r
//\r
// Unlike for most other commands, ResourceId=0 is valid; it\r
\r
EFI_STATUS\r
VirtioGpuTransferToHost2d (\r
- IN OUT VGPU_DEV *VgpuDev,\r
- IN UINT32 X,\r
- IN UINT32 Y,\r
- IN UINT32 Width,\r
- IN UINT32 Height,\r
- IN UINT64 Offset,\r
- IN UINT32 ResourceId\r
+ IN OUT VGPU_DEV *VgpuDev,\r
+ IN UINT32 X,\r
+ IN UINT32 Y,\r
+ IN UINT32 Width,\r
+ IN UINT32 Height,\r
+ IN UINT64 Offset,\r
+ IN UINT32 ResourceId\r
)\r
{\r
- volatile VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D Request;\r
+ volatile VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D Request;\r
\r
if (ResourceId == 0) {\r
return EFI_INVALID_PARAMETER;\r
\r
EFI_STATUS\r
VirtioGpuResourceFlush (\r
- IN OUT VGPU_DEV *VgpuDev,\r
- IN UINT32 X,\r
- IN UINT32 Y,\r
- IN UINT32 Width,\r
- IN UINT32 Height,\r
- IN UINT32 ResourceId\r
+ IN OUT VGPU_DEV *VgpuDev,\r
+ IN UINT32 X,\r
+ IN UINT32 Y,\r
+ IN UINT32 Width,\r
+ IN UINT32 Height,\r
+ IN UINT32 ResourceId\r
)\r
{\r
- volatile VIRTIO_GPU_RESOURCE_FLUSH Request;\r
+ volatile VIRTIO_GPU_RESOURCE_FLUSH Request;\r
\r
if (ResourceId == 0) {\r
return EFI_INVALID_PARAMETER;\r