Changeset 81156 in vbox for trunk/include/VBox
- Timestamp:
- Oct 8, 2019 2:58:45 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 133790
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/iom.h
r81136 r81156 390 390 typedef FNIOMMMIOFILL *PFNIOMMMIOFILL; 391 391 392 393 /** 394 * Memory mapped I/O Handler for read operations. 395 * 396 * @returns Strict VBox status code. 397 * 398 * @param pDevIns The device instance. 399 * @param pvUser User argument. 400 * @param off Offset into the mapping of the read, 401 * or the physical address if IOM_MMIO_F_ABS is active. 402 * @param pv Where to store the result. 403 * @param cb Number of bytes read. 404 * @remarks Caller enters the device critical section. 405 */ 406 typedef DECLCALLBACK(VBOXSTRICTRC) FNIOMMMIONEWREAD(PPDMDEVINS pDevIns, void *pvUser, RTGCPHYS off, void *pv, uint32_t cb); 407 /** Pointer to a FNIOMMMIONEWREAD(). */ 408 typedef FNIOMMMIONEWREAD *PFNIOMMMIONEWREAD; 409 410 /** 411 * Memory mapped I/O Handler for write operations. 412 * 413 * @returns Strict VBox status code. 414 * 415 * @param pDevIns The device instance. 416 * @param pvUser User argument. 417 * @param off Offset into the mapping of the write, 418 * or the physical address if IOM_MMIO_F_ABS is active. 419 * @param pv Where to fetch the result. 420 * @param cb Number of bytes to write. 421 * @remarks Caller enters the device critical section. 422 */ 423 typedef DECLCALLBACK(VBOXSTRICTRC) FNIOMMMIONEWWRITE(PPDMDEVINS pDevIns, void *pvUser, RTGCPHYS off, void const *pv, uint32_t cb); 424 /** Pointer to a FNIOMMMIONEWWRITE(). */ 425 typedef FNIOMMMIONEWWRITE *PFNIOMMMIONEWWRITE; 426 427 /** 428 * Memory mapped I/O Handler for memset operations, actually for REP STOS* instructions handling. 429 * 430 * @returns Strict VBox status code. 431 * 432 * @param pDevIns The device instance. 433 * @param pvUser User argument. 434 * @param off Offset into the mapping of the fill, 435 * or the physical address if IOM_MMIO_F_ABS is active. 436 * @param u32Item Byte/Word/Dword data to fill. 437 * @param cbItem Size of data in u32Item parameter, restricted to 1/2/4 bytes. 438 * @param cItems Number of iterations. 439 * @remarks Caller enters the device critical section. 440 */ 441 typedef DECLCALLBACK(VBOXSTRICTRC) FNIOMMMIONEWFILL(PPDMDEVINS pDevIns, void *pvUser, RTGCPHYS off, 442 uint32_t u32Item, uint32_t cbItem, uint32_t cItems); 443 /** Pointer to a FNIOMMMIONEWFILL(). */ 444 typedef FNIOMMMIONEWFILL *PFNIOMMMIONEWFILL; 445 392 446 VMMDECL(VBOXSTRICTRC) IOMIOPortRead(PVMCC pVM, PVMCPU pVCpu, RTIOPORT Port, uint32_t *pu32Value, size_t cbValue); 393 447 VMMDECL(VBOXSTRICTRC) IOMIOPortWrite(PVMCC pVM, PVMCPU pVCpu, RTIOPORT Port, uint32_t u32Value, size_t cbValue); … … 412 466 /** @} */ 413 467 468 /** @name IOM_MMIO_F_XXX - Flags for IOMR3MmioCreate() and PDMDevHlpMmioCreateEx(). 469 * @{ */ 470 /** Pass the absolute physical address (GC) to the callback rather than the 471 * relative one. */ 472 #define IOM_MMIO_F_ABS RT_BIT_32(0) 473 /** Valid flags for IOMR3IoPortCreate(). */ 474 #define IOM_MMIO_F_VALID_MASK UINT32_C(0x00000001) 475 /** @} */ 476 414 477 #ifdef IN_RING3 415 478 /** @defgroup grp_iom_r3 The IOM Host Context Ring-3 API … … 429 492 VMMR3_INT_DECL(int) IOMR3IoPortUnmap(PVM pVM, PPDMDEVINS pDevIns, IOMIOPORTHANDLE hIoPorts); 430 493 494 VMMR3_INT_DECL(int) IOMR3MmioCreate(PVM pVM, PPDMDEVINS pDevIns, RTGCPHYS cbRegion, uint32_t fFlags, PPDMPCIDEV pPciDev, 495 uint32_t iPciRegion, PFNIOMMMIONEWWRITE pfnWrite, PFNIOMMMIONEWREAD pfnRead, 496 PFNIOMMMIONEWFILL pfnFill, void *pvUser, const char *pszDesc, PIOMMMIOHANDLE phRegion); 497 VMMR3_INT_DECL(int) IOMR3MmioMap(PVM pVM, PPDMDEVINS pDevIns, IOMMMIOHANDLE hRegion, RTGCPHYS GCPhys); 498 VMMR3_INT_DECL(int) IOMR3MmioUnmap(PVM pVM, PPDMDEVINS pDevIns, IOMMMIOHANDLE hRegion); 499 VMMR3_INT_DECL(int) IOMR3MmioReduce(PVM pVM, PPDMDEVINS pDevIns, IOMMMIOHANDLE hRegion, RTGCPHYS cbRegion); 500 501 /** @name obsolete 502 * @deprecated 503 * @{ */ 431 504 VMMR3_INT_DECL(int) IOMR3IOPortRegisterR3(PVM pVM, PPDMDEVINS pDevIns, RTIOPORT PortStart, RTUINT cPorts, RTHCPTR pvUser, 432 505 R3PTRTYPE(PFNIOMIOPORTOUT) pfnOutCallback, R3PTRTYPE(PFNIOMIOPORTIN) pfnInCallback, … … 479 552 VMMR3_INT_DECL(void) IOMR3MmioExNotifyDeregistered(PVM pVM, void *pvUser); 480 553 554 /** @} */ 555 481 556 VMMR3_INT_DECL(VBOXSTRICTRC) IOMR3ProcessForceFlag(PVM pVM, PVMCPU pVCpu, VBOXSTRICTRC rcStrict); 482 557
Note:
See TracChangeset
for help on using the changeset viewer.