Changeset 44709 in vbox
- Timestamp:
- Feb 15, 2013 1:50:45 AM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 83808
- Location:
- trunk/src/VBox/Devices
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/VMMDev/VMMDev.cpp
r44528 r44709 20 20 * Header Files * 21 21 *******************************************************************************/ 22 23 22 /* Enable dev_vmm Log3 statements to get IRQ-related logging. */ 24 25 23 #define LOG_GROUP LOG_GROUP_DEV_VMM 26 24 #include <VBox/VMMDev.h> … … 62 60 * Defined Constants And Macros * 63 61 *******************************************************************************/ 64 #define PCIDEV_2_VMMDEVSTATE(pPciDev) ( (VMMDevState *)(pPciDev) )65 62 #define VMMDEVSTATE_2_DEVINS(pVMMDevState) ( (pVMMDevState)->pDevIns ) 66 63 … … 99 96 #ifndef VBOX_DEVICE_STRUCT_TESTCASE 100 97 101 /* Whenever host wants to inform guest about something 102 * an IRQ notification will be raised. 98 /** @page pg_vmmdev VMMDev 99 * 100 * Whenever host wants to inform guest about something an IRQ notification will 101 * be raised. 103 102 * 104 103 * VMMDev PDM interface will contain the guest notification method. 105 104 * 106 * There is a 32 bit event mask which will be read 107 * by guest on an interrupt. A non zero bit in the mask 108 * means that the specific event occurred and requires 105 * There is a 32 bit event mask which will be read by guest on an interrupt. A 106 * non zero bit in the mask means that the specific event occurred and requires 109 107 * processing on guest side. 110 108 * 111 * After reading the event mask guest must issue a 112 * generic requestAcknowlegdeEvents.109 * After reading the event mask guest must issue a generic request 110 * AcknowlegdeEvents. 113 111 * 114 * IRQ line is set to 1 (request) if there are unprocessed 115 * event s, that is the eventmask is not zero.112 * IRQ line is set to 1 (request) if there are unprocessed events, that is the 113 * event mask is not zero. 116 114 * 117 * After receiving an interrupt and checking event mask, 118 * the guest must process events using the event specific 119 * mechanism. 115 * After receiving an interrupt and checking event mask, the guest must process 116 * events using the event specific mechanism. 120 117 * 121 * That is if mouse capabilities were changed, 122 * guest will useVMMDev_GetMouseStatus generic request.118 * That is if mouse capabilities were changed, guest will use 119 * VMMDev_GetMouseStatus generic request. 123 120 * 124 * Event mask is only a set of flags indicating that guest 125 * must proceed with aprocedure.121 * Event mask is only a set of flags indicating that guest must proceed with a 122 * procedure. 126 123 * 127 * Unsupported events are therefore ignored. 128 * The guest additions must inform host which events they 129 * want to receive, to avoid unnecessary IRQ processing. 124 * Unsupported events are therefore ignored. The guest additions must inform 125 * host which events they want to receive, to avoid unnecessary IRQ processing. 130 126 * By default no events are signalled to guest. 131 127 * 132 * This seems to be fast method. It requires 133 * only one context switch for anevent processing.128 * This seems to be fast method. It requires only one context switch for an 129 * event processing. 134 130 * 135 131 */ … … 1084 1080 mouseStatus->pointerXPos = pThis->mouseXAbs; 1085 1081 mouseStatus->pointerYPos = pThis->mouseYAbs; 1086 LogRel2(("%s: VMMDevReq_GetMouseStatus: features = 0x%x, absX = %d, absY= %d\n",1082 LogRel2(("%s: VMMDevReq_GetMouseStatus: features = 0x%x, xAbs = %d, yAbs = %d\n", 1087 1083 __PRETTY_FUNCTION__, 1088 1084 mouseStatus->mouseFeatures, … … 1395 1391 if (pThis->displayChangeData.aRequests[i].fPending) 1396 1392 { 1397 VMMDevNotifyGuest 1393 VMMDevNotifyGuest(pThis, VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST); 1398 1394 break; 1399 1395 } … … 1419 1415 displayChangeRequest->xres = pRequest->displayChangeRequest.xres; 1420 1416 displayChangeRequest->yres = pRequest->displayChangeRequest.yres; 1421 displayChangeRequest->bpp = pRequest->displayChangeRequest.bpp;1417 displayChangeRequest->bpp = pRequest->displayChangeRequest.bpp; 1422 1418 } 1423 1419 Log(("VMMDev: returning display change request xres = %d, yres = %d, bpp = %d\n", … … 1469 1465 if (pThis->displayChangeData.aRequests[i].fPending) 1470 1466 { 1471 VMMDevNotifyGuest 1467 VMMDevNotifyGuest(pThis, VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST); 1472 1468 Log3(("VMMDev: another pending at %d\n", 1473 1469 i)); … … 1565 1561 if (pThis->displayChangeData.aRequests[i].fPending) 1566 1562 { 1567 VMMDevNotifyGuest 1563 VMMDevNotifyGuest(pThis, VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST); 1568 1564 Log3(("VMMDev: another pending at %d\n", 1569 1565 i)); … … 2046 2042 VMMDevVRDPChangeRequest *vrdpChangeRequest = (VMMDevVRDPChangeRequest*)pRequestHeader; 2047 2043 /* just pass on the information */ 2048 Log(("VMMDev: returning VRDP status %d level %d\n", pThis->fVRDPEnabled, pThis->u 32VRDPExperienceLevel));2044 Log(("VMMDev: returning VRDP status %d level %d\n", pThis->fVRDPEnabled, pThis->uVRDPExperienceLevel)); 2049 2045 2050 2046 vrdpChangeRequest->u8VRDPActive = pThis->fVRDPEnabled; 2051 vrdpChangeRequest->u32VRDPExperienceLevel = pThis->u 32VRDPExperienceLevel;2047 vrdpChangeRequest->u32VRDPExperienceLevel = pThis->uVRDPExperienceLevel; 2052 2048 2053 2049 pRequestHeader->rc = VINF_SUCCESS; … … 2068 2064 VMMDevGetMemBalloonChangeRequest *memBalloonChangeRequest = (VMMDevGetMemBalloonChangeRequest*)pRequestHeader; 2069 2065 /* just pass on the information */ 2070 Log(("VMMDev: returning memory balloon size =%d\n", pThis-> u32MemoryBalloonSize));2071 memBalloonChangeRequest->cBalloonChunks = pThis-> u32MemoryBalloonSize;2066 Log(("VMMDev: returning memory balloon size =%d\n", pThis->cMbMemoryBalloon)); 2067 memBalloonChangeRequest->cBalloonChunks = pThis->cMbMemoryBalloon; 2072 2068 memBalloonChangeRequest->cPhysMemChunks = pThis->cbGuestRAM / (uint64_t)_1M; 2073 2069 … … 2075 2071 { 2076 2072 /* Remember which mode the client has queried. */ 2077 pThis-> u32LastMemoryBalloonSize = pThis->u32MemoryBalloonSize;2073 pThis->cMbMemoryBalloonLast = pThis->cMbMemoryBalloon; 2078 2074 } 2079 2075 … … 2477 2473 } 2478 2474 2475 2476 /* -=-=-=-=-=- PCI Device -=-=-=-=-=- */ 2477 2478 2479 2479 /** 2480 2480 * Callback function for mapping an PCI I/O region. … … 2491 2491 { 2492 2492 LogFlow(("vmmdevR3IORAMRegionMap: iRegion=%d GCPhysAddress=%RGp cb=%#x enmType=%d\n", iRegion, GCPhysAddress, cb, enmType)); 2493 VMMDevState *pThis = PCIDEV_2_VMMDEVSTATE(pPciDev);2493 PVMMDEV pThis = RT_FROM_MEMBER(pPciDev, VMMDEV, PciDev); 2494 2494 int rc; 2495 2495 … … 2564 2564 static DECLCALLBACK(int) vmmdevIOPortRegionMap(PPCIDEVICE pPciDev, /*unsigned*/ int iRegion, RTGCPHYS GCPhysAddress, uint32_t cb, PCIADDRESSSPACE enmType) 2565 2565 { 2566 VMMDevState *pThis = PCIDEV_2_VMMDEVSTATE(pPciDev);2566 PVMMDEV pThis = RT_FROM_MEMBER(pPciDev, VMMDEV, PciDev); 2567 2567 int rc = VINF_SUCCESS; 2568 2568 … … 2587 2587 } 2588 2588 2589 2590 /* -=-=-=-=-=- IBase -=-=-=-=-=- */ 2591 2589 2592 /** 2590 2593 * @interface_method_impl{PDMIBASE,pfnQueryInterface} … … 2592 2595 static DECLCALLBACK(void *) vmmdevPortQueryInterface(PPDMIBASE pInterface, const char *pszIID) 2593 2596 { 2594 VMMDevState *pThis = RT_FROM_MEMBER(pInterface, VMMDevState, IBase);2597 PVMMDEV pThis = RT_FROM_MEMBER(pInterface, VMMDEV, IBase); 2595 2598 2596 2599 PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase); … … 2604 2607 } 2605 2608 2609 2610 /* -=-=-=-=-=- ILeds -=-=-=-=-=- */ 2611 2606 2612 /** 2607 2613 * Gets the pointer to the status LED of a unit. … … 2614 2620 static DECLCALLBACK(int) vmmdevQueryStatusLed(PPDMILEDPORTS pInterface, unsigned iLUN, PPDMLED *ppLed) 2615 2621 { 2616 VMMDevState *pThis = (VMMDevState *)( (uintptr_t)pInterface - RT_OFFSETOF(VMMDevState, SharedFolders.ILeds));2622 PVMMDEV pThis = RT_FROM_MEMBER(pInterface, VMMDEV, SharedFolders.ILeds); 2617 2623 if (iLUN == 0) /* LUN 0 is shared folders */ 2618 2624 { … … 2623 2629 } 2624 2630 2631 2625 2632 /* -=-=-=-=-=- IVMMDevPort -=-=-=-=-=- */ 2626 2633 … … 2630 2637 2631 2638 /** 2632 * Return the current absolute mouse position in pixels 2633 * 2634 * @returns VBox status code 2635 * @param pAbsX Pointer of result value, can be NULL 2636 * @param pAbsY Pointer of result value, can be NULL 2637 */ 2638 static DECLCALLBACK(int) vmmdevQueryAbsoluteMouse(PPDMIVMMDEVPORT pInterface, int32_t *pAbsX, int32_t *pAbsY) 2639 * @interface_method_impl{PDMIVMMDEVPORT, pfnQueryAbsoluteMouse} 2640 */ 2641 static DECLCALLBACK(int) vmmdevIPort_QueryAbsoluteMouse(PPDMIVMMDEVPORT pInterface, int32_t *pxAbs, int32_t *pyAbs) 2639 2642 { 2640 2643 VMMDevState *pThis = IVMMDEVPORT_2_VMMDEVSTATE(pInterface); 2641 if (p AbsX)2642 *p AbsX= ASMAtomicReadS32(&pThis->mouseXAbs); /* why the atomic read? */2643 if (p AbsY)2644 *p AbsY= ASMAtomicReadS32(&pThis->mouseYAbs);2644 if (pxAbs) 2645 *pxAbs = ASMAtomicReadS32(&pThis->mouseXAbs); /* why the atomic read? */ 2646 if (pyAbs) 2647 *pyAbs = ASMAtomicReadS32(&pThis->mouseYAbs); 2645 2648 return VINF_SUCCESS; 2646 2649 } 2647 2650 2648 2651 /** 2649 * Set the new absolute mouse position in pixels 2650 * 2651 * @returns VBox status code 2652 * @param absX New absolute X position 2653 * @param absY New absolute Y position 2654 */ 2655 static DECLCALLBACK(int) vmmdevSetAbsoluteMouse(PPDMIVMMDEVPORT pInterface, int32_t absX, int32_t absY) 2652 * @interface_method_impl{PDMIVMMDEVPORT, pfnSetAbsoluteMouse} 2653 */ 2654 static DECLCALLBACK(int) vmmdevIPort_SetAbsoluteMouse(PPDMIVMMDEVPORT pInterface, int32_t xAbs, int32_t yAbs) 2656 2655 { 2657 2656 VMMDevState *pThis = IVMMDEVPORT_2_VMMDEVSTATE(pInterface); 2658 2657 PDMCritSectEnter(&pThis->CritSect, VERR_SEM_BUSY); 2659 2658 2660 if (pThis->mouseXAbs == absX && pThis->mouseYAbs == absY)2659 if (pThis->mouseXAbs == xAbs && pThis->mouseYAbs == yAbs) 2661 2660 { 2662 2661 PDMCritSectLeave(&pThis->CritSect); 2663 2662 return VINF_SUCCESS; 2664 2663 } 2665 Log2(("vmmdev SetAbsoluteMouse: settings absolute position to x = %d, y = %d\n", absX, absY));2666 pThis->mouseXAbs = absX;2667 pThis->mouseYAbs = absY;2668 VMMDevNotifyGuest 2664 Log2(("vmmdevIPort_SetAbsoluteMouse : settings absolute position to x = %d, y = %d\n", xAbs, yAbs)); 2665 pThis->mouseXAbs = xAbs; 2666 pThis->mouseYAbs = yAbs; 2667 VMMDevNotifyGuest(pThis, VMMDEV_EVENT_MOUSE_POSITION_CHANGED); 2669 2668 PDMCritSectLeave(&pThis->CritSect); 2670 2669 return VINF_SUCCESS; … … 2672 2671 2673 2672 /** 2674 * Return the current mouse capability flags 2675 * 2676 * @returns VBox status code 2677 * @param pCapabilities Pointer of result value 2678 */ 2679 static DECLCALLBACK(int) vmmdevQueryMouseCapabilities(PPDMIVMMDEVPORT pInterface, uint32_t *pfCaps) 2673 * @interface_method_impl{PDMIVMMDEVPORT, pfnQueryMouseCapabilities} 2674 */ 2675 static DECLCALLBACK(int) vmmdevIPort_QueryMouseCapabilities(PPDMIVMMDEVPORT pInterface, uint32_t *pfCapabilities) 2680 2676 { 2681 2677 VMMDevState *pThis = IVMMDEVPORT_2_VMMDEVSTATE(pInterface); 2682 if (!pfCap s)2678 if (!pfCapabilities) 2683 2679 return VERR_INVALID_PARAMETER; 2684 *pfCap s = pThis->mouseCapabilities;2680 *pfCapabilities = pThis->mouseCapabilities; 2685 2681 return VINF_SUCCESS; 2686 2682 } 2687 2683 2688 2684 /** 2689 * Set the current mouse capability flag (host side) 2690 * 2691 * @returns VBox status code 2692 * @param capabilities Capability mask 2693 */ 2694 static DECLCALLBACK(int) vmmdevUpdateMouseCapabilities(PPDMIVMMDEVPORT pInterface, uint32_t fCapsAdded, uint32_t fCapsRemoved) 2685 * @interface_method_impl{PDMIVMMDEVPORT, pfnUpdateMouseCapabilities} 2686 */ 2687 static DECLCALLBACK(int) vmmdevIPort_UpdateMouseCapabilities(PPDMIVMMDEVPORT pInterface, uint32_t fCapsAdded, uint32_t fCapsRemoved) 2695 2688 { 2696 2689 VMMDevState *pThis = IVMMDEVPORT_2_VMMDEVSTATE(pInterface); … … 2707 2700 2708 2701 if (fNotify) 2709 VMMDevNotifyGuest 2702 VMMDevNotifyGuest(pThis, VMMDEV_EVENT_MOUSE_CAPABILITIES_CHANGED); 2710 2703 2711 2704 PDMCritSectLeave(&pThis->CritSect); … … 2713 2706 } 2714 2707 2715 2716 static DECLCALLBACK(int) vmmdevRequestDisplayChange(PPDMIVMMDEVPORT pInterface, uint32_t xres, uint32_t yres, 2717 uint32_t bpp, uint32_t display, uint32_t u32OriginX, 2718 uint32_t u32OriginY, bool fEnabled, bool fChangeOrigin) 2708 /** 2709 * @interface_method_impl{PDMIVMMDEVPORT, pfnRequestDisplayChange} 2710 */ 2711 static DECLCALLBACK(int) 2712 vmmdevIPort_RequestDisplayChange(PPDMIVMMDEVPORT pInterface, uint32_t cx, uint32_t cy, uint32_t cBits, uint32_t idxDisplay, 2713 uint32_t xOrigin, uint32_t yOrigin, bool fEnabled, bool fChangeOrigin) 2719 2714 { 2720 2715 VMMDevState *pThis = IVMMDEVPORT_2_VMMDEVSTATE(pInterface); 2721 2716 2722 if ( display >= RT_ELEMENTS(pThis->displayChangeData.aRequests))2717 if (idxDisplay >= RT_ELEMENTS(pThis->displayChangeData.aRequests)) 2723 2718 { 2724 2719 return VERR_INVALID_PARAMETER; … … 2727 2722 PDMCritSectEnter(&pThis->CritSect, VERR_SEM_BUSY); 2728 2723 2729 DISPLAYCHANGEREQUEST *pRequest = &pThis->displayChangeData.aRequests[ display];2724 DISPLAYCHANGEREQUEST *pRequest = &pThis->displayChangeData.aRequests[idxDisplay]; 2730 2725 2731 2726 /* Verify that the new resolution is different and that guest does not yet know about it. */ 2732 bool fSameResolution = (! xres || (pRequest->lastReadDisplayChangeRequest.xres == xres)) &&2733 (!yres || (pRequest->lastReadDisplayChangeRequest.yres == yres)) &&2734 (!bpp || (pRequest->lastReadDisplayChangeRequest.bpp == bpp)) &&2735 (pRequest->lastReadDisplayChangeRequest.xOrigin == u32OriginX) &&2736 (pRequest->lastReadDisplayChangeRequest.yOrigin == u32OriginY) &&2737 (pRequest->lastReadDisplayChangeRequest.fEnabled == fEnabled) &&2738 pRequest->lastReadDisplayChangeRequest.display == display;2739 2740 if (! xres && !yres && !bpp)2727 bool fSameResolution = (!cx || pRequest->lastReadDisplayChangeRequest.xres == cx) 2728 && (!cy || pRequest->lastReadDisplayChangeRequest.yres == cy) 2729 && (!cBits || pRequest->lastReadDisplayChangeRequest.bpp == cBits) 2730 && pRequest->lastReadDisplayChangeRequest.xOrigin == xOrigin 2731 && pRequest->lastReadDisplayChangeRequest.yOrigin == yOrigin 2732 && pRequest->lastReadDisplayChangeRequest.fEnabled == fEnabled 2733 && pRequest->lastReadDisplayChangeRequest.display == idxDisplay; 2734 2735 if (!cx && !cy && !cBits) 2741 2736 { 2742 2737 /* Special case of reset video mode. */ … … 2744 2739 } 2745 2740 2746 Log3(("vmmdev RequestDisplayChange: same=%d. new: xres=%d, yres=%d, bpp=%d, display=%d.\2747 old: xres=%d, yres=%d, bpp=%d, display=%d. \n \2741 Log3(("vmmdevIPort_RequestDisplayChange: same=%d. new: cx=%d, cy=%d, cBits=%d, idxDisplay=%d.\ 2742 old: cx=%d, cy=%d, cBits=%d, idxDisplay=%d. \n \ 2748 2743 ,OriginX = %d , OriginY=%d, Enabled=%d, ChangeOrigin=%d\n", 2749 fSameResolution, xres, yres, bpp, display, pRequest->lastReadDisplayChangeRequest.xres,2744 fSameResolution, cx, cy, cBits, idxDisplay, pRequest->lastReadDisplayChangeRequest.xres, 2750 2745 pRequest->lastReadDisplayChangeRequest.yres, pRequest->lastReadDisplayChangeRequest.bpp, 2751 2746 pRequest->lastReadDisplayChangeRequest.display, 2752 u32OriginX, u32OriginY, fEnabled, fChangeOrigin));2747 xOrigin, yOrigin, fEnabled, fChangeOrigin)); 2753 2748 2754 2749 if (!fSameResolution) 2755 2750 { 2756 2751 LogRel(("VMMDev::SetVideoModeHint: got a video mode hint (%dx%dx%d) at %d\n", 2757 xres, yres, bpp, display));2752 cx, cy, cBits, idxDisplay)); 2758 2753 2759 2754 /* we could validate the information here but hey, the guest can do that as well! */ 2760 pRequest->displayChangeRequest.xres = xres;2761 pRequest->displayChangeRequest.yres = yres;2762 pRequest->displayChangeRequest.bpp = bpp;2763 pRequest->displayChangeRequest.display = display;2764 pRequest->displayChangeRequest.xOrigin = u32OriginX;2765 pRequest->displayChangeRequest.yOrigin = u32OriginY;2755 pRequest->displayChangeRequest.xres = cx; 2756 pRequest->displayChangeRequest.yres = cy; 2757 pRequest->displayChangeRequest.bpp = cBits; 2758 pRequest->displayChangeRequest.display = idxDisplay; 2759 pRequest->displayChangeRequest.xOrigin = xOrigin; 2760 pRequest->displayChangeRequest.yOrigin = yOrigin; 2766 2761 pRequest->displayChangeRequest.fEnabled = fEnabled; 2767 2762 pRequest->displayChangeRequest.fChangeOrigin = fChangeOrigin; … … 2770 2765 2771 2766 /* IRQ so the guest knows what's going on */ 2772 VMMDevNotifyGuest 2767 VMMDevNotifyGuest(pThis, VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST); 2773 2768 } 2774 2769 … … 2777 2772 } 2778 2773 2779 static DECLCALLBACK(int) vmmdevRequestSeamlessChange(PPDMIVMMDEVPORT pInterface, bool fEnabled) 2774 /** 2775 * @interface_method_impl{PDMIVMMDEVPORT, pfnRequestSeamlessChange} 2776 */ 2777 static DECLCALLBACK(int) vmmdevIPort_RequestSeamlessChange(PPDMIVMMDEVPORT pInterface, bool fEnabled) 2780 2778 { 2781 2779 VMMDevState *pThis = IVMMDEVPORT_2_VMMDEVSTATE(pInterface); … … 2785 2783 bool fSameMode = (pThis->fLastSeamlessEnabled == fEnabled); 2786 2784 2787 Log(("vmmdev RequestSeamlessChange: same=%d. new=%d\n", fSameMode, fEnabled));2785 Log(("vmmdevIPort_RequestSeamlessChange: same=%d. new=%d\n", fSameMode, fEnabled)); 2788 2786 2789 2787 if (!fSameMode) … … 2793 2791 2794 2792 /* IRQ so the guest knows what's going on */ 2795 VMMDevNotifyGuest 2793 VMMDevNotifyGuest(pThis, VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST); 2796 2794 } 2797 2795 … … 2800 2798 } 2801 2799 2802 static DECLCALLBACK(int) vmmdevSetMemoryBalloon(PPDMIVMMDEVPORT pInterface, uint32_t ulBalloonSize) 2800 /** 2801 * @interface_method_impl{PDMIVMMDEVPORT, pfnSetMemoryBalloon} 2802 */ 2803 static DECLCALLBACK(int) vmmdevIPort_SetMemoryBalloon(PPDMIVMMDEVPORT pInterface, uint32_t cMbBalloon) 2803 2804 { 2804 2805 VMMDevState *pThis = IVMMDEVPORT_2_VMMDEVSTATE(pInterface); … … 2806 2807 2807 2808 /* Verify that the new resolution is different and that guest does not yet know about it. */ 2808 bool fSame = (pThis->u32LastMemoryBalloonSize == ulBalloonSize); 2809 2810 Log(("vmmdevSetMemoryBalloon: old=%d. new=%d\n", pThis->u32LastMemoryBalloonSize, ulBalloonSize)); 2811 2812 if (!fSame) 2809 Log(("vmmdevIPort_SetMemoryBalloon: old=%u new=%u\n", pThis->cMbMemoryBalloonLast, cMbBalloon)); 2810 if (pThis->cMbMemoryBalloonLast != cMbBalloon) 2813 2811 { 2814 2812 /* we could validate the information here but hey, the guest can do that as well! */ 2815 pThis-> u32MemoryBalloonSize = ulBalloonSize;2813 pThis->cMbMemoryBalloon = cMbBalloon; 2816 2814 2817 2815 /* IRQ so the guest knows what's going on */ 2818 VMMDevNotifyGuest 2816 VMMDevNotifyGuest(pThis, VMMDEV_EVENT_BALLOON_CHANGE_REQUEST); 2819 2817 } 2820 2818 … … 2823 2821 } 2824 2822 2825 static DECLCALLBACK(int) vmmdevVRDPChange(PPDMIVMMDEVPORT pInterface, bool fVRDPEnabled, uint32_t u32VRDPExperienceLevel) 2823 /** 2824 * @interface_method_impl{PDMIVMMDEVPORT, pfnVRDPChange} 2825 */ 2826 static DECLCALLBACK(int) vmmdevIPort_VRDPChange(PPDMIVMMDEVPORT pInterface, bool fVRDPEnabled, uint32_t uVRDPExperienceLevel) 2826 2827 { 2827 2828 VMMDevState *pThis = IVMMDEVPORT_2_VMMDEVSTATE(pInterface); … … 2830 2831 bool fSame = (pThis->fVRDPEnabled == fVRDPEnabled); 2831 2832 2832 Log(("vmmdev VRDPChange: old=%d. new=%d\n", pThis->fVRDPEnabled, fVRDPEnabled));2833 Log(("vmmdevIPort_VRDPChange: old=%d. new=%d\n", pThis->fVRDPEnabled, fVRDPEnabled)); 2833 2834 2834 2835 if (!fSame) 2835 2836 { 2836 2837 pThis->fVRDPEnabled = fVRDPEnabled; 2837 pThis->u 32VRDPExperienceLevel = u32VRDPExperienceLevel;2838 2839 VMMDevNotifyGuest 2838 pThis->uVRDPExperienceLevel = uVRDPExperienceLevel; 2839 2840 VMMDevNotifyGuest(pThis, VMMDEV_EVENT_VRDP); 2840 2841 } 2841 2842 … … 2844 2845 } 2845 2846 2846 static DECLCALLBACK(int) vmmdevSetStatisticsInterval(PPDMIVMMDEVPORT pInterface, uint32_t ulStatInterval) 2847 /** 2848 * @interface_method_impl{PDMIVMMDEVPORT, pfnSetStatisticsInterval} 2849 */ 2850 static DECLCALLBACK(int) vmmdevIPort_SetStatisticsInterval(PPDMIVMMDEVPORT pInterface, uint32_t cSecsStatInterval) 2847 2851 { 2848 2852 VMMDevState *pThis = IVMMDEVPORT_2_VMMDEVSTATE(pInterface); … … 2850 2854 2851 2855 /* Verify that the new resolution is different and that guest does not yet know about it. */ 2852 bool fSame = (pThis->u32LastStatIntervalSize == ulStatInterval);2853 2854 Log(("vmmdev SetStatisticsInterval: old=%d. new=%d\n", pThis->u32LastStatIntervalSize, ulStatInterval));2856 bool fSame = (pThis->u32LastStatIntervalSize == cSecsStatInterval); 2857 2858 Log(("vmmdevIPort_SetStatisticsInterval: old=%d. new=%d\n", pThis->u32LastStatIntervalSize, cSecsStatInterval)); 2855 2859 2856 2860 if (!fSame) 2857 2861 { 2858 2862 /* we could validate the information here but hey, the guest can do that as well! */ 2859 pThis->u32StatIntervalSize = ulStatInterval;2863 pThis->u32StatIntervalSize = cSecsStatInterval; 2860 2864 2861 2865 /* IRQ so the guest knows what's going on */ 2862 VMMDevNotifyGuest 2866 VMMDevNotifyGuest(pThis, VMMDEV_EVENT_STATISTICS_INTERVAL_CHANGE_REQUEST); 2863 2867 } 2864 2868 … … 2867 2871 } 2868 2872 2869 2870 static DECLCALLBACK(int) vmmdevSetCredentials(PPDMIVMMDEVPORT pInterface, const char *pszUsername, 2871 const char *pszPassword, const char *pszDomain, 2872 uint32_t u32Flags) 2873 /** 2874 * @interface_method_impl{PDMIVMMDEVPORT, pfnSetCredentials} 2875 */ 2876 static DECLCALLBACK(int) vmmdevIPort_SetCredentials(PPDMIVMMDEVPORT pInterface, const char *pszUsername, 2877 const char *pszPassword, const char *pszDomain, uint32_t fFlags) 2873 2878 { 2874 2879 VMMDevState *pThis = IVMMDEVPORT_2_VMMDEVSTATE(pInterface); … … 2878 2883 2879 2884 /* logon mode? */ 2880 if ( u32Flags & VMMDEV_SETCREDENTIALS_GUESTLOGON)2885 if (fFlags & VMMDEV_SETCREDENTIALS_GUESTLOGON) 2881 2886 { 2882 2887 /* memorize the data */ … … 2884 2889 strcpy(pThis->pCredentials->Logon.szPassword, pszPassword); 2885 2890 strcpy(pThis->pCredentials->Logon.szDomain, pszDomain); 2886 pThis->pCredentials->Logon.fAllowInteractiveLogon = !( u32Flags & VMMDEV_SETCREDENTIALS_NOLOCALLOGON);2891 pThis->pCredentials->Logon.fAllowInteractiveLogon = !(fFlags & VMMDEV_SETCREDENTIALS_NOLOCALLOGON); 2887 2892 } 2888 2893 /* credentials verification mode? */ 2889 else if ( u32Flags & VMMDEV_SETCREDENTIALS_JUDGE)2894 else if (fFlags & VMMDEV_SETCREDENTIALS_JUDGE) 2890 2895 { 2891 2896 /* memorize the data */ … … 2894 2899 strcpy(pThis->pCredentials->Judge.szDomain, pszDomain); 2895 2900 2896 VMMDevNotifyGuest 2901 VMMDevNotifyGuest(pThis, VMMDEV_EVENT_JUDGE_CREDENTIALS); 2897 2902 } 2898 2903 else … … 2904 2909 2905 2910 /** 2906 * Notification from the Display. Especially useful when 2907 * acceleration is disabled after a video mode change. 2911 * @interface_method_impl{PDMIVMMDEVPORT, pfnVBVAChange} 2908 2912 * 2909 * @param fEnable Current acceleration status. 2910 */ 2911 static DECLCALLBACK(void) vmmdevVBVAChange(PPDMIVMMDEVPORT pInterface, bool fEnabled) 2913 * Notification from the Display. Especially useful when acceleration is 2914 * disabled after a video mode change. 2915 */ 2916 static DECLCALLBACK(void) vmmdevIPort_VBVAChange(PPDMIVMMDEVPORT pInterface, bool fEnabled) 2912 2917 { 2913 2918 VMMDevState *pThis = IVMMDEVPORT_2_VMMDEVSTATE(pInterface); 2914 2919 2915 Log(("vmmdev VBVAChange: fEnabled = %d\n", fEnabled));2920 Log(("vmmdevIPort_VBVAChange: fEnabled = %d\n", fEnabled)); 2916 2921 2917 2922 if (pThis) … … 2923 2928 2924 2929 /** 2925 * Notification that a CPU is about to be unplugged from the VM. 2926 * The guest has to eject the CPU. 2927 * 2928 * @returns VBox status code. 2929 * @param idCpu The id of the CPU. 2930 * @param idCpuCore The core id of the CPU to remove. 2931 * @param idCpuPackage The package id of the CPU to remove. 2932 */ 2933 static DECLCALLBACK(int) vmmdevCpuHotUnplug(PPDMIVMMDEVPORT pInterface, uint32_t idCpuCore, uint32_t idCpuPackage) 2930 * @interface_method_impl{PDMIVMMDEVPORT, pfnCpuHotUnplug} 2931 */ 2932 static DECLCALLBACK(int) vmmdevIPort_CpuHotUnplug(PPDMIVMMDEVPORT pInterface, uint32_t idCpuCore, uint32_t idCpuPackage) 2934 2933 { 2935 2934 int rc = VINF_SUCCESS; 2936 2935 VMMDevState *pThis = IVMMDEVPORT_2_VMMDEVSTATE(pInterface); 2937 2936 2938 Log(("vmmdev CpuHotUnplug: idCpuCore=%u idCpuPackage=%u\n", idCpuCore, idCpuPackage));2937 Log(("vmmdevIPort_CpuHotUnplug: idCpuCore=%u idCpuPackage=%u\n", idCpuCore, idCpuPackage)); 2939 2938 2940 2939 PDMCritSectEnter(&pThis->CritSect, VERR_SEM_BUSY); … … 2945 2944 pThis->idCpuCore = idCpuCore; 2946 2945 pThis->idCpuPackage = idCpuPackage; 2947 VMMDevNotifyGuest 2946 VMMDevNotifyGuest(pThis, VMMDEV_EVENT_CPU_HOTPLUG); 2948 2947 } 2949 2948 else … … 2955 2954 2956 2955 /** 2957 * Notification that a CPU was attached to the VM 2958 * The guest may use it now. 2959 * 2960 * @returns VBox status code. 2961 * @param idCpuCore The core id of the CPU to add. 2962 * @param idCpuPackage The package id of the CPU to add. 2963 */ 2964 static DECLCALLBACK(int) vmmdevCpuHotPlug(PPDMIVMMDEVPORT pInterface, uint32_t idCpuCore, uint32_t idCpuPackage) 2956 * @interface_method_impl{PDMIVMMDEVPORT, pfnCpuHotPlug} 2957 */ 2958 static DECLCALLBACK(int) vmmdevIPort_CpuHotPlug(PPDMIVMMDEVPORT pInterface, uint32_t idCpuCore, uint32_t idCpuPackage) 2965 2959 { 2966 2960 int rc = VINF_SUCCESS; … … 2985 2979 } 2986 2980 2981 2987 2982 /* -=-=-=-=-=- Saved State -=-=-=-=-=- */ 2988 2983 2989 2984 /** 2990 * @c opydoc FNSSMDEVLIVEEXEC2985 * @callback_method_impl{NSSMDEVLIVEEXEC} 2991 2986 */ 2992 2987 static DECLCALLBACK(int) vmmdevLiveExec(PPDMDEVINS pDevIns, PSSMHANDLE pSSM, uint32_t uPass) 2993 2988 { 2994 VMMDevState *pThis = PDMINS_2_DATA(pDevIns, VMMDevState*);2989 PVMMDEV pThis = PDMINS_2_DATA(pDevIns, PVMMDEV); 2995 2990 2996 2991 SSMR3PutBool(pSSM, pThis->fGetHostTimeDisabled); … … 3004 2999 3005 3000 /** 3006 * @copydoc FNSSMDEVSAVEEXEC 3007 * 3001 * @callback_method_impl{FNSSMDEVSAVEEXEC} 3008 3002 */ 3009 3003 static DECLCALLBACK(int) vmmdevSaveExec(PPDMDEVINS pDevIns, PSSMHANDLE pSSM) 3010 3004 { 3011 VMMDevState *pThis = PDMINS_2_DATA(pDevIns, VMMDevState*);3005 PVMMDEV pThis = PDMINS_2_DATA(pDevIns, PVMMDEV); 3012 3006 3013 3007 vmmdevLiveExec(pDevIns, pSSM, SSM_PASS_FINAL); … … 3055 3049 3056 3050 /** 3057 * @c opydoc FNSSMDEVLOADEXEC3051 * @callback_method_impl{FNSSMDEVLOADEXEC} 3058 3052 */ 3059 3053 static DECLCALLBACK(int) vmmdevLoadExec(PPDMDEVINS pDevIns, PSSMHANDLE pSSM, uint32_t uVersion, uint32_t uPass) … … 3061 3055 /** @todo The code load code is assuming we're always loaded into a freshly 3062 3056 * constructed VM. */ 3063 VMMDevState *pThis = PDMINS_2_DATA(pDevIns, VMMDevState*);3064 int 3057 PVMMDEV pThis = PDMINS_2_DATA(pDevIns, PVMMDEV); 3058 int rc; 3065 3059 3066 3060 if ( uVersion > VMMDEV_SAVED_STATE_VERSION … … 3199 3193 { 3200 3194 LogRel(("Guest Additions information report: additionsVersion = 0x%08X, osType = 0x%08X\n", 3201 pThis->guestInfo.interfaceVersion, 3202 pThis->guestInfo.osType)); 3195 pThis->guestInfo.interfaceVersion, pThis->guestInfo.osType)); 3203 3196 if (pThis->pDrv) 3204 3197 { … … 3237 3230 static DECLCALLBACK(int) vmmdevLoadStateDone(PPDMDEVINS pDevIns, PSSMHANDLE pSSM) 3238 3231 { 3239 VMMDevState *pThis = PDMINS_2_DATA(pDevIns, VMMDevState*);3232 PVMMDEV pThis = PDMINS_2_DATA(pDevIns, PVMMDEV); 3240 3233 3241 3234 #ifdef VBOX_WITH_HGCM … … 3249 3242 } 3250 3243 3244 3251 3245 /* -=-=-=-=- PDMDEVREG -=-=-=-=- */ 3252 3246 … … 3263 3257 } 3264 3258 3265 /** 3266 * Reset notification. 3267 * 3268 * @returns VBox status. 3269 * @param pDrvIns The driver instance data. 3259 3260 /** 3261 * @interface_method_impl{PDMDEVREG,pfnReset} 3270 3262 */ 3271 3263 static DECLCALLBACK(void) vmmdevReset(PPDMDEVINS pDevIns) 3272 3264 { 3273 VMMDevState *pThis = PDMINS_2_DATA(pDevIns, VMMDevState*);3265 PVMMDEV pThis = PDMINS_2_DATA(pDevIns, PVMMDEV); 3274 3266 3275 3267 /* … … 3337 3329 3338 3330 /* disabled memory ballooning */ 3339 pThis-> u32LastMemoryBalloonSize= 0;3331 pThis->cMbMemoryBalloonLast = 0; 3340 3332 3341 3333 /* disabled statistics updating */ … … 3395 3387 static DECLCALLBACK(int) vmmdevDestroy(PPDMDEVINS pDevIns) 3396 3388 { 3389 PVMMDEV pThis = PDMINS_2_DATA(pDevIns, PVMMDEV); 3397 3390 PDMDEV_CHECK_VERSIONS_RETURN(pDevIns); 3398 VMMDevState *pThis = PDMINS_2_DATA(pDevIns, VMMDevState *);3399 3391 3400 3392 /* … … 3417 3409 static DECLCALLBACK(int) vmmdevConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg) 3418 3410 { 3411 PVMMDEV pThis = PDMINS_2_DATA(pDevIns, PVMMDEV); 3419 3412 int rc; 3420 VMMDevState *pThis = PDMINS_2_DATA(pDevIns, VMMDevState *);3421 3413 3422 3414 Assert(iInstance == 0); … … 3430 3422 3431 3423 /* PCI vendor, just a free bogus value */ 3432 PCIDevSetVendorId(&pThis-> dev, 0x80ee);3424 PCIDevSetVendorId(&pThis->PciDev, 0x80ee); 3433 3425 /* device ID */ 3434 PCIDevSetDeviceId(&pThis-> dev, 0xcafe);3426 PCIDevSetDeviceId(&pThis->PciDev, 0xcafe); 3435 3427 /* class sub code (other type of system peripheral) */ 3436 PCIDevSetClassSub(&pThis-> dev, 0x80);3428 PCIDevSetClassSub(&pThis->PciDev, 0x80); 3437 3429 /* class base code (base system peripheral) */ 3438 PCIDevSetClassBase(&pThis-> dev, 0x08);3430 PCIDevSetClassBase(&pThis->PciDev, 0x08); 3439 3431 /* header type */ 3440 PCIDevSetHeaderType(&pThis-> dev, 0x00);3432 PCIDevSetHeaderType(&pThis->PciDev, 0x00); 3441 3433 /* interrupt on pin 0 */ 3442 PCIDevSetInterruptPin(&pThis-> dev, 0x01);3434 PCIDevSetInterruptPin(&pThis->PciDev, 0x01); 3443 3435 3444 3436 RTTIMESPEC TimeStampNow; … … 3458 3450 3459 3451 /* VMMDev port */ 3460 pThis->IPort.pfnQueryAbsoluteMouse = vmmdev QueryAbsoluteMouse;3461 pThis->IPort.pfnSetAbsoluteMouse = vmmdev SetAbsoluteMouse;3462 pThis->IPort.pfnQueryMouseCapabilities = vmmdev QueryMouseCapabilities;3463 pThis->IPort.pfnUpdateMouseCapabilities = vmmdev UpdateMouseCapabilities;3464 pThis->IPort.pfnRequestDisplayChange = vmmdev RequestDisplayChange;3465 pThis->IPort.pfnSetCredentials = vmmdev SetCredentials;3466 pThis->IPort.pfnVBVAChange = vmmdev VBVAChange;3467 pThis->IPort.pfnRequestSeamlessChange = vmmdev RequestSeamlessChange;3468 pThis->IPort.pfnSetMemoryBalloon = vmmdev SetMemoryBalloon;3469 pThis->IPort.pfnSetStatisticsInterval = vmmdev SetStatisticsInterval;3470 pThis->IPort.pfnVRDPChange = vmmdev VRDPChange;3471 pThis->IPort.pfnCpuHotUnplug = vmmdev CpuHotUnplug;3472 pThis->IPort.pfnCpuHotPlug = vmmdev CpuHotPlug;3452 pThis->IPort.pfnQueryAbsoluteMouse = vmmdevIPort_QueryAbsoluteMouse; 3453 pThis->IPort.pfnSetAbsoluteMouse = vmmdevIPort_SetAbsoluteMouse ; 3454 pThis->IPort.pfnQueryMouseCapabilities = vmmdevIPort_QueryMouseCapabilities; 3455 pThis->IPort.pfnUpdateMouseCapabilities = vmmdevIPort_UpdateMouseCapabilities; 3456 pThis->IPort.pfnRequestDisplayChange = vmmdevIPort_RequestDisplayChange; 3457 pThis->IPort.pfnSetCredentials = vmmdevIPort_SetCredentials; 3458 pThis->IPort.pfnVBVAChange = vmmdevIPort_VBVAChange; 3459 pThis->IPort.pfnRequestSeamlessChange = vmmdevIPort_RequestSeamlessChange; 3460 pThis->IPort.pfnSetMemoryBalloon = vmmdevIPort_SetMemoryBalloon; 3461 pThis->IPort.pfnSetStatisticsInterval = vmmdevIPort_SetStatisticsInterval; 3462 pThis->IPort.pfnVRDPChange = vmmdevIPort_VRDPChange; 3463 pThis->IPort.pfnCpuHotUnplug = vmmdevIPort_CpuHotUnplug; 3464 pThis->IPort.pfnCpuHotPlug = vmmdevIPort_CpuHotPlug; 3473 3465 3474 3466 /* Shared folder LED */ … … 3601 3593 * Register the PCI device. 3602 3594 */ 3603 rc = PDMDevHlpPCIRegister(pDevIns, &pThis-> dev);3595 rc = PDMDevHlpPCIRegister(pDevIns, &pThis->PciDev); 3604 3596 if (RT_FAILURE(rc)) 3605 3597 return rc; 3606 if (pThis-> dev.devfn != 32 || iInstance != 0)3607 Log(("!!WARNING!!: pThis-> dev.devfn=%d (ignore if testcase or no started by Main)\n", pThis->dev.devfn));3598 if (pThis->PciDev.devfn != 32 || iInstance != 0) 3599 Log(("!!WARNING!!: pThis->PciDev.devfn=%d (ignore if testcase or no started by Main)\n", pThis->PciDev.devfn)); 3608 3600 rc = PDMDevHlpPCIIORegionRegister(pDevIns, 0, 0x20, PCI_ADDRESS_SPACE_IO, vmmdevIOPortRegionMap); 3609 3601 if (RT_FAILURE(rc)) … … 3646 3638 /* Query the initial balloon size. */ 3647 3639 AssertPtr(pThis->pDrv->pfnQueryBalloonSize); 3648 rc = pThis->pDrv->pfnQueryBalloonSize(pThis->pDrv, &pThis-> u32MemoryBalloonSize);3640 rc = pThis->pDrv->pfnQueryBalloonSize(pThis->pDrv, &pThis->cMbMemoryBalloon); 3649 3641 AssertRC(rc); 3650 3642 3651 Log(("Initial balloon size %x\n", pThis-> u32MemoryBalloonSize));3643 Log(("Initial balloon size %x\n", pThis->cMbMemoryBalloon)); 3652 3644 } 3653 3645 else if (rc == VERR_PDM_NO_ATTACHED_DRIVER) … … 3688 3680 #endif /* VBOX_WITH_HGCM */ 3689 3681 3690 /* In this version of VirtualBox the GUI checks whether "needs host cursor" 3691 * changes. */ 3682 /* 3683 * In this version of VirtualBox the GUI checks whether "needs host cursor" 3684 * changes. 3685 */ 3692 3686 pThis->mouseCapabilities |= VMMDEV_MOUSE_HOST_RECHECKS_NEEDS_HOST_CURSOR; 3693 3687 3694 3688 PDMDevHlpSTAMRegisterF(pDevIns, &pThis->StatMemBalloonChunks, STAMTYPE_U32, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, "Memory balloon size", "/Devices/VMMDev/BalloonChunks"); 3695 3689 3696 /* Generate a unique session id for this VM; it will be changed for each start, reset or restore. 3697 * This can be used for restore detection inside the guest. 3690 /* 3691 * Generate a unique session id for this VM; it will be changed for each 3692 * start, reset or restore. This can be used for restore detection inside 3693 * the guest. 3698 3694 */ 3699 3695 pThis->idSession = ASMReadTSC(); … … 3756 3752 }; 3757 3753 #endif /* !VBOX_DEVICE_STRUCT_TESTCASE */ 3754 -
trunk/src/VBox/Devices/VMMDev/VMMDevState.h
r44528 r44709 54 54 bool afAlignment[3]; 55 55 56 DISPLAYCHANGEREQUEST aRequests[64]; // @todo maxMonitors56 DISPLAYCHANGEREQUEST aRequests[64]; /// @todo maxMonitors 57 57 } DISPLAYCHANGEDATA; 58 58 … … 113 113 { 114 114 /** The PCI device structure. */ 115 PCIDevice dev; 116 117 /** The critical section for this device. */ 118 PDMCRITSECT CritSect; 115 PCIDevice PciDev; 116 /** The critical section for this device. 117 * @remarks We use this rather than the default one, it's simpler with all 118 * the driver interfaces where we have to waste time digging out the 119 * PDMDEVINS structure. */ 120 PDMCRITSECT CritSect; 119 121 120 122 /** hypervisor address space size */ … … 226 228 227 229 /* memory balloon change request */ 228 uint32_t u32MemoryBalloonSize, u32LastMemoryBalloonSize; 230 uint32_t cMbMemoryBalloon; 231 /** The last balloon size queried by the guest additions. */ 232 uint32_t cMbMemoryBalloonLast; 229 233 230 234 /* guest ram size */ … … 242 246 243 247 bool fVRDPEnabled; 244 uint32_t u 32VRDPExperienceLevel;248 uint32_t uVRDPExperienceLevel; 245 249 246 250 #ifdef TIMESYNC_BACKDOOR … … 349 353 #endif /* !VBOX_WITHOUT_TESTING_FEATURES */ 350 354 } VMMDevState; 351 AssertCompileMemberAlignment(VMMDevState, CritSect, 8); 352 AssertCompileMemberAlignment(VMMDevState, cbGuestRAM, 8); 353 AssertCompileMemberAlignment(VMMDevState, enmCpuHotPlugEvent, 4); 354 AssertCompileMemberAlignment(VMMDevState, aFacilityStatuses, 8); 355 typedef VMMDevState VMMDEV; 356 /** Pointer to the VMM device state. */ 357 typedef VMMDEV *PVMMDEV; 358 AssertCompileMemberAlignment(VMMDEV, CritSect, 8); 359 AssertCompileMemberAlignment(VMMDEV, cbGuestRAM, 8); 360 AssertCompileMemberAlignment(VMMDEV, enmCpuHotPlugEvent, 4); 361 AssertCompileMemberAlignment(VMMDEV, aFacilityStatuses, 8); 355 362 #ifndef VBOX_WITHOUT_TESTING_FEATURES 356 AssertCompileMemberAlignment(VMMD evState, TestingData.Value.u64Value, 8);363 AssertCompileMemberAlignment(VMMDEV, TestingData.Value.u64Value, 8); 357 364 #endif 358 365 359 366 360 void VMMDevNotifyGuest (VMMDevState *pVMMDevState, uint32_t u32EventMask); 361 void VMMDevCtlSetGuestFilterMask (VMMDevState *pVMMDevState, 362 uint32_t u32OrMask, 363 uint32_t u32NotMask); 367 void VMMDevNotifyGuest(VMMDEV *pVMMDevState, uint32_t u32EventMask); 368 void VMMDevCtlSetGuestFilterMask(VMMDEV *pVMMDevState, uint32_t u32OrMask, uint32_t u32NotMask); 364 369 365 370 #endif /* !___VMMDev_VMMDevState_h */ -
trunk/src/VBox/Devices/testcase/tstDeviceStructSizeRC.cpp
r44680 r44709 1407 1407 /* VMMDev*.cpp/h */ 1408 1408 GEN_CHECK_SIZE(VMMDevState); 1409 GEN_CHECK_OFF(VMMDevState, dev);1409 GEN_CHECK_OFF(VMMDevState, PciDev); 1410 1410 GEN_CHECK_OFF(VMMDevState, CritSect); 1411 1411 GEN_CHECK_OFF(VMMDevState, hypervisorSize); … … 1443 1443 GEN_CHECK_OFF(VMMDevState, displayChangeData); 1444 1444 GEN_CHECK_OFF(VMMDevState, pCredentials); 1445 GEN_CHECK_OFF(VMMDevState, u32MemoryBalloonSize);1446 GEN_CHECK_OFF(VMMDevState, u32LastMemoryBalloonSize);1445 GEN_CHECK_OFF(VMMDevState, cMbMemoryBalloon); 1446 GEN_CHECK_OFF(VMMDevState, cMbMemoryBalloonLast); 1447 1447 GEN_CHECK_OFF(VMMDevState, cbGuestRAM); 1448 1448 GEN_CHECK_OFF(VMMDevState, idSession); … … 1452 1452 GEN_CHECK_OFF(VMMDevState, fSeamlessEnabled); 1453 1453 GEN_CHECK_OFF(VMMDevState, fVRDPEnabled); 1454 GEN_CHECK_OFF(VMMDevState, u 32VRDPExperienceLevel);1454 GEN_CHECK_OFF(VMMDevState, uVRDPExperienceLevel); 1455 1455 #ifdef TIMESYNC_BACKDOOR 1456 1456 GEN_CHECK_OFF(VMMDevState, hostTime);
Note:
See TracChangeset
for help on using the changeset viewer.