Changeset 54206 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Feb 13, 2015 5:36:34 PM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 98268
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/TM.cpp
r54202 r54206 1060 1060 1061 1061 /** 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 */ 1067 static 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 /** 1062 1089 * Translates TM::pfnVirtualGetRawR3 to a symbol name that we can find in ring-0 1063 1090 * and raw-mode context. … … 1066 1093 * @param pfnWorkerR3 The TM::pfnVirtualGetRawR3 value. 1067 1094 */ 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)); 1095 static 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(); 1097 1101 return NULL; 1098 1102 }
Note:
See TracChangeset
for help on using the changeset viewer.