Changeset 64192 in vbox
- Timestamp:
- Oct 10, 2016 7:06:55 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 111180
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/VMMDev.h
r64185 r64192 27 27 #define ___VBox_VMMDev_h 28 28 29 #include <VBox/VBoxVideo.h> /* For VBVA definitions. */30 29 #include <VBox/cdefs.h> 31 30 #include <VBox/param.h> /* for the PCI IDs. */ … … 2057 2056 } 2058 2057 2058 /** @name VBVA ring defines. 2059 * 2060 * The VBVA ring buffer is suitable for transferring large (< 2GB) amount of 2061 * data. For example big bitmaps which do not fit to the buffer. 2062 * 2063 * Guest starts writing to the buffer by initializing a record entry in the 2064 * aRecords queue. VBVA_F_RECORD_PARTIAL indicates that the record is being 2065 * written. As data is written to the ring buffer, the guest increases off32End 2066 * for the record. 2067 * 2068 * The host reads the aRecords on flushes and processes all completed records. 2069 * When host encounters situation when only a partial record presents and 2070 * cbRecord & ~VBVA_F_RECORD_PARTIAL >= VBVA_RING_BUFFER_SIZE - 2071 * VBVA_RING_BUFFER_THRESHOLD, the host fetched all record data and updates 2072 * off32Head. After that on each flush the host continues fetching the data 2073 * until the record is completed. 2074 * 2075 */ 2076 #define VMMDEV_VBVA_RING_BUFFER_SIZE (_4M - _1K) 2077 #define VMMDEV_VBVA_RING_BUFFER_THRESHOLD (4 * _1K) 2078 2079 #define VMMDEV_VBVA_MAX_RECORDS (64) 2059 2080 /** @} */ 2081 2082 /** 2083 * VBVA record. 2084 */ 2085 typedef struct VMMDEVVBVARECORD 2086 { 2087 /** The length of the record. Changed by guest. */ 2088 uint32_t cbRecord; 2089 } VMMDEVVBVARECORD; 2090 AssertCompileSize(VMMDEVVBVARECORD, 4); 2060 2091 2061 2092 … … 2076 2107 2077 2108 /** The ring buffer for data. */ 2078 uint8_t au8RingBuffer[V BVA_RING_BUFFER_SIZE];2109 uint8_t au8RingBuffer[VMMDEV_VBVA_RING_BUFFER_SIZE]; 2079 2110 2080 2111 /** The queue of record descriptions. */ 2081 V BVARECORD aRecords[VBVA_MAX_RECORDS];2112 VMMDEVVBVARECORD aRecords[VMMDEV_VBVA_MAX_RECORDS]; 2082 2113 uint32_t indexRecordFirst; 2083 2114 uint32_t indexRecordFree; -
trunk/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibVideo.cpp
r62521 r64192 66 66 vmmdevInitRequest(&Req.header, VMMDevReq_VideoAccelEnable); 67 67 Req.u32Enable = fEnable; 68 Req.cbRingBuffer = V BVA_RING_BUFFER_SIZE;68 Req.cbRingBuffer = VMMDEV_VBVA_RING_BUFFER_SIZE; 69 69 Req.fu32Status = 0; 70 70 return vbglR3GRPerform(&Req.header); -
trunk/src/VBox/Devices/VMMDev/VMMDev.cpp
r64115 r64192 83 83 /* Enable dev_vmm Log3 statements to get IRQ-related logging. */ 84 84 #define LOG_GROUP LOG_GROUP_DEV_VMM 85 #include <VBox/VBoxVideo.h> /* For VBVA definitions. */ 85 86 #include <VBox/VMMDev.h> 86 87 #include <VBox/vmm/mm.h> … … 1795 1796 } 1796 1797 1797 if (pReq->cbRingBuffer != V BVA_RING_BUFFER_SIZE)1798 if (pReq->cbRingBuffer != VMMDEV_VBVA_RING_BUFFER_SIZE) 1798 1799 { 1799 1800 /* The guest driver seems compiled with different headers. */ 1800 LogRelMax(16,("VMMDevReq_VideoAccelEnable guest ring buffer size %#x, should be %#x!!\n", pReq->cbRingBuffer, V BVA_RING_BUFFER_SIZE));1801 LogRelMax(16,("VMMDevReq_VideoAccelEnable guest ring buffer size %#x, should be %#x!!\n", pReq->cbRingBuffer, VMMDEV_VBVA_RING_BUFFER_SIZE)); 1801 1802 return VERR_INVALID_PARAMETER; 1802 1803 }
Note:
See TracChangeset
for help on using the changeset viewer.