diff options
Diffstat (limited to 'include/VBox/VBoxVideo.h')
-rw-r--r-- | include/VBox/VBoxVideo.h | 60 |
1 files changed, 41 insertions, 19 deletions
diff --git a/include/VBox/VBoxVideo.h b/include/VBox/VBoxVideo.h index f24e5fa77..00b3c8843 100644 --- a/include/VBox/VBoxVideo.h +++ b/include/VBox/VBoxVideo.h @@ -1070,8 +1070,7 @@ typedef uint64_t VBOXVIDEOOFFSET; #define VBOXVIDEOOFFSET_VOID ((VBOXVIDEOOFFSET)~0) -#ifdef VBOX_WITH_WDDM -# pragma pack(1) +#pragma pack(1) /* * VBOXSHGSMI made on top HGSMI and allows receiving notifications @@ -1087,6 +1086,23 @@ typedef struct VBOXSHGSMIHEADER uint64_t u64Info2; /*<- contents depends on the fFlags value */ } VBOXSHGSMIHEADER, *PVBOXSHGSMIHEADER; +typedef enum +{ + VBOXVDMACMD_TYPE_UNDEFINED = 0, + VBOXVDMACMD_TYPE_DMA_PRESENT_BLT = 1, + VBOXVDMACMD_TYPE_DMA_BPB_TRANSFER, + VBOXVDMACMD_TYPE_DMA_BPB_FILL, + VBOXVDMACMD_TYPE_DMA_PRESENT_SHADOW2PRIMARY, + VBOXVDMACMD_TYPE_DMA_PRESENT_CLRFILL, + VBOXVDMACMD_TYPE_DMA_PRESENT_FLIP, + VBOXVDMACMD_TYPE_DMA_NOP, + VBOXVDMACMD_TYPE_CHROMIUM_CMD, /* chromium cmd */ + VBOXVDMACMD_TYPE_DMA_BPB_TRANSFER_VRAMSYS, + VBOXVDMACMD_TYPE_CHILD_STATUS_IRQ /* make the device notify child (monitor) state change IRQ */ +} VBOXVDMACMD_TYPE; + +#pragma pack() + /* the command processing was asynch, set by the host to indicate asynch command completion * must not be cleared once set, the command completion is performed by issuing a host->guest completion command * while keeping this flag unchanged */ @@ -1113,6 +1129,7 @@ typedef struct VBOXSHGSMIHEADER /* guest expects this command to be completed synchronously */ #define VBOXSHGSMI_FLAG_GH_SYNCH 0x00000040 + DECLINLINE(uint8_t *) VBoxSHGSMIBufferData (const VBOXSHGSMIHEADER* pHeader) { return (uint8_t *)pHeader + sizeof (VBOXSHGSMIHEADER); @@ -1123,23 +1140,6 @@ DECLINLINE(PVBOXSHGSMIHEADER) VBoxSHGSMIBufferHeader (const void *pvData) return (PVBOXSHGSMIHEADER)((uint8_t *)pvData - sizeof (VBOXSHGSMIHEADER)); } -typedef enum -{ - VBOXVDMACMD_TYPE_UNDEFINED = 0, - VBOXVDMACMD_TYPE_DMA_PRESENT_BLT = 1, - VBOXVDMACMD_TYPE_DMA_BPB_TRANSFER, - VBOXVDMACMD_TYPE_DMA_BPB_FILL, - VBOXVDMACMD_TYPE_DMA_PRESENT_SHADOW2PRIMARY, - VBOXVDMACMD_TYPE_DMA_PRESENT_CLRFILL, - VBOXVDMACMD_TYPE_DMA_PRESENT_FLIP, - VBOXVDMACMD_TYPE_DMA_NOP, - VBOXVDMACMD_TYPE_CHROMIUM_CMD, - VBOXVDMACMD_TYPE_DMA_BPB_TRANSFER_VRAMSYS -} VBOXVDMACMD_TYPE; - -# pragma pack() -#endif - #ifdef VBOX_WITH_VDMA # pragma pack(1) @@ -1340,6 +1340,28 @@ typedef struct VBOXVDMACMD_DMA_BPB_FILL uint32_t u32FillPattern; } VBOXVDMACMD_DMA_BPB_FILL, *PVBOXVDMACMD_DMA_BPB_FILL; +#define VBOXVDMA_CHILD_STATUS_F_CONNECTED 0x01 +#define VBOXVDMA_CHILD_STATUS_F_DISCONNECTED 0x02 +#define VBOXVDMA_CHILD_STATUS_F_ROTATED 0x04 + +typedef struct VBOXVDMA_CHILD_STATUS +{ + uint32_t iChild; + uint8_t fFlags; + uint8_t u8RotationAngle; + uint16_t u16Reserved; +} VBOXVDMA_CHILD_STATUS, *PVBOXVDMA_CHILD_STATUS; + +/* apply the aInfos are applied to all targets, the iTarget is ignored */ +#define VBOXVDMACMD_CHILD_STATUS_IRQ_F_APPLY_TO_ALL 0x00000001 + +typedef struct VBOXVDMACMD_CHILD_STATUS_IRQ +{ + uint32_t cInfos; + uint32_t fFlags; + VBOXVDMA_CHILD_STATUS aInfos[1]; +} VBOXVDMACMD_CHILD_STATUS_IRQ, *PVBOXVDMACMD_CHILD_STATUS_IRQ; + # pragma pack() #endif /* #ifdef VBOX_WITH_VDMA */ |