VirtualBox

Changeset 58164 in vbox


Ignore:
Timestamp:
Oct 9, 2015 7:48:10 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
103272
Message:

VMMDEVFACILITYSTATUSENTRY: Use enums, there isn't any space to save here.

Location:
trunk/src/VBox/Devices/VMMDev
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/VMMDev/VMMDev.cpp

    r58162 r58164  
    714714 *          (table full).
    715715 * @param   pThis           The VMMDev instance data.
    716  * @param   uFacility       The facility type code - VBoxGuestFacilityType.
     716 * @param   enmFacility     The facility type code.
    717717 * @param   fFixed          This is set when allocating the standard entries
    718718 *                          from the constructor.
     
    720720 */
    721721static PVMMDEVFACILITYSTATUSENTRY
    722 vmmdevAllocFacilityStatusEntry(PVMMDEV pThis, uint32_t uFacility, bool fFixed, PCRTTIMESPEC pTimeSpecNow)
     722vmmdevAllocFacilityStatusEntry(PVMMDEV pThis, VBoxGuestFacilityType enmFacility, bool fFixed, PCRTTIMESPEC pTimeSpecNow)
    723723{
    724724    /* If full, expunge one inactive entry. */
     
    728728        while (i-- > 0)
    729729        {
    730             if (   pThis->aFacilityStatuses[i].uStatus == VBoxGuestFacilityStatus_Inactive
     730            if (   pThis->aFacilityStatuses[i].enmStatus == VBoxGuestFacilityStatus_Inactive
    731731                && !pThis->aFacilityStatuses[i].fFixed)
    732732            {
     
    748748    uint32_t i = pThis->cFacilityStatuses;
    749749    while (i-- > 0)
    750         if (pThis->aFacilityStatuses[i].uFacility < uFacility)
     750        if ((uint32_t)pThis->aFacilityStatuses[i].enmFacility < (uint32_t)enmFacility)
    751751            break;
    752752    i++;
     
    760760
    761761    /* Initialize. */
    762     pThis->aFacilityStatuses[i].uFacility   = uFacility;
    763     pThis->aFacilityStatuses[i].uStatus     = VBoxGuestFacilityStatus_Inactive;
    764     pThis->aFacilityStatuses[i].fFixed      = fFixed;
    765     pThis->aFacilityStatuses[i].fPadding    = 0;
    766     pThis->aFacilityStatuses[i].fFlags      = 0;
    767     pThis->aFacilityStatuses[i].uPadding    = 0;
     762    pThis->aFacilityStatuses[i].enmFacility  = enmFacility;
     763    pThis->aFacilityStatuses[i].enmStatus    = VBoxGuestFacilityStatus_Inactive;
     764    pThis->aFacilityStatuses[i].fFixed       = fFixed;
     765    pThis->aFacilityStatuses[i].afPadding[0] = 0;
     766    pThis->aFacilityStatuses[i].afPadding[1] = 0;
     767    pThis->aFacilityStatuses[i].afPadding[2] = 0;
     768    pThis->aFacilityStatuses[i].fFlags       = 0;
    768769    if (pTimeSpecNow)
    769770        pThis->aFacilityStatuses[i].TimeSpecTS = *pTimeSpecNow;
     
    781782 *          (table full).
    782783 * @param   pThis           The VMMDev instance data.
    783  * @param   uFacility       The facility type code - VBoxGuestFacilityType.
    784  */
    785 static PVMMDEVFACILITYSTATUSENTRY vmmdevGetFacilityStatusEntry(PVMMDEV pThis, uint32_t uFacility)
     784 * @param   enmFacility     The facility type code.
     785 */
     786static PVMMDEVFACILITYSTATUSENTRY vmmdevGetFacilityStatusEntry(PVMMDEV pThis, VBoxGuestFacilityType enmFacility)
    786787{
    787788    /** @todo change to binary search. */
     
    789790    while (i-- > 0)
    790791    {
    791         if (pThis->aFacilityStatuses[i].uFacility == uFacility)
     792        if (pThis->aFacilityStatuses[i].enmFacility == enmFacility)
    792793            return &pThis->aFacilityStatuses[i];
    793         if (pThis->aFacilityStatuses[i].uFacility < uFacility)
    794             break;
    795     }
    796     return vmmdevAllocFacilityStatusEntry(pThis, uFacility, false /*fFixed*/, NULL);
     794        if ((uint32_t)pThis->aFacilityStatuses[i].enmFacility < (uint32_t)enmFacility)
     795            break;
     796    }
     797    return vmmdevAllocFacilityStatusEntry(pThis, enmFacility, false /*fFixed*/, NULL);
    797798}
    798799
     
    831832        {
    832833            pThis->aFacilityStatuses[i].TimeSpecTS = Now;
    833             pThis->aFacilityStatuses[i].uStatus    = (uint16_t)pStatus->status;
     834            pThis->aFacilityStatuses[i].enmStatus  = pStatus->status;
    834835            pThis->aFacilityStatuses[i].fFlags     = pStatus->flags;
    835836        }
     
    845846
    846847        pEntry->TimeSpecTS = Now;
    847         pEntry->uStatus    = (uint16_t)pStatus->status; /** @todo r=andy uint16_t vs. 32-bit enum. */
     848        pEntry->enmStatus  = pStatus->status;
    848849        pEntry->fFlags     = pStatus->flags;
    849850    }
     
    35183519    for (uint32_t i = 0; i < pThis->cFacilityStatuses; i++)
    35193520    {
    3520         SSMR3PutU32(pSSM, pThis->aFacilityStatuses[i].uFacility);
     3521        SSMR3PutU32(pSSM, pThis->aFacilityStatuses[i].enmFacility);
    35213522        SSMR3PutU32(pSSM, pThis->aFacilityStatuses[i].fFlags);
    3522         SSMR3PutU16(pSSM, pThis->aFacilityStatuses[i].uStatus);
     3523        SSMR3PutU16(pSSM, (uint16_t)pThis->aFacilityStatuses[i].enmStatus);
    35233524        SSMR3PutS64(pSSM, RTTimeSpecGetNano(&pThis->aFacilityStatuses[i].TimeSpecTS));
    35243525    }
     
    36413642            AssertRCReturn(rc, rc);
    36423643
    3643             PVMMDEVFACILITYSTATUSENTRY pEntry = vmmdevGetFacilityStatusEntry(pThis, uFacility);
     3644            PVMMDEVFACILITYSTATUSENTRY pEntry = vmmdevGetFacilityStatusEntry(pThis, (VBoxGuestFacilityType)uFacility);
    36443645            AssertLogRelMsgReturn(pEntry,
    36453646                                  ("VMMDev: Ran out of entries restoring the guest facility statuses. Saved state has %u.\n", cFacilityStatuses),
    36463647                                  VERR_OUT_OF_RESOURCES);
    3647             pEntry->uStatus = uStatus;
    3648             pEntry->fFlags  = fFlags;
     3648            pEntry->enmStatus = (VBoxGuestFacilityStatus)uStatus;
     3649            pEntry->fFlags    = fFlags;
    36493650            RTTimeSpecSetNano(&pEntry->TimeSpecTS, iTimeStampNano);
    36503651        }
     
    36973698            {
    36983699                for (uint32_t i = 0; i < pThis->cFacilityStatuses; i++) /* ascending order! */
    3699                     if (   pThis->aFacilityStatuses[i].uStatus != VBoxGuestFacilityStatus_Inactive
     3700                    if (   pThis->aFacilityStatuses[i].enmStatus != VBoxGuestFacilityStatus_Inactive
    37003701                        || !pThis->aFacilityStatuses[i].fFixed)
    37013702                        pThis->pDrv->pfnUpdateGuestStatus(pThis->pDrv,
    3702                                                           pThis->aFacilityStatuses[i].uFacility,
    3703                                                           pThis->aFacilityStatuses[i].uStatus,
     3703                                                          pThis->aFacilityStatuses[i].enmFacility,
     3704                                                          (uint16_t)pThis->aFacilityStatuses[i].enmStatus,
    37043705                                                          pThis->aFacilityStatuses[i].fFlags,
    37053706                                                          &pThis->aFacilityStatuses[i].TimeSpecTS);
     
    38143815    while (iFacility-- > 0)
    38153816    {
    3816         pThis->aFacilityStatuses[iFacility].uStatus    = VBoxGuestFacilityStatus_Inactive;
     3817        pThis->aFacilityStatuses[iFacility].enmStatus  = VBoxGuestFacilityStatus_Inactive;
    38173818        pThis->aFacilityStatuses[iFacility].TimeSpecTS = TimeStampNow;
    38183819    }
  • trunk/src/VBox/Devices/VMMDev/VMMDevState.h

    r58161 r58164  
    9393typedef struct VMMDEVFACILITYSTATUSENTRY
    9494{
    95     /** The facility, see VBoxGuestFacilityType. */
    96     uint32_t    uFacility;
    97     /** The status, see VBoxGuestFacilityStatus. */
    98     /** @todo r=andy uint16_t vs. uint32_t (VBoxGuestFacilityStatus enum). */
    99     uint16_t    uStatus;
     95    /** The facility (may contain values other than the defined ones). */
     96    VBoxGuestFacilityType       enmFacility;
     97    /** The status (may contain values other than the defined ones). */
     98    VBoxGuestFacilityStatus     enmStatus;
    10099    /** Whether this entry is fixed and cannot be reused when inactive. */
    101     bool        fFixed;
     100    bool                        fFixed;
    102101    /** Explicit alignment padding / reserved for future use. MBZ. */
    103     bool        fPadding;
     102    bool                        afPadding[3];
    104103    /** The facility flags (yet to be defined). */
    105     uint32_t    fFlags;
    106     /** Explicit alignment padding / reserved for future use. MBZ. */
    107     uint32_t    uPadding;
     104    uint32_t                    fFlags;
    108105    /** Last update timestamp. */
    109     RTTIMESPEC  TimeSpecTS;
     106    RTTIMESPEC                  TimeSpecTS;
    110107} VMMDEVFACILITYSTATUSENTRY;
    111108/** Pointer to a facility status entry. */
Note: See TracChangeset for help on using the changeset viewer.

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