Changeset 80639 in vbox
- Timestamp:
- Sep 6, 2019 5:41:59 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 133170
- Location:
- trunk/src/VBox/Devices
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DevVirtioSCSI.cpp
r80616 r80639 402 402 /** Extended media port interface. */ 403 403 PDMIMEDIAEXPORT IMediaExPort; 404 405 PPDMIMEDIANOTIFY pMediaNotify; 404 406 405 407 /** Pointer to the attached driver's extended media interface. */ … … 1738 1740 LogFunc(("LUN %d Ejected!\n", pTarget->iLUN)); 1739 1741 if (pThis->pMediaNotify) 1740 virtioScsiSetWriteLed(pTarget, false); 1742 { 1743 int rc = VMR3ReqCallNoWait(PDMDevHlpGetVM(pThis->CTX_SUFF(pDevIns)), VMCPUID_ANY, 1744 (PFNRT)pThis->pMediaNotify->pfnEjected, 2, 1745 pThis->pMediaNotify, pTarget->iLUN); 1746 AssertRC(rc); 1747 } 1748 1741 1749 } 1742 1750 … … 2305 2313 ("virtio-scsi configuration error: LUN#%u: Failed to set I/O request size!\n", pTarget->iLUN), 2306 2314 rc); 2315 2316 pTarget->pMediaNotify = PDMIBASE_QUERY_INTERFACE(pTarget->pDrvBase, PDMIMEDIANOTIFY); 2317 AssertMsgReturn(VALID_PTR(pTarget->pDrvMediaEx), 2318 ("virtio-scsi configuration error: LUN#%u: Failed to get set Media notify obj!\n", 2319 pTarget->iLUN), rc); 2307 2320 2308 2321 } -
trunk/src/VBox/Devices/VirtIO/Virtio_1_0.cpp
r80615 r80639 35 35 #define INSTANCE(pVirtio) pVirtio->szInstance 36 36 #define QUEUENAME(qIdx) (pVirtio->virtqProxy[qIdx].szVirtqName) 37 #define CBQUEUENAME(qIdx) RTStrNLen(QUEUENAME(qIdx), sizeof(QUEUENAME(qIdx))) 38 /** 39 37 38 /** 40 39 * Formats the logging of a memory-mapped I/O input or output value 41 40 * -
trunk/src/VBox/Devices/VirtIO/Virtio_1_0.h
r80596 r80639 185 185 186 186 /** 187 * Removes descriptor [chain] from queue and converts it to scatter/gather data188 * in the vector whose pointer was returned from VirtioQueueAttach.187 * Removes descriptor chain from avail ring of indicated queue and converts it to 188 * scatter/gather buffer (whose segments contain guest phys. data pointers) 189 189 * 190 190 * @param hVirtio - Handle for VirtIO framework … … 213 213 214 214 /** 215 * Writes scatter/gather segment contained in queue's bufVec.aSegsIn[] array to 216 * physical memory assigned by the guest driver. The data won't be seen by the 217 * driver until the next virtioQueueSync() call. 215 * Writes a scatter/gather buffer (whose segments point to virtual memory) to next 216 * available descriptor chain (consisting of segments pointing to guest phys. memory), 217 * for the indicated virtq. The data won't be seen by the guest until the next 218 * client call to virtioQueueSync(), which puts aforementioned descriptor 219 * chain's head index on the indicated virtq's used ring (see VirtIO 1.0 220 * specification, Section 2.4 "Virtqueues"). 218 221 * 219 222 * @param hVirtio - Handle for VirtIO framework … … 233 236 234 237 /** 235 * Updates virtq's "used ring" descriptor index to match the current bufVec's 236 * index, thus exposing the data added to the used ring by all virtioQueuePut() 237 * calls since the last sync. This should be called after one or more virtQueuePut() 238 * calls to inform the guest driver there is data in the queue. Explicit 239 * notifications will be sent to the guest depending on VirtIO features negotiated 240 * and conditions. 238 * Updates the indicated virtq's "used ring" descriptor index to match the 239 * current write-head index, thus exposing the data added to the used ring by all 240 * virtioQueuePut() calls since the last sync. This should be called after one or 241 * more virtQueuePut() calls to inform the guest driver there is data in the queue. 242 * Explicit notifications (e.g. interrupt or MSI-X) will be sent to the guest, 243 * depending on VirtIO features negotiated and conditions, otherwise the guest 244 * will detect the update by polling. (see VirtIO 1.0 245 * specification, Section 2.4 "Virtqueues"). 241 246 * 242 247 * @param hVirtio - Handle for VirtIO framework … … 306 311 /** 307 312 * Log memory-mapped I/O input or output value. 313 * 308 314 * This is designed to be invoked by macros that can make contextual assumptions 309 * (e.g. implicitly derive some of the parameters). It is exposed for the VirtIO310 * client doing the device-specific implementation in order to log in a similar fashion311 * accesses to the device-specific MMIO configuration structure. Macros that leverage312 * th is function are in Virtio_1_0_impl.h and can be used as an example of how to use313 * this effectively for the device-specific code.315 * (e.g. implicitly derive MACRO parameters from the invoking function). It is exposed 316 * for the VirtIO client doing the device-specific implementation in order to log in a 317 * similar fashion accesses to the device-specific MMIO configuration structure. Macros 318 * that leverage this function are in Virtio_1_0_impl.h and can be used as an example 319 * of how to use this effectively for the device-specific code. 314 320 * 315 321 * @param pszFunc - To avoid displaying this function's name via __FUNCTION__ or LogFunc()
Note:
See TracChangeset
for help on using the changeset viewer.