VirtualBox

Changeset 107192 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Nov 29, 2024 2:42:15 PM (4 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
166194
Message:

IPRT,VMM/TM: Support for GIP time on win.arm64. jiraref:VBP-1266

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/TMAllVirtual.cpp

    r106061 r107192  
    119119        switch (pGip->u32Mode)
    120120        {
     121            case SUPGIPMODE_INVARIANT_TSC:
     122            case SUPGIPMODE_SYNC_TSC:
    121123#if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
    122             case SUPGIPMODE_SYNC_TSC:
    123             case SUPGIPMODE_INVARIANT_TSC:
    124124# ifdef IN_RING0
    125125                if (pGip->enmUseTscDelta <= SUPGIPUSETSCDELTA_ROUGHLY_ZERO)
     
    149149                              : fLFence ? RTTimeNanoTSLFenceSyncInvarWithDeltaUseApicId : RTTimeNanoTSLegacySyncInvarWithDeltaUseApicId;
    150150# endif
     151#else  /* !AMD64 && !X86 */
     152                if (pGip->enmUseTscDelta <= SUPGIPUSETSCDELTA_ROUGHLY_ZERO)
     153                    pfnWorker = RTTimeNanoTSSyncInvarNoDelta;
     154                else
     155                {
     156# ifdef IN_RING0
     157                    pfnWorker = RTTimeNanoTSSyncInvarWithDelta;
     158# elif defined(RT_ARCH_ARM64)
     159                    AssertFatal(pGip->fGetGipCpu & SUPGIPGETCPU_TPIDRRO_EL0);
     160                    pfnWorker = RTTimeNanoTSSyncInvarWithDeltaUseTpIdRRo;
     161# else
     162#  error "port me"
     163# endif
     164                }
     165#endif /* !AMD64 && !X86 */
    151166                break;
    152167
    153168            case SUPGIPMODE_ASYNC_TSC:
     169#if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
    154170# ifdef IN_RING0
    155171                pfnWorker = fLFence ? RTTimeNanoTSLFenceAsync : RTTimeNanoTSLegacyAsync;
     
    168184                    pfnWorker = fLFence ? RTTimeNanoTSLFenceAsyncUseApicId      : RTTimeNanoTSLegacyAsyncUseApicId;
    169185# endif
     186#else  /* !AMD64 && !X86 */
     187# ifdef IN_RING0
     188                pfnWorker = RTTimeNanoTSASync;
     189# elif defined(RT_ARCH_ARM64)
     190                AssertFatal(pGip->fGetGipCpu & SUPGIPGETCPU_TPIDRRO_EL0);
     191                pfnWorker = RTTimeNanoTSSyncInvarWithDeltaUseTpIdRRo;
     192# else
     193#  error "port me"
     194# endif
     195#endif /* !AMD64 && !X86 */
    170196                break;
    171 #endif
     197
    172198            default:
    173199                AssertFatalMsgFailed(("pVM=%p pGip=%p u32Mode=%#x\n", pVM, pGip, pGip->u32Mode));
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