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:
committed by
mergify[bot]
parent
d1050b9dff
commit
ac0a286f4d
@@ -31,14 +31,14 @@
|
||||
**/
|
||||
EFI_STATUS
|
||||
VirtioGpuInit (
|
||||
IN OUT VGPU_DEV *VgpuDev
|
||||
IN OUT VGPU_DEV *VgpuDev
|
||||
)
|
||||
{
|
||||
UINT8 NextDevStat;
|
||||
EFI_STATUS Status;
|
||||
UINT64 Features;
|
||||
UINT16 QueueSize;
|
||||
UINT64 RingBaseShift;
|
||||
UINT8 NextDevStat;
|
||||
EFI_STATUS Status;
|
||||
UINT64 Features;
|
||||
UINT16 QueueSize;
|
||||
UINT64 RingBaseShift;
|
||||
|
||||
//
|
||||
// Execute virtio-v1.0-cs04, 3.1.1 Driver Requirements: Device
|
||||
@@ -47,7 +47,7 @@ VirtioGpuInit (
|
||||
// 1. Reset the device.
|
||||
//
|
||||
NextDevStat = 0;
|
||||
Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);
|
||||
Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto Failed;
|
||||
}
|
||||
@@ -56,7 +56,7 @@ VirtioGpuInit (
|
||||
// 2. Set the ACKNOWLEDGE status bit [...]
|
||||
//
|
||||
NextDevStat |= VSTAT_ACK;
|
||||
Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);
|
||||
Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto Failed;
|
||||
}
|
||||
@@ -65,7 +65,7 @@ VirtioGpuInit (
|
||||
// 3. Set the DRIVER status bit [...]
|
||||
//
|
||||
NextDevStat |= VSTAT_DRIVER;
|
||||
Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);
|
||||
Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto Failed;
|
||||
}
|
||||
@@ -77,10 +77,12 @@ VirtioGpuInit (
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto Failed;
|
||||
}
|
||||
|
||||
if ((Features & VIRTIO_F_VERSION_1) == 0) {
|
||||
Status = EFI_UNSUPPORTED;
|
||||
goto Failed;
|
||||
}
|
||||
|
||||
//
|
||||
// We only want the most basic 2D features.
|
||||
//
|
||||
@@ -101,11 +103,14 @@ VirtioGpuInit (
|
||||
// 7. Perform device-specific setup, including discovery of virtqueues for
|
||||
// the device [...]
|
||||
//
|
||||
Status = VgpuDev->VirtIo->SetQueueSel (VgpuDev->VirtIo,
|
||||
VIRTIO_GPU_CONTROL_QUEUE);
|
||||
Status = VgpuDev->VirtIo->SetQueueSel (
|
||||
VgpuDev->VirtIo,
|
||||
VIRTIO_GPU_CONTROL_QUEUE
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto Failed;
|
||||
}
|
||||
|
||||
Status = VgpuDev->VirtIo->GetQueueNumMax (VgpuDev->VirtIo, &QueueSize);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto Failed;
|
||||
@@ -127,6 +132,7 @@ VirtioGpuInit (
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto Failed;
|
||||
}
|
||||
|
||||
//
|
||||
// If anything fails from here on, we have to release the ring.
|
||||
//
|
||||
@@ -139,6 +145,7 @@ VirtioGpuInit (
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto ReleaseQueue;
|
||||
}
|
||||
|
||||
//
|
||||
// If anything fails from here on, we have to unmap the ring.
|
||||
//
|
||||
@@ -155,7 +162,7 @@ VirtioGpuInit (
|
||||
// 8. Set the DRIVER_OK status bit.
|
||||
//
|
||||
NextDevStat |= VSTAT_DRIVER_OK;
|
||||
Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);
|
||||
Status = VgpuDev->VirtIo->SetDeviceStatus (VgpuDev->VirtIo, NextDevStat);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto UnmapQueue;
|
||||
}
|
||||
@@ -193,7 +200,7 @@ Failed:
|
||||
**/
|
||||
VOID
|
||||
VirtioGpuUninit (
|
||||
IN OUT VGPU_DEV *VgpuDev
|
||||
IN OUT VGPU_DEV *VgpuDev
|
||||
)
|
||||
{
|
||||
//
|
||||
@@ -235,15 +242,15 @@ VirtioGpuUninit (
|
||||
**/
|
||||
EFI_STATUS
|
||||
VirtioGpuAllocateZeroAndMapBackingStore (
|
||||
IN VGPU_DEV *VgpuDev,
|
||||
IN UINTN NumberOfPages,
|
||||
OUT VOID **HostAddress,
|
||||
OUT EFI_PHYSICAL_ADDRESS *DeviceAddress,
|
||||
OUT VOID **Mapping
|
||||
IN VGPU_DEV *VgpuDev,
|
||||
IN UINTN NumberOfPages,
|
||||
OUT VOID **HostAddress,
|
||||
OUT EFI_PHYSICAL_ADDRESS *DeviceAddress,
|
||||
OUT VOID **Mapping
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
VOID *NewHostAddress;
|
||||
EFI_STATUS Status;
|
||||
VOID *NewHostAddress;
|
||||
|
||||
Status = VgpuDev->VirtIo->AllocateSharedPages (
|
||||
VgpuDev->VirtIo,
|
||||
@@ -308,10 +315,10 @@ FreeSharedPages:
|
||||
**/
|
||||
VOID
|
||||
VirtioGpuUnmapAndFreeBackingStore (
|
||||
IN VGPU_DEV *VgpuDev,
|
||||
IN UINTN NumberOfPages,
|
||||
IN VOID *HostAddress,
|
||||
IN VOID *Mapping
|
||||
IN VGPU_DEV *VgpuDev,
|
||||
IN UINTN NumberOfPages,
|
||||
IN VOID *HostAddress,
|
||||
IN VOID *Mapping
|
||||
)
|
||||
{
|
||||
VgpuDev->VirtIo->UnmapSharedBuffer (
|
||||
@@ -341,11 +348,11 @@ VirtioGpuUnmapAndFreeBackingStore (
|
||||
VOID
|
||||
EFIAPI
|
||||
VirtioGpuExitBoot (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
)
|
||||
{
|
||||
VGPU_DEV *VgpuDev;
|
||||
VGPU_DEV *VgpuDev;
|
||||
|
||||
DEBUG ((DEBUG_VERBOSE, "%a: Context=0x%p\n", __FUNCTION__, Context));
|
||||
VgpuDev = Context;
|
||||
@@ -398,26 +405,26 @@ VirtioGpuExitBoot (
|
||||
STATIC
|
||||
EFI_STATUS
|
||||
VirtioGpuSendCommand (
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN VIRTIO_GPU_CONTROL_TYPE RequestType,
|
||||
IN BOOLEAN Fence,
|
||||
IN OUT volatile VIRTIO_GPU_CONTROL_HEADER *Header,
|
||||
IN UINTN RequestSize
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN VIRTIO_GPU_CONTROL_TYPE RequestType,
|
||||
IN BOOLEAN Fence,
|
||||
IN OUT volatile VIRTIO_GPU_CONTROL_HEADER *Header,
|
||||
IN UINTN RequestSize
|
||||
)
|
||||
{
|
||||
DESC_INDICES Indices;
|
||||
volatile VIRTIO_GPU_CONTROL_HEADER Response;
|
||||
EFI_STATUS Status;
|
||||
UINT32 ResponseSize;
|
||||
EFI_PHYSICAL_ADDRESS RequestDeviceAddress;
|
||||
VOID *RequestMap;
|
||||
EFI_PHYSICAL_ADDRESS ResponseDeviceAddress;
|
||||
VOID *ResponseMap;
|
||||
DESC_INDICES Indices;
|
||||
volatile VIRTIO_GPU_CONTROL_HEADER Response;
|
||||
EFI_STATUS Status;
|
||||
UINT32 ResponseSize;
|
||||
EFI_PHYSICAL_ADDRESS RequestDeviceAddress;
|
||||
VOID *RequestMap;
|
||||
EFI_PHYSICAL_ADDRESS ResponseDeviceAddress;
|
||||
VOID *ResponseMap;
|
||||
|
||||
//
|
||||
// Initialize Header.
|
||||
//
|
||||
Header->Type = RequestType;
|
||||
Header->Type = RequestType;
|
||||
if (Fence) {
|
||||
Header->Flags = VIRTIO_GPU_FLAG_FENCE;
|
||||
Header->FenceId = VgpuDev->FenceId++;
|
||||
@@ -425,8 +432,9 @@ VirtioGpuSendCommand (
|
||||
Header->Flags = 0;
|
||||
Header->FenceId = 0;
|
||||
}
|
||||
Header->CtxId = 0;
|
||||
Header->Padding = 0;
|
||||
|
||||
Header->CtxId = 0;
|
||||
Header->Padding = 0;
|
||||
|
||||
ASSERT (RequestSize >= sizeof *Header);
|
||||
ASSERT (RequestSize <= MAX_UINT32);
|
||||
@@ -445,6 +453,7 @@ VirtioGpuSendCommand (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
Status = VirtioMapAllBytesInSharedBuffer (
|
||||
VgpuDev->VirtIo,
|
||||
VirtioOperationBusMasterWrite,
|
||||
@@ -479,8 +488,13 @@ VirtioGpuSendCommand (
|
||||
//
|
||||
// Send the command.
|
||||
//
|
||||
Status = VirtioFlush (VgpuDev->VirtIo, VIRTIO_GPU_CONTROL_QUEUE,
|
||||
&VgpuDev->Ring, &Indices, &ResponseSize);
|
||||
Status = VirtioFlush (
|
||||
VgpuDev->VirtIo,
|
||||
VIRTIO_GPU_CONTROL_QUEUE,
|
||||
&VgpuDev->Ring,
|
||||
&Indices,
|
||||
&ResponseSize
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto UnmapResponse;
|
||||
}
|
||||
@@ -489,8 +503,12 @@ VirtioGpuSendCommand (
|
||||
// Verify response size.
|
||||
//
|
||||
if (ResponseSize != sizeof Response) {
|
||||
DEBUG ((DEBUG_ERROR, "%a: malformed response to Request=0x%x\n",
|
||||
__FUNCTION__, (UINT32)RequestType));
|
||||
DEBUG ((
|
||||
DEBUG_ERROR,
|
||||
"%a: malformed response to Request=0x%x\n",
|
||||
__FUNCTION__,
|
||||
(UINT32)RequestType
|
||||
));
|
||||
Status = EFI_PROTOCOL_ERROR;
|
||||
goto UnmapResponse;
|
||||
}
|
||||
@@ -504,6 +522,7 @@ VirtioGpuSendCommand (
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto UnmapRequest;
|
||||
}
|
||||
|
||||
Status = VgpuDev->VirtIo->UnmapSharedBuffer (VgpuDev->VirtIo, RequestMap);
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
@@ -516,8 +535,13 @@ VirtioGpuSendCommand (
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
DEBUG ((DEBUG_ERROR, "%a: Request=0x%x Response=0x%x\n", __FUNCTION__,
|
||||
(UINT32)RequestType, Response.Type));
|
||||
DEBUG ((
|
||||
DEBUG_ERROR,
|
||||
"%a: Request=0x%x Response=0x%x\n",
|
||||
__FUNCTION__,
|
||||
(UINT32)RequestType,
|
||||
Response.Type
|
||||
));
|
||||
return EFI_DEVICE_ERROR;
|
||||
|
||||
UnmapResponse:
|
||||
@@ -557,14 +581,14 @@ UnmapRequest:
|
||||
**/
|
||||
EFI_STATUS
|
||||
VirtioGpuResourceCreate2d (
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId,
|
||||
IN VIRTIO_GPU_FORMATS Format,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId,
|
||||
IN VIRTIO_GPU_FORMATS Format,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height
|
||||
)
|
||||
{
|
||||
volatile VIRTIO_GPU_RESOURCE_CREATE_2D Request;
|
||||
volatile VIRTIO_GPU_RESOURCE_CREATE_2D Request;
|
||||
|
||||
if (ResourceId == 0) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -586,11 +610,11 @@ VirtioGpuResourceCreate2d (
|
||||
|
||||
EFI_STATUS
|
||||
VirtioGpuResourceUnref (
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId
|
||||
)
|
||||
{
|
||||
volatile VIRTIO_GPU_RESOURCE_UNREF Request;
|
||||
volatile VIRTIO_GPU_RESOURCE_UNREF Request;
|
||||
|
||||
if (ResourceId == 0) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -610,13 +634,13 @@ VirtioGpuResourceUnref (
|
||||
|
||||
EFI_STATUS
|
||||
VirtioGpuResourceAttachBacking (
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId,
|
||||
IN EFI_PHYSICAL_ADDRESS BackingStoreDeviceAddress,
|
||||
IN UINTN NumberOfPages
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId,
|
||||
IN EFI_PHYSICAL_ADDRESS BackingStoreDeviceAddress,
|
||||
IN UINTN NumberOfPages
|
||||
)
|
||||
{
|
||||
volatile VIRTIO_GPU_RESOURCE_ATTACH_BACKING Request;
|
||||
volatile VIRTIO_GPU_RESOURCE_ATTACH_BACKING Request;
|
||||
|
||||
if (ResourceId == 0) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -639,11 +663,11 @@ VirtioGpuResourceAttachBacking (
|
||||
|
||||
EFI_STATUS
|
||||
VirtioGpuResourceDetachBacking (
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId
|
||||
)
|
||||
{
|
||||
volatile VIRTIO_GPU_RESOURCE_DETACH_BACKING Request;
|
||||
volatile VIRTIO_GPU_RESOURCE_DETACH_BACKING Request;
|
||||
|
||||
if (ResourceId == 0) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -669,16 +693,16 @@ VirtioGpuResourceDetachBacking (
|
||||
|
||||
EFI_STATUS
|
||||
VirtioGpuSetScanout (
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 X,
|
||||
IN UINT32 Y,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height,
|
||||
IN UINT32 ScanoutId,
|
||||
IN UINT32 ResourceId
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 X,
|
||||
IN UINT32 Y,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height,
|
||||
IN UINT32 ScanoutId,
|
||||
IN UINT32 ResourceId
|
||||
)
|
||||
{
|
||||
volatile VIRTIO_GPU_SET_SCANOUT Request;
|
||||
volatile VIRTIO_GPU_SET_SCANOUT Request;
|
||||
|
||||
//
|
||||
// Unlike for most other commands, ResourceId=0 is valid; it
|
||||
@@ -702,16 +726,16 @@ VirtioGpuSetScanout (
|
||||
|
||||
EFI_STATUS
|
||||
VirtioGpuTransferToHost2d (
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 X,
|
||||
IN UINT32 Y,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height,
|
||||
IN UINT64 Offset,
|
||||
IN UINT32 ResourceId
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 X,
|
||||
IN UINT32 Y,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height,
|
||||
IN UINT64 Offset,
|
||||
IN UINT32 ResourceId
|
||||
)
|
||||
{
|
||||
volatile VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D Request;
|
||||
volatile VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D Request;
|
||||
|
||||
if (ResourceId == 0) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -736,15 +760,15 @@ VirtioGpuTransferToHost2d (
|
||||
|
||||
EFI_STATUS
|
||||
VirtioGpuResourceFlush (
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 X,
|
||||
IN UINT32 Y,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height,
|
||||
IN UINT32 ResourceId
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 X,
|
||||
IN UINT32 Y,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height,
|
||||
IN UINT32 ResourceId
|
||||
)
|
||||
{
|
||||
volatile VIRTIO_GPU_RESOURCE_FLUSH Request;
|
||||
volatile VIRTIO_GPU_RESOURCE_FLUSH Request;
|
||||
|
||||
if (ResourceId == 0) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -37,11 +37,11 @@
|
||||
**/
|
||||
VOID
|
||||
ReleaseGopResources (
|
||||
IN OUT VGPU_GOP *VgpuGop,
|
||||
IN BOOLEAN DisableHead
|
||||
IN OUT VGPU_GOP *VgpuGop,
|
||||
IN BOOLEAN DisableHead
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status;
|
||||
|
||||
ASSERT (VgpuGop->ResourceId != 0);
|
||||
ASSERT (VgpuGop->BackingStore != NULL);
|
||||
@@ -58,7 +58,10 @@ ReleaseGopResources (
|
||||
//
|
||||
Status = VirtioGpuSetScanout (
|
||||
VgpuGop->ParentBus, // VgpuDev
|
||||
0, 0, 0, 0, // X, Y, Width, Height
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0, // X, Y, Width, Height
|
||||
0, // ScanoutId
|
||||
0 // ResourceId
|
||||
);
|
||||
@@ -116,8 +119,8 @@ ReleaseGopResources (
|
||||
VgpuGop->BackingStore, // HostAddress
|
||||
VgpuGop->BackingStoreMap // Mapping
|
||||
);
|
||||
VgpuGop->BackingStore = NULL;
|
||||
VgpuGop->NumberOfPages = 0;
|
||||
VgpuGop->BackingStore = NULL;
|
||||
VgpuGop->NumberOfPages = 0;
|
||||
VgpuGop->BackingStoreMap = NULL;
|
||||
|
||||
//
|
||||
@@ -131,6 +134,7 @@ ReleaseGopResources (
|
||||
if (EFI_ERROR (Status)) {
|
||||
CpuDeadLoop ();
|
||||
}
|
||||
|
||||
VgpuGop->ResourceId = 0;
|
||||
}
|
||||
|
||||
@@ -138,31 +142,31 @@ ReleaseGopResources (
|
||||
// The resolutions supported by this driver.
|
||||
//
|
||||
typedef struct {
|
||||
UINT32 Width;
|
||||
UINT32 Height;
|
||||
UINT32 Width;
|
||||
UINT32 Height;
|
||||
} GOP_RESOLUTION;
|
||||
|
||||
STATIC CONST GOP_RESOLUTION mGopResolutions[] = {
|
||||
{ 640, 480 },
|
||||
{ 800, 480 },
|
||||
{ 800, 600 },
|
||||
{ 832, 624 },
|
||||
{ 960, 640 },
|
||||
{ 1024, 600 },
|
||||
{ 1024, 768 },
|
||||
{ 1152, 864 },
|
||||
{ 1152, 870 },
|
||||
{ 1280, 720 },
|
||||
{ 1280, 760 },
|
||||
{ 1280, 768 },
|
||||
{ 1280, 800 },
|
||||
{ 1280, 960 },
|
||||
STATIC CONST GOP_RESOLUTION mGopResolutions[] = {
|
||||
{ 640, 480 },
|
||||
{ 800, 480 },
|
||||
{ 800, 600 },
|
||||
{ 832, 624 },
|
||||
{ 960, 640 },
|
||||
{ 1024, 600 },
|
||||
{ 1024, 768 },
|
||||
{ 1152, 864 },
|
||||
{ 1152, 870 },
|
||||
{ 1280, 720 },
|
||||
{ 1280, 760 },
|
||||
{ 1280, 768 },
|
||||
{ 1280, 800 },
|
||||
{ 1280, 960 },
|
||||
{ 1280, 1024 },
|
||||
{ 1360, 768 },
|
||||
{ 1366, 768 },
|
||||
{ 1360, 768 },
|
||||
{ 1366, 768 },
|
||||
{ 1400, 1050 },
|
||||
{ 1440, 900 },
|
||||
{ 1600, 900 },
|
||||
{ 1440, 900 },
|
||||
{ 1600, 900 },
|
||||
{ 1600, 1200 },
|
||||
{ 1680, 1050 },
|
||||
{ 1920, 1080 },
|
||||
@@ -195,13 +199,13 @@ STATIC
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
GopQueryMode (
|
||||
IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
|
||||
IN UINT32 ModeNumber,
|
||||
OUT UINTN *SizeOfInfo,
|
||||
OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION **Info
|
||||
IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
|
||||
IN UINT32 ModeNumber,
|
||||
OUT UINTN *SizeOfInfo,
|
||||
OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION **Info
|
||||
)
|
||||
{
|
||||
EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *GopModeInfo;
|
||||
EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *GopModeInfo;
|
||||
|
||||
if (ModeNumber >= ARRAY_SIZE (mGopResolutions)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -218,7 +222,7 @@ GopQueryMode (
|
||||
GopModeInfo->PixelsPerScanLine = mGopResolutions[ModeNumber].Width;
|
||||
|
||||
*SizeOfInfo = sizeof *GopModeInfo;
|
||||
*Info = GopModeInfo;
|
||||
*Info = GopModeInfo;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -226,20 +230,20 @@ STATIC
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
GopSetMode (
|
||||
IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
|
||||
IN UINT32 ModeNumber
|
||||
IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
|
||||
IN UINT32 ModeNumber
|
||||
)
|
||||
{
|
||||
VGPU_GOP *VgpuGop;
|
||||
UINT32 NewResourceId;
|
||||
UINTN NewNumberOfBytes;
|
||||
UINTN NewNumberOfPages;
|
||||
VOID *NewBackingStore;
|
||||
EFI_PHYSICAL_ADDRESS NewBackingStoreDeviceAddress;
|
||||
VOID *NewBackingStoreMap;
|
||||
VGPU_GOP *VgpuGop;
|
||||
UINT32 NewResourceId;
|
||||
UINTN NewNumberOfBytes;
|
||||
UINTN NewNumberOfPages;
|
||||
VOID *NewBackingStore;
|
||||
EFI_PHYSICAL_ADDRESS NewBackingStoreDeviceAddress;
|
||||
VOID *NewBackingStoreMap;
|
||||
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status2;
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status2;
|
||||
|
||||
if (ModeNumber >= ARRAY_SIZE (mGopResolutions)) {
|
||||
return EFI_UNSUPPORTED;
|
||||
@@ -260,9 +264,9 @@ GopSetMode (
|
||||
//
|
||||
VgpuGop->Gop.Mode = &VgpuGop->GopMode;
|
||||
|
||||
VgpuGop->GopMode.MaxMode = (UINT32)(ARRAY_SIZE (mGopResolutions));
|
||||
VgpuGop->GopMode.Info = &VgpuGop->GopModeInfo;
|
||||
VgpuGop->GopMode.SizeOfInfo = sizeof VgpuGop->GopModeInfo;
|
||||
VgpuGop->GopMode.MaxMode = (UINT32)(ARRAY_SIZE (mGopResolutions));
|
||||
VgpuGop->GopMode.Info = &VgpuGop->GopModeInfo;
|
||||
VgpuGop->GopMode.SizeOfInfo = sizeof VgpuGop->GopModeInfo;
|
||||
|
||||
VgpuGop->GopModeInfo.PixelFormat = PixelBltOnly;
|
||||
|
||||
@@ -302,13 +306,13 @@ GopSetMode (
|
||||
NewNumberOfBytes = mGopResolutions[ModeNumber].Width *
|
||||
mGopResolutions[ModeNumber].Height * sizeof (UINT32);
|
||||
NewNumberOfPages = EFI_SIZE_TO_PAGES (NewNumberOfBytes);
|
||||
Status = VirtioGpuAllocateZeroAndMapBackingStore (
|
||||
VgpuGop->ParentBus, // VgpuDev
|
||||
NewNumberOfPages, // NumberOfPages
|
||||
&NewBackingStore, // HostAddress
|
||||
&NewBackingStoreDeviceAddress, // DeviceAddress
|
||||
&NewBackingStoreMap // Mapping
|
||||
);
|
||||
Status = VirtioGpuAllocateZeroAndMapBackingStore (
|
||||
VgpuGop->ParentBus, // VgpuDev
|
||||
NewNumberOfPages, // NumberOfPages
|
||||
&NewBackingStore, // HostAddress
|
||||
&NewBackingStoreDeviceAddress, // DeviceAddress
|
||||
&NewBackingStoreMap // Mapping
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto DestroyHostResource;
|
||||
}
|
||||
@@ -375,6 +379,7 @@ GopSetMode (
|
||||
if (EFI_ERROR (Status2)) {
|
||||
CpuDeadLoop ();
|
||||
}
|
||||
|
||||
goto DetachBackingStore;
|
||||
}
|
||||
|
||||
@@ -393,19 +398,19 @@ GopSetMode (
|
||||
ASSERT (VgpuGop->ResourceId == 0);
|
||||
ASSERT (VgpuGop->BackingStore == NULL);
|
||||
|
||||
VgpuGop->ResourceId = NewResourceId;
|
||||
VgpuGop->BackingStore = NewBackingStore;
|
||||
VgpuGop->NumberOfPages = NewNumberOfPages;
|
||||
VgpuGop->ResourceId = NewResourceId;
|
||||
VgpuGop->BackingStore = NewBackingStore;
|
||||
VgpuGop->NumberOfPages = NewNumberOfPages;
|
||||
VgpuGop->BackingStoreMap = NewBackingStoreMap;
|
||||
|
||||
//
|
||||
// Populate Mode and ModeInfo (mutable fields only).
|
||||
//
|
||||
VgpuGop->GopMode.Mode = ModeNumber;
|
||||
VgpuGop->GopMode.Mode = ModeNumber;
|
||||
VgpuGop->GopModeInfo.HorizontalResolution =
|
||||
mGopResolutions[ModeNumber].Width;
|
||||
mGopResolutions[ModeNumber].Width;
|
||||
VgpuGop->GopModeInfo.VerticalResolution = mGopResolutions[ModeNumber].Height;
|
||||
VgpuGop->GopModeInfo.PixelsPerScanLine = mGopResolutions[ModeNumber].Width;
|
||||
VgpuGop->GopModeInfo.PixelsPerScanLine = mGopResolutions[ModeNumber].Width;
|
||||
return EFI_SUCCESS;
|
||||
|
||||
DetachBackingStore:
|
||||
@@ -437,27 +442,27 @@ STATIC
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
GopBlt (
|
||||
IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
|
||||
IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer OPTIONAL,
|
||||
IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,
|
||||
IN UINTN SourceX,
|
||||
IN UINTN SourceY,
|
||||
IN UINTN DestinationX,
|
||||
IN UINTN DestinationY,
|
||||
IN UINTN Width,
|
||||
IN UINTN Height,
|
||||
IN UINTN Delta OPTIONAL
|
||||
IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
|
||||
IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer OPTIONAL,
|
||||
IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,
|
||||
IN UINTN SourceX,
|
||||
IN UINTN SourceY,
|
||||
IN UINTN DestinationX,
|
||||
IN UINTN DestinationY,
|
||||
IN UINTN Width,
|
||||
IN UINTN Height,
|
||||
IN UINTN Delta OPTIONAL
|
||||
)
|
||||
{
|
||||
VGPU_GOP *VgpuGop;
|
||||
UINT32 CurrentHorizontal;
|
||||
UINT32 CurrentVertical;
|
||||
UINTN SegmentSize;
|
||||
UINTN Y;
|
||||
UINTN ResourceOffset;
|
||||
EFI_STATUS Status;
|
||||
VGPU_GOP *VgpuGop;
|
||||
UINT32 CurrentHorizontal;
|
||||
UINT32 CurrentVertical;
|
||||
UINTN SegmentSize;
|
||||
UINTN Y;
|
||||
UINTN ResourceOffset;
|
||||
EFI_STATUS Status;
|
||||
|
||||
VgpuGop = VGPU_GOP_FROM_GOP (This);
|
||||
VgpuGop = VGPU_GOP_FROM_GOP (This);
|
||||
CurrentHorizontal = VgpuGop->GopModeInfo.HorizontalResolution;
|
||||
CurrentVertical = VgpuGop->GopModeInfo.VerticalResolution;
|
||||
|
||||
@@ -476,8 +481,9 @@ GopBlt (
|
||||
// zero, then Width is the entire width of BltBuffer, and the stride is
|
||||
// supposed to be calculated from Width.
|
||||
//
|
||||
if (BltOperation == EfiBltVideoToBltBuffer ||
|
||||
BltOperation == EfiBltBufferToVideo) {
|
||||
if ((BltOperation == EfiBltVideoToBltBuffer) ||
|
||||
(BltOperation == EfiBltBufferToVideo))
|
||||
{
|
||||
if (Delta == 0) {
|
||||
Delta = SegmentSize;
|
||||
}
|
||||
@@ -487,13 +493,15 @@ GopBlt (
|
||||
// For operations that write to the display, check if the destination fits
|
||||
// onto the display.
|
||||
//
|
||||
if (BltOperation == EfiBltVideoFill ||
|
||||
BltOperation == EfiBltBufferToVideo ||
|
||||
BltOperation == EfiBltVideoToVideo) {
|
||||
if (DestinationX > CurrentHorizontal ||
|
||||
Width > CurrentHorizontal - DestinationX ||
|
||||
DestinationY > CurrentVertical ||
|
||||
Height > CurrentVertical - DestinationY) {
|
||||
if ((BltOperation == EfiBltVideoFill) ||
|
||||
(BltOperation == EfiBltBufferToVideo) ||
|
||||
(BltOperation == EfiBltVideoToVideo))
|
||||
{
|
||||
if ((DestinationX > CurrentHorizontal) ||
|
||||
(Width > CurrentHorizontal - DestinationX) ||
|
||||
(DestinationY > CurrentVertical) ||
|
||||
(Height > CurrentVertical - DestinationY))
|
||||
{
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
}
|
||||
@@ -502,12 +510,14 @@ GopBlt (
|
||||
// For operations that read from the display, check if the source fits onto
|
||||
// the display.
|
||||
//
|
||||
if (BltOperation == EfiBltVideoToBltBuffer ||
|
||||
BltOperation == EfiBltVideoToVideo) {
|
||||
if (SourceX > CurrentHorizontal ||
|
||||
Width > CurrentHorizontal - SourceX ||
|
||||
SourceY > CurrentVertical ||
|
||||
Height > CurrentVertical - SourceY) {
|
||||
if ((BltOperation == EfiBltVideoToBltBuffer) ||
|
||||
(BltOperation == EfiBltVideoToVideo))
|
||||
{
|
||||
if ((SourceX > CurrentHorizontal) ||
|
||||
(Width > CurrentHorizontal - SourceX) ||
|
||||
(SourceY > CurrentVertical) ||
|
||||
(Height > CurrentVertical - SourceY))
|
||||
{
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
}
|
||||
@@ -517,99 +527,103 @@ GopBlt (
|
||||
// won't be further steps.
|
||||
//
|
||||
switch (BltOperation) {
|
||||
case EfiBltVideoFill:
|
||||
//
|
||||
// Write data from the BltBuffer pixel (0, 0) directly to every pixel of
|
||||
// the video display rectangle (DestinationX, DestinationY) (DestinationX +
|
||||
// Width, DestinationY + Height). Only one pixel will be used from the
|
||||
// BltBuffer. Delta is NOT used.
|
||||
//
|
||||
for (Y = 0; Y < Height; ++Y) {
|
||||
SetMem32 (
|
||||
VgpuGop->BackingStore +
|
||||
case EfiBltVideoFill:
|
||||
//
|
||||
// Write data from the BltBuffer pixel (0, 0) directly to every pixel of
|
||||
// the video display rectangle (DestinationX, DestinationY) (DestinationX +
|
||||
// Width, DestinationY + Height). Only one pixel will be used from the
|
||||
// BltBuffer. Delta is NOT used.
|
||||
//
|
||||
for (Y = 0; Y < Height; ++Y) {
|
||||
SetMem32 (
|
||||
VgpuGop->BackingStore +
|
||||
(DestinationY + Y) * CurrentHorizontal + DestinationX,
|
||||
SegmentSize,
|
||||
*(UINT32 *)BltBuffer
|
||||
);
|
||||
}
|
||||
break;
|
||||
SegmentSize,
|
||||
*(UINT32 *)BltBuffer
|
||||
);
|
||||
}
|
||||
|
||||
case EfiBltVideoToBltBuffer:
|
||||
//
|
||||
// Read data from the video display rectangle (SourceX, SourceY) (SourceX +
|
||||
// Width, SourceY + Height) and place it in the BltBuffer rectangle
|
||||
// (DestinationX, DestinationY ) (DestinationX + Width, DestinationY +
|
||||
// Height). If DestinationX or DestinationY is not zero then Delta must be
|
||||
// set to the length in bytes of a row in the BltBuffer.
|
||||
//
|
||||
for (Y = 0; Y < Height; ++Y) {
|
||||
CopyMem (
|
||||
(UINT8 *)BltBuffer +
|
||||
(DestinationY + Y) * Delta + DestinationX * sizeof *BltBuffer,
|
||||
VgpuGop->BackingStore +
|
||||
(SourceY + Y) * CurrentHorizontal + SourceX,
|
||||
SegmentSize
|
||||
);
|
||||
}
|
||||
return EFI_SUCCESS;
|
||||
break;
|
||||
|
||||
case EfiBltBufferToVideo:
|
||||
//
|
||||
// Write data from the BltBuffer rectangle (SourceX, SourceY) (SourceX +
|
||||
// Width, SourceY + Height) directly to the video display rectangle
|
||||
// (DestinationX, DestinationY) (DestinationX + Width, DestinationY +
|
||||
// Height). If SourceX or SourceY is not zero then Delta must be set to the
|
||||
// length in bytes of a row in the BltBuffer.
|
||||
//
|
||||
for (Y = 0; Y < Height; ++Y) {
|
||||
CopyMem (
|
||||
VgpuGop->BackingStore +
|
||||
(DestinationY + Y) * CurrentHorizontal + DestinationX,
|
||||
(UINT8 *)BltBuffer +
|
||||
(SourceY + Y) * Delta + SourceX * sizeof *BltBuffer,
|
||||
SegmentSize
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
case EfiBltVideoToVideo:
|
||||
//
|
||||
// Copy from the video display rectangle (SourceX, SourceY) (SourceX +
|
||||
// Width, SourceY + Height) to the video display rectangle (DestinationX,
|
||||
// DestinationY) (DestinationX + Width, DestinationY + Height). The
|
||||
// BltBuffer and Delta are not used in this mode.
|
||||
//
|
||||
// A single invocation of CopyMem() handles overlap between source and
|
||||
// destination (that is, within a single line), but for multiple
|
||||
// invocations, we must handle overlaps.
|
||||
//
|
||||
if (SourceY < DestinationY) {
|
||||
Y = Height;
|
||||
while (Y > 0) {
|
||||
--Y;
|
||||
case EfiBltVideoToBltBuffer:
|
||||
//
|
||||
// Read data from the video display rectangle (SourceX, SourceY) (SourceX +
|
||||
// Width, SourceY + Height) and place it in the BltBuffer rectangle
|
||||
// (DestinationX, DestinationY ) (DestinationX + Width, DestinationY +
|
||||
// Height). If DestinationX or DestinationY is not zero then Delta must be
|
||||
// set to the length in bytes of a row in the BltBuffer.
|
||||
//
|
||||
for (Y = 0; Y < Height; ++Y) {
|
||||
CopyMem (
|
||||
(UINT8 *)BltBuffer +
|
||||
(DestinationY + Y) * Delta + DestinationX * sizeof *BltBuffer,
|
||||
VgpuGop->BackingStore +
|
||||
(DestinationY + Y) * CurrentHorizontal + DestinationX,
|
||||
VgpuGop->BackingStore +
|
||||
(SourceY + Y) * CurrentHorizontal + SourceX,
|
||||
(SourceY + Y) * CurrentHorizontal + SourceX,
|
||||
SegmentSize
|
||||
);
|
||||
}
|
||||
} else {
|
||||
|
||||
return EFI_SUCCESS;
|
||||
|
||||
case EfiBltBufferToVideo:
|
||||
//
|
||||
// Write data from the BltBuffer rectangle (SourceX, SourceY) (SourceX +
|
||||
// Width, SourceY + Height) directly to the video display rectangle
|
||||
// (DestinationX, DestinationY) (DestinationX + Width, DestinationY +
|
||||
// Height). If SourceX or SourceY is not zero then Delta must be set to the
|
||||
// length in bytes of a row in the BltBuffer.
|
||||
//
|
||||
for (Y = 0; Y < Height; ++Y) {
|
||||
CopyMem (
|
||||
VgpuGop->BackingStore +
|
||||
(DestinationY + Y) * CurrentHorizontal + DestinationX,
|
||||
VgpuGop->BackingStore +
|
||||
(SourceY + Y) * CurrentHorizontal + SourceX,
|
||||
(DestinationY + Y) * CurrentHorizontal + DestinationX,
|
||||
(UINT8 *)BltBuffer +
|
||||
(SourceY + Y) * Delta + SourceX * sizeof *BltBuffer,
|
||||
SegmentSize
|
||||
);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return EFI_INVALID_PARAMETER;
|
||||
break;
|
||||
|
||||
case EfiBltVideoToVideo:
|
||||
//
|
||||
// Copy from the video display rectangle (SourceX, SourceY) (SourceX +
|
||||
// Width, SourceY + Height) to the video display rectangle (DestinationX,
|
||||
// DestinationY) (DestinationX + Width, DestinationY + Height). The
|
||||
// BltBuffer and Delta are not used in this mode.
|
||||
//
|
||||
// A single invocation of CopyMem() handles overlap between source and
|
||||
// destination (that is, within a single line), but for multiple
|
||||
// invocations, we must handle overlaps.
|
||||
//
|
||||
if (SourceY < DestinationY) {
|
||||
Y = Height;
|
||||
while (Y > 0) {
|
||||
--Y;
|
||||
CopyMem (
|
||||
VgpuGop->BackingStore +
|
||||
(DestinationY + Y) * CurrentHorizontal + DestinationX,
|
||||
VgpuGop->BackingStore +
|
||||
(SourceY + Y) * CurrentHorizontal + SourceX,
|
||||
SegmentSize
|
||||
);
|
||||
}
|
||||
} else {
|
||||
for (Y = 0; Y < Height; ++Y) {
|
||||
CopyMem (
|
||||
VgpuGop->BackingStore +
|
||||
(DestinationY + Y) * CurrentHorizontal + DestinationX,
|
||||
VgpuGop->BackingStore +
|
||||
(SourceY + Y) * CurrentHorizontal + SourceX,
|
||||
SegmentSize
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
//
|
||||
@@ -648,7 +662,7 @@ GopBlt (
|
||||
//
|
||||
// Template for initializing VGPU_GOP.Gop.
|
||||
//
|
||||
CONST EFI_GRAPHICS_OUTPUT_PROTOCOL mGopTemplate = {
|
||||
CONST EFI_GRAPHICS_OUTPUT_PROTOCOL mGopTemplate = {
|
||||
GopQueryMode,
|
||||
GopSetMode,
|
||||
GopBlt,
|
||||
|
@@ -36,35 +36,35 @@ typedef struct {
|
||||
//
|
||||
// VirtIo represents access to the Virtio GPU device. Never NULL.
|
||||
//
|
||||
VIRTIO_DEVICE_PROTOCOL *VirtIo;
|
||||
VIRTIO_DEVICE_PROTOCOL *VirtIo;
|
||||
|
||||
//
|
||||
// BusName carries a customized name for
|
||||
// EFI_COMPONENT_NAME2_PROTOCOL.GetControllerName(). It is expressed in table
|
||||
// form because it can theoretically support several languages. Never NULL.
|
||||
//
|
||||
EFI_UNICODE_STRING_TABLE *BusName;
|
||||
EFI_UNICODE_STRING_TABLE *BusName;
|
||||
|
||||
//
|
||||
// VirtIo ring used for VirtIo communication.
|
||||
//
|
||||
VRING Ring;
|
||||
VRING Ring;
|
||||
|
||||
//
|
||||
// Token associated with Ring's mapping for bus master common buffer
|
||||
// operation, from VirtioRingMap().
|
||||
//
|
||||
VOID *RingMap;
|
||||
VOID *RingMap;
|
||||
|
||||
//
|
||||
// Event to be signaled at ExitBootServices().
|
||||
//
|
||||
EFI_EVENT ExitBoot;
|
||||
EFI_EVENT ExitBoot;
|
||||
|
||||
//
|
||||
// Common running counter for all VirtIo GPU requests that ask for fencing.
|
||||
//
|
||||
UINT64 FenceId;
|
||||
UINT64 FenceId;
|
||||
|
||||
//
|
||||
// The Child field references the GOP wrapper structure. If this pointer is
|
||||
@@ -77,85 +77,86 @@ typedef struct {
|
||||
// In practice, this field represents the single head (scanout) that we
|
||||
// support.
|
||||
//
|
||||
VGPU_GOP *Child;
|
||||
VGPU_GOP *Child;
|
||||
} VGPU_DEV;
|
||||
|
||||
//
|
||||
// The Graphics Output Protocol wrapper structure.
|
||||
//
|
||||
#define VGPU_GOP_SIG SIGNATURE_64 ('V', 'G', 'P', 'U', '_', 'G', 'O', 'P')
|
||||
#define VGPU_GOP_SIG SIGNATURE_64 ('V', 'G', 'P', 'U', '_', 'G', 'O', 'P')
|
||||
|
||||
struct VGPU_GOP_STRUCT {
|
||||
UINT64 Signature;
|
||||
UINT64 Signature;
|
||||
|
||||
//
|
||||
// ParentBus points to the parent VGPU_DEV object. Never NULL.
|
||||
//
|
||||
VGPU_DEV *ParentBus;
|
||||
VGPU_DEV *ParentBus;
|
||||
|
||||
//
|
||||
// GopName carries a customized name for
|
||||
// EFI_COMPONENT_NAME2_PROTOCOL.GetControllerName(). It is expressed in table
|
||||
// form because it can theoretically support several languages. Never NULL.
|
||||
//
|
||||
EFI_UNICODE_STRING_TABLE *GopName;
|
||||
EFI_UNICODE_STRING_TABLE *GopName;
|
||||
|
||||
//
|
||||
// GopHandle is the UEFI child handle that carries the device path ending
|
||||
// with the ACPI ADR node, and the Graphics Output Protocol. Never NULL.
|
||||
//
|
||||
EFI_HANDLE GopHandle;
|
||||
EFI_HANDLE GopHandle;
|
||||
|
||||
//
|
||||
// The GopDevicePath field is the device path installed on GopHandle,
|
||||
// ending with an ACPI ADR node. Never NULL.
|
||||
//
|
||||
EFI_DEVICE_PATH_PROTOCOL *GopDevicePath;
|
||||
EFI_DEVICE_PATH_PROTOCOL *GopDevicePath;
|
||||
|
||||
//
|
||||
// The Gop field is installed on the child handle as Graphics Output Protocol
|
||||
// interface.
|
||||
//
|
||||
EFI_GRAPHICS_OUTPUT_PROTOCOL Gop;
|
||||
EFI_GRAPHICS_OUTPUT_PROTOCOL Gop;
|
||||
|
||||
//
|
||||
// Referenced by Gop.Mode, GopMode provides a summary about the supported
|
||||
// graphics modes, and the current mode.
|
||||
//
|
||||
EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE GopMode;
|
||||
EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE GopMode;
|
||||
|
||||
//
|
||||
// Referenced by GopMode.Info, GopModeInfo provides detailed information
|
||||
// about the current mode.
|
||||
//
|
||||
EFI_GRAPHICS_OUTPUT_MODE_INFORMATION GopModeInfo;
|
||||
EFI_GRAPHICS_OUTPUT_MODE_INFORMATION GopModeInfo;
|
||||
|
||||
//
|
||||
// Identifier of the 2D host resource that is in use by this head (scanout)
|
||||
// of the VirtIo GPU device. Zero until the first successful -- internal --
|
||||
// Gop.SetMode() call, never zero afterwards.
|
||||
//
|
||||
UINT32 ResourceId;
|
||||
UINT32 ResourceId;
|
||||
|
||||
//
|
||||
// A number of whole pages providing the backing store for the 2D host
|
||||
// resource identified by ResourceId above. NULL until the first successful
|
||||
// -- internal -- Gop.SetMode() call, never NULL afterwards.
|
||||
//
|
||||
UINT32 *BackingStore;
|
||||
UINTN NumberOfPages;
|
||||
UINT32 *BackingStore;
|
||||
UINTN NumberOfPages;
|
||||
|
||||
//
|
||||
// Token associated with BackingStore's mapping for bus master common
|
||||
// buffer operation. BackingStoreMap is valid if, and only if,
|
||||
// BackingStore is non-NULL.
|
||||
//
|
||||
VOID *BackingStoreMap;
|
||||
VOID *BackingStoreMap;
|
||||
};
|
||||
|
||||
//
|
||||
// VirtIo GPU initialization, and commands (primitives) for the GPU device.
|
||||
//
|
||||
|
||||
/**
|
||||
Configure the VirtIo GPU device that underlies VgpuDev.
|
||||
|
||||
@@ -174,7 +175,7 @@ struct VGPU_GOP_STRUCT {
|
||||
**/
|
||||
EFI_STATUS
|
||||
VirtioGpuInit (
|
||||
IN OUT VGPU_DEV *VgpuDev
|
||||
IN OUT VGPU_DEV *VgpuDev
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -188,7 +189,7 @@ VirtioGpuInit (
|
||||
**/
|
||||
VOID
|
||||
VirtioGpuUninit (
|
||||
IN OUT VGPU_DEV *VgpuDev
|
||||
IN OUT VGPU_DEV *VgpuDev
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -221,11 +222,11 @@ VirtioGpuUninit (
|
||||
**/
|
||||
EFI_STATUS
|
||||
VirtioGpuAllocateZeroAndMapBackingStore (
|
||||
IN VGPU_DEV *VgpuDev,
|
||||
IN UINTN NumberOfPages,
|
||||
OUT VOID **HostAddress,
|
||||
OUT EFI_PHYSICAL_ADDRESS *DeviceAddress,
|
||||
OUT VOID **Mapping
|
||||
IN VGPU_DEV *VgpuDev,
|
||||
IN UINTN NumberOfPages,
|
||||
OUT VOID **HostAddress,
|
||||
OUT EFI_PHYSICAL_ADDRESS *DeviceAddress,
|
||||
OUT VOID **Mapping
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -252,10 +253,10 @@ VirtioGpuAllocateZeroAndMapBackingStore (
|
||||
**/
|
||||
VOID
|
||||
VirtioGpuUnmapAndFreeBackingStore (
|
||||
IN VGPU_DEV *VgpuDev,
|
||||
IN UINTN NumberOfPages,
|
||||
IN VOID *HostAddress,
|
||||
IN VOID *Mapping
|
||||
IN VGPU_DEV *VgpuDev,
|
||||
IN UINTN NumberOfPages,
|
||||
IN VOID *HostAddress,
|
||||
IN VOID *Mapping
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -274,8 +275,8 @@ VirtioGpuUnmapAndFreeBackingStore (
|
||||
VOID
|
||||
EFIAPI
|
||||
VirtioGpuExitBoot (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -306,63 +307,63 @@ VirtioGpuExitBoot (
|
||||
**/
|
||||
EFI_STATUS
|
||||
VirtioGpuResourceCreate2d (
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId,
|
||||
IN VIRTIO_GPU_FORMATS Format,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId,
|
||||
IN VIRTIO_GPU_FORMATS Format,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
VirtioGpuResourceUnref (
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
VirtioGpuResourceAttachBacking (
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId,
|
||||
IN EFI_PHYSICAL_ADDRESS BackingStoreDeviceAddress,
|
||||
IN UINTN NumberOfPages
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId,
|
||||
IN EFI_PHYSICAL_ADDRESS BackingStoreDeviceAddress,
|
||||
IN UINTN NumberOfPages
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
VirtioGpuResourceDetachBacking (
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 ResourceId
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
VirtioGpuSetScanout (
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 X,
|
||||
IN UINT32 Y,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height,
|
||||
IN UINT32 ScanoutId,
|
||||
IN UINT32 ResourceId
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 X,
|
||||
IN UINT32 Y,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height,
|
||||
IN UINT32 ScanoutId,
|
||||
IN UINT32 ResourceId
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
VirtioGpuTransferToHost2d (
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 X,
|
||||
IN UINT32 Y,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height,
|
||||
IN UINT64 Offset,
|
||||
IN UINT32 ResourceId
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 X,
|
||||
IN UINT32 Y,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height,
|
||||
IN UINT64 Offset,
|
||||
IN UINT32 ResourceId
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
VirtioGpuResourceFlush (
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 X,
|
||||
IN UINT32 Y,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height,
|
||||
IN UINT32 ResourceId
|
||||
IN OUT VGPU_DEV *VgpuDev,
|
||||
IN UINT32 X,
|
||||
IN UINT32 Y,
|
||||
IN UINT32 Width,
|
||||
IN UINT32 Height,
|
||||
IN UINT32 ResourceId
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -390,13 +391,13 @@ VirtioGpuResourceFlush (
|
||||
**/
|
||||
VOID
|
||||
ReleaseGopResources (
|
||||
IN OUT VGPU_GOP *VgpuGop,
|
||||
IN BOOLEAN DisableHead
|
||||
IN OUT VGPU_GOP *VgpuGop,
|
||||
IN BOOLEAN DisableHead
|
||||
);
|
||||
|
||||
//
|
||||
// Template for initializing VGPU_GOP.Gop.
|
||||
//
|
||||
extern CONST EFI_GRAPHICS_OUTPUT_PROTOCOL mGopTemplate;
|
||||
extern CONST EFI_GRAPHICS_OUTPUT_PROTOCOL mGopTemplate;
|
||||
|
||||
#endif // _VIRTIO_GPU_DXE_H_
|
||||
|
Reference in New Issue
Block a user