summaryrefslogtreecommitdiff
path: root/include/VBox/VBoxVideo.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/VBox/VBoxVideo.h')
-rw-r--r--include/VBox/VBoxVideo.h60
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 */