VirtualBox

Changeset 54206 in vbox for trunk/src/VBox/VMM/VMMR3


Ignore:
Timestamp:
Feb 13, 2015 5:36:34 PM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
98268
Message:

Attempt at build fix for gcc weirdness.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/TM.cpp

    r54202 r54206  
    10601060
    10611061/**
     1062 * Translation of pfnVirtualGetRawR3 to symbol names.
     1063 *
     1064 * @remarks This is a global variable because some gcc versions have their
     1065 *          attribute/visibility warnings messed up.
     1066 */
     1067static const struct
     1068{
     1069    PFNTIMENANOTSINTERNAL   pfnR3Worker;
     1070    const char             *pszName;
     1071} g_aNanoTsWorkers[] =
     1072{
     1073#define ENTRY(a) { a, #a }
     1074    ENTRY(RTTimeNanoTSLegacyAsync),
     1075    ENTRY(RTTimeNanoTSLegacyInvariantNoDelta),
     1076    ENTRY(RTTimeNanoTSLegacyInvariantWithDelta),
     1077    ENTRY(RTTimeNanoTSLegacySyncNoDelta),
     1078    ENTRY(RTTimeNanoTSLegacySyncWithDelta),
     1079    ENTRY(RTTimeNanoTSLFenceAsync),
     1080    ENTRY(RTTimeNanoTSLFenceInvariantNoDelta),
     1081    ENTRY(RTTimeNanoTSLFenceInvariantWithDelta),
     1082    ENTRY(RTTimeNanoTSLFenceSyncNoDelta),
     1083    ENTRY(RTTimeNanoTSLFenceSyncWithDelta),
     1084#undef ENTRY
     1085};
     1086
     1087
     1088/**
    10621089 * Translates TM::pfnVirtualGetRawR3 to a symbol name that we can find in ring-0
    10631090 * and raw-mode context.
     
    10661093 * @param   pfnWorkerR3         The TM::pfnVirtualGetRawR3 value.
    10671094 */
    1068 static const char *tmR3GetRTTimeNanoName(PFNTIMENANOTSINTERNAL pfnWorkerR3)
    1069 {
    1070     /*
    1071      * Translation of pfnVirtualGetRawR3 to symbol names.
    1072      */
    1073     static const struct
    1074     {
    1075         PFNTIMENANOTSINTERNAL   pfnR3Worker;
    1076         const char             *pszName;
    1077     } s_aNanoTsWorkers[] =
    1078     {
    1079 #define ENTRY(a) { a, #a }
    1080         ENTRY(RTTimeNanoTSLegacyAsync),
    1081         ENTRY(RTTimeNanoTSLegacyInvariantNoDelta),
    1082         ENTRY(RTTimeNanoTSLegacyInvariantWithDelta),
    1083         ENTRY(RTTimeNanoTSLegacySyncNoDelta),
    1084         ENTRY(RTTimeNanoTSLegacySyncWithDelta),
    1085         ENTRY(RTTimeNanoTSLFenceAsync),
    1086         ENTRY(RTTimeNanoTSLFenceInvariantNoDelta),
    1087         ENTRY(RTTimeNanoTSLFenceInvariantWithDelta),
    1088         ENTRY(RTTimeNanoTSLFenceSyncNoDelta),
    1089         ENTRY(RTTimeNanoTSLFenceSyncWithDelta),
    1090 #undef ENTRY
    1091     };
    1092     uint32_t iNanoTs;
    1093     for (iNanoTs = 0; iNanoTs < RT_ELEMENTS(s_aNanoTsWorkers); iNanoTs++)
    1094         if (pfnWorkerR3 == s_aNanoTsWorkers[iNanoTs].pfnR3Worker)
    1095             return s_aNanoTsWorkers[iNanoTs].pszName;
    1096     AssertFatal(iNanoTs < RT_ELEMENTS(s_aNanoTsWorkers));
     1095static const char *tmR3GetRTTimeNanoName(PFNTIMENANOTSINTERNAL pfnR3Worker)
     1096{
     1097    for (uint32_t iNanoTs = 0; iNanoTs < RT_ELEMENTS(g_aNanoTsWorkers); iNanoTs++)
     1098        if (pfnR3Worker == g_aNanoTsWorkers[iNanoTs].pfnR3Worker)
     1099            return g_aNanoTsWorkers[iNanoTs].pszName;
     1100    AssertFatalFailed();
    10971101    return NULL;
    10981102}
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