VirtualBox

Ignore:
Timestamp:
Mar 3, 2015 7:49:35 PM (10 years ago)
Author:
vboxsync
Message:

VBoxGuest: Guest capabilities, mouse status, and event filter cleanups - part 2.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuestInternal.h

    r54601 r54606  
    109109typedef VBOXGUESTMEMBALLOON *PVBOXGUESTMEMBALLOON;
    110110
     111
     112/**
     113 * Per bit usage tracker for a uint32_t mask.
     114 *
     115 * Used for optimal handling of guest properties, mouse status and event filter.
     116 */
     117typedef struct VBOXGUESTBITUSAGETRACER
     118{
     119    /** Per bit usage counters. */
     120    uint32_t        acPerBitUsage[32];
     121    /** The current mask according to acPerBitUsage. */
     122    uint32_t        fMask;
     123} VBOXGUESTBITUSAGETRACER;
     124/** Pointer to a per bit usage tracker.  */
     125typedef VBOXGUESTBITUSAGETRACER *PVBOXGUESTBITUSAGETRACER;
     126/** Pointer to a const per bit usage tracker.  */
     127typedef VBOXGUESTBITUSAGETRACER const *PCVBOXGUESTBITUSAGETRACER;
     128
     129
    111130/**
    112131 * VBox guest device (data) extension.
     
    118137    /** Pointer to the mapping of the VMMDev adapter memory. */
    119138    VMMDevMemory volatile      *pVMMDevMemory;
    120     /** Events we won't permit anyone to filter out. */
    121     uint32_t                    fFixedEvents;
    122139    /** The memory object reserving space for the guest mappings. */
    123140    RTR0MEMOBJ                  hGuestMappings;
     
    173190    VBoxGuestMouseSetNotifyCallback MouseNotifyCallback;
    174191
    175     /** @name Guest Capabilities.
     192    /** @name Host Event Filtering
     193     * @{ */
     194    /** Events we won't permit anyone to filter out. */
     195    uint32_t                    fFixedEvents;
     196    /** Usage counters for the host events. (Fixed events are not included.) */
     197    VBOXGUESTBITUSAGETRACER     EventFilterTracker;
     198    /** The event filter last reported to the host (UINT32_MAX on failure). */
     199    uint32_t                    fEventFilterHost;
     200    /** @} */
     201
     202    /** @name Mouse Status
     203     * @{ */
     204    /** Usage counters for the mouse statuses (VMMDEV_MOUSE_XXX). */
     205    VBOXGUESTBITUSAGETRACER     MouseStatusTracker;
     206    /** The mouse status last reported to the host (UINT32_MAX on failure). */
     207    uint32_t                    fMouseStatusHost;
     208    /** @} */
     209
     210    /** @name Guest Capabilities
    176211     * @{ */
    177212    /** Guest capabilities which have been set to "acquire" mode.  This means
     
    190225    /** Usage counters for guest capabilities in "set" mode. Indexed by
    191226     *  capability bit number, one count per session using a capability. */
    192     uint32_t                    acGuestCapsSet[32];
    193     /** The set guest capabilities reported to the host. */
     227    VBOXGUESTBITUSAGETRACER     SetGuestCapsTracker;
     228    /** The guest capabilities last reported to the host (UINT32_MAX on failure). */
    194229    uint32_t                    fGuestCapsHost;
    195230    /** @} */
     
    241276     * Used to implement polling.  */
    242277    uint32_t volatile           u32MousePosChangedSeq;
    243     /** VMMDev events requested.  An event type requested in any guest session
    244      * will be added to the host filter.
    245      * Use under the VBOXGUESTDEVEXT#SessionSpinlock lock. */
    246     uint32_t                    fFilterMask;
     278    /** Host events requested by the session.
     279     * An event type requested in any guest session will be added to the host
     280     * filter.  Protected by VBOXGUESTDEVEXT::SessionSpinlock. */
     281    uint32_t                    fEventFilter;
    247282    /** Guest capabilities held in "acquired" by this session.
    248283     * Protected by VBOXGUESTDEVEXT::SessionSpinlock, but is unfortunately read
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette