Changeset 87773 in vbox
- Timestamp:
- Feb 16, 2021 11:36:15 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 142829
- Location:
- trunk
- Files:
-
- 28 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/tm.h
r87767 r87773 273 273 VMM_INT_DECL(int) TMR3GetImportRC(PVM pVM, const char *pszSymbol, PRTRCPTR pRCPtrValue); 274 274 VMM_INT_DECL(int) TMR3TimerCreateDevice(PVM pVM, PPDMDEVINS pDevIns, TMCLOCK enmClock, PFNTMTIMERDEV pfnCallback, 275 void *pvUser, uint32_t fFlags, const char *psz Desc, PTMTIMERHANDLE phTimer);275 void *pvUser, uint32_t fFlags, const char *pszName, PTMTIMERHANDLE phTimer); 276 276 VMM_INT_DECL(int) TMR3TimerCreateUsb(PVM pVM, PPDMUSBINS pUsbIns, TMCLOCK enmClock, PFNTMTIMERUSB pfnCallback, 277 void *pvUser, uint32_t fFlags, const char *psz Desc, PTMTIMERHANDLE phTimer);277 void *pvUser, uint32_t fFlags, const char *pszName, PTMTIMERHANDLE phTimer); 278 278 VMM_INT_DECL(int) TMR3TimerCreateDriver(PVM pVM, PPDMDRVINS pDrvIns, TMCLOCK enmClock, PFNTMTIMERDRV pfnCallback, 279 void *pvUser, uint32_t fFlags, const char *psz Desc, PTMTIMERHANDLE phTimer);279 void *pvUser, uint32_t fFlags, const char *pszName, PTMTIMERHANDLE phTimer); 280 280 VMMR3DECL(int) TMR3TimerCreate(PVM pVM, TMCLOCK enmClock, PFNTMTIMERINT pfnCallback, void *pvUser, uint32_t fFlags, 281 const char *psz Desc, PTMTIMERHANDLE phTimer);281 const char *pszName, PTMTIMERHANDLE phTimer); 282 282 VMMR3DECL(int) TMR3TimerDestroy(PVM pVM, TMTIMERHANDLE hTimer); 283 283 VMM_INT_DECL(int) TMR3TimerDestroyDevice(PVM pVM, PPDMDEVINS pDevIns); -
trunk/src/VBox/Devices/Audio/DevSB16.cpp
r87767 r87773 2430 2430 */ 2431 2431 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, sb16TimerIRQ, pThis, 2432 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, "SB16 IRQ timer", &pThis->hTimerIRQ);2432 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, "SB16 IRQ", &pThis->hTimerIRQ); 2433 2433 AssertRCReturn(rc, rc); 2434 2434 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, sb16TimerIO, pThis, 2435 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, "SB16 IO timer", &pThis->hTimerIO);2435 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, "SB16 IO", &pThis->hTimerIO); 2436 2436 AssertRCReturn(rc, rc); 2437 2437 pThis->cTicksTimerIOInterval = PDMDevHlpTimerGetFreq(pDevIns, pThis->hTimerIO) / uTimerHz; -
trunk/src/VBox/Devices/Graphics/DevVGA.cpp
r87767 r87773 6784 6784 */ 6785 6785 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_REAL, vgaR3TimerRefresh, NULL, 6786 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, "VGA Refresh Timer", &pThis->hRefreshTimer);6786 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, "VGA Refresh", &pThis->hRefreshTimer); 6787 6787 AssertRCReturn(rc, rc); 6788 6788 -
trunk/src/VBox/Devices/Input/DevPS2K.cpp
r87767 r87773 1402 1402 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, ps2kR3ThrottleTimer, pThis, 1403 1403 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_RING0, 1404 "PS2K Throttle Timer", &pThis->hThrottleTimer);1404 "PS2K Throttle", &pThis->hThrottleTimer); 1405 1405 AssertRCReturn(rc, rc); 1406 1406 … … 1410 1410 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, ps2kR3TypematicTimer, pThis, 1411 1411 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_RING0, 1412 "PS2K Typematic Timer", &pThis->hKbdTypematicTimer);1412 "PS2K Typematic", &pThis->hKbdTypematicTimer); 1413 1413 AssertRCReturn(rc, rc); 1414 1414 … … 1417 1417 */ 1418 1418 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, ps2kR3DelayTimer, pThis, 1419 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_RING0, "PS2K Delay Timer", &pThis->hKbdDelayTimer); 1419 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_RING0, 1420 "PS2K Delay", &pThis->hKbdDelayTimer); 1420 1421 AssertRCReturn(rc, rc); 1421 1422 -
trunk/src/VBox/Devices/Input/DevPS2M.cpp
r87767 r87773 1086 1086 int rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_REAL, ps2mR3ThrottleTimer, pThis, 1087 1087 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, 1088 "PS2M Throttle Timer", &pThis->hThrottleTimer);1088 "PS2M Throttle", &pThis->hThrottleTimer); 1089 1089 AssertRCReturn(rc, rc); 1090 1090 … … 1093 1093 */ 1094 1094 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, ps2mR3DelayTimer, pThis, 1095 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_RING0, "PS2M Delay Timer", &pThis->hDelayTimer);1095 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_RING0, "PS2M Delay", &pThis->hDelayTimer); 1096 1096 AssertRCReturn(rc, rc); 1097 1097 -
trunk/src/VBox/Devices/Network/DevE1000.cpp
r87769 r87773 8032 8032 /* Create Transmit Delay Timer */ 8033 8033 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, e1kR3TxDelayTimer, pThis, 8034 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, 8035 "E1000 Transmit Delay Timer", &pThis->hTXDTimer); 8034 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "E1000 Xmit Delay", &pThis->hTXDTimer); 8036 8035 AssertRCReturn(rc, rc); 8037 8036 rc = PDMDevHlpTimerSetCritSect(pDevIns, pThis->hTXDTimer, &pThis->csTx); … … 8044 8043 /* Create Transmit Interrupt Delay Timer */ 8045 8044 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, e1kR3TxIntDelayTimer, pThis, 8046 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, 8047 "E1000 Transmit Interrupt Delay Timer", &pThis->hTIDTimer); 8045 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "E1000 Xmit IRQ Delay", &pThis->hTIDTimer); 8048 8046 AssertRCReturn(rc, rc); 8049 8047 … … 8051 8049 /* Create Transmit Absolute Delay Timer */ 8052 8050 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, e1kR3TxAbsDelayTimer, pThis, 8053 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, 8054 "E1000 Transmit Absolute Delay Timer", &pThis->hTADTimer); 8051 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "E1000 Xmit Abs Delay", &pThis->hTADTimer); 8055 8052 AssertRCReturn(rc, rc); 8056 8053 # endif /* E1K_NO_TAD */ … … 8061 8058 /* Create Receive Interrupt Delay Timer */ 8062 8059 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, e1kR3RxIntDelayTimer, pThis, 8063 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, 8064 "E1000 Receive Interrupt Delay Timer", &pThis->hRIDTimer); 8060 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "E1000 Recv IRQ Delay", &pThis->hRIDTimer); 8065 8061 AssertRCReturn(rc, rc); 8066 8062 8067 8063 /* Create Receive Absolute Delay Timer */ 8068 8064 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, e1kR3RxAbsDelayTimer, pThis, 8069 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, 8070 "E1000 Receive Absolute Delay Timer", &pThis->hRADTimer); 8065 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "E1000 Recv Abs Delay", &pThis->hRADTimer); 8071 8066 AssertRCReturn(rc, rc); 8072 8067 #endif /* E1K_USE_RX_TIMERS */ … … 8074 8069 /* Create Late Interrupt Timer */ 8075 8070 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, e1kR3LateIntTimer, pThis, 8076 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, 8077 "E1000 Late Interrupt Timer", &pThis->hIntTimer); 8071 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "E1000 Late IRQ", &pThis->hIntTimer); 8078 8072 AssertRCReturn(rc, rc); 8079 8073 8080 8074 /* Create Link Up Timer */ 8081 8075 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, e1kR3LinkUpTimer, pThis, 8082 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, 8083 "E1000 Link Up Timer", &pThis->hLUTimer); 8076 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "E1000 Link Up", &pThis->hLUTimer); 8084 8077 AssertRCReturn(rc, rc); 8085 8078 -
trunk/src/VBox/Devices/Network/DevPCNet.cpp
r87768 r87773 5329 5329 #else 5330 5330 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, pcnetR3Timer, NULL, TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, 5331 "PCnet Poll Timer", &pThis->hTimerPoll);5331 "PCnet Poll", &pThis->hTimerPoll); 5332 5332 AssertRCReturn(rc, rc); 5333 5333 rc = PDMDevHlpTimerSetCritSect(pDevIns, pThis->hTimerPoll, &pThis->CritSect); … … 5338 5338 /* Software Interrupt timer */ 5339 5339 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, pcnetR3TimerSoftInt, NULL, 5340 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "PCnet SoftInt Timer", &pThis->hTimerSoftInt);5340 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "PCnet SoftInt", &pThis->hTimerSoftInt); 5341 5341 AssertRCReturn(rc, rc); 5342 5342 rc = PDMDevHlpTimerSetCritSect(pDevIns, pThis->hTimerSoftInt, &pThis->CritSect); … … 5344 5344 } 5345 5345 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, pcnetR3TimerRestore, pThis, 5346 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, "PCnet Restore Timer", &pThis->hTimerRestore);5346 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, "PCnet Restore", &pThis->hTimerRestore); 5347 5347 AssertRCReturn(rc, rc); 5348 5348 -
trunk/src/VBox/Devices/Network/DevVirtioNet.cpp
r87767 r87773 2247 2247 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, vnetR3LinkUpTimer, NULL, 2248 2248 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, 2249 "VirtioNet Link Up Timer", &pThisCC->hLinkUpTimer);2249 "VirtioNet Link Up", &pThisCC->hLinkUpTimer); 2250 2250 AssertRCReturn(rc, rc); 2251 2251 … … 2254 2254 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, vnetR3TxTimer, pThis, 2255 2255 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, 2256 "VirtioNet TX Delay Timer", &pThis->hTxTimer);2256 "VirtioNet TX Delay", &pThis->hTxTimer); 2257 2257 AssertRCReturn(rc, rc); 2258 2258 -
trunk/src/VBox/Devices/Network/DevVirtioNet_1_0.cpp
r87767 r87773 3038 3038 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, virtioNetR3LinkUpTimer, NULL, 3039 3039 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, 3040 "VirtioNet Link Up Timer", &pThisCC->hLinkUpTimer);3040 "VirtioNet Link Up", &pThisCC->hLinkUpTimer); 3041 3041 3042 3042 /* -
trunk/src/VBox/Devices/PC/DevACPI.cpp
r87767 r87773 4388 4388 */ 4389 4389 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL_SYNC, acpiR3PmTimer, NULL /*pvUser*/, 4390 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "ACPI PM Timer", &pThis->hPmTimer);4390 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "ACPI PM", &pThis->hPmTimer); 4391 4391 AssertRCReturn(rc, rc); 4392 4392 -
trunk/src/VBox/Devices/PC/DevPit-i8254.cpp
r87767 r87773 1424 1424 */ 1425 1425 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL_SYNC, pitR3Timer, &pThis->channels[0], 1426 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, 1427 "i8254 Programmable Interval Timer", &pThis->channels[0].hTimer); 1426 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "i8254 PIT", &pThis->channels[0].hTimer); 1428 1427 AssertRCReturn(rc, rc); 1429 1428 rc = PDMDevHlpTimerSetCritSect(pDevIns, pThis->channels[0].hTimer, &pThis->CritSect); -
trunk/src/VBox/Devices/PC/DevRTC.cpp
r87767 r87773 1158 1158 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL_SYNC, rtcTimerPeriodic, pThis, 1159 1159 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_RING0, 1160 "MC146818 RTC (CMOS) -Periodic", &pThis->hPeriodicTimer);1160 "MC146818 RTC Periodic", &pThis->hPeriodicTimer); 1161 1161 AssertRCReturn(rc, rc); 1162 1162 … … 1164 1164 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL_SYNC, rtcR3TimerSecond, pThis, 1165 1165 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_RING0, 1166 "MC146818 RTC (CMOS) -Second", &pThis->hSecondTimer);1166 "MC146818 RTC Second", &pThis->hSecondTimer); 1167 1167 AssertRCReturn(rc, rc); 1168 1168 … … 1170 1170 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL_SYNC, rtcR3TimerSecond2, pThis, 1171 1171 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, 1172 "MC146818 RTC (CMOS) -Second2", &pThis->hSecondTimer2);1172 "MC146818 RTC Second2", &pThis->hSecondTimer2); 1173 1173 AssertRCReturn(rc, rc); 1174 1174 -
trunk/src/VBox/Devices/Serial/UartCore.cpp
r87767 r87773 2071 2071 */ 2072 2072 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, uartR3RcvFifoTimeoutTimer, pThisCC, 2073 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "UART Rcv FIFO Timer",2073 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "UART Rcv FIFO", 2074 2074 &pThis->hTimerRcvFifoTimeout); 2075 2075 AssertRCReturn(rc, rc); … … 2082 2082 */ 2083 2083 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL_SYNC, uartR3TxUnconnectedTimer, pThisCC, 2084 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, "UART TX uncon . Timer",2084 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, "UART TX unconnect", 2085 2085 &pThis->hTimerTxUnconnected); 2086 2086 AssertRCReturn(rc, rc); -
trunk/src/VBox/Devices/Storage/DevAHCI.cpp
r87767 r87773 5937 5937 */ 5938 5938 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, ahciCccTimer, pThis, 5939 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "AHCI CCC Timer", &pThis->hHbaCccTimer);5939 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0, "AHCI CCC", &pThis->hHbaCccTimer); 5940 5940 AssertRCReturn(rc, rc); 5941 5941 -
trunk/src/VBox/Devices/Storage/DevFdc.cpp
r87767 r87773 2933 2933 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL_SYNC, fdcTransferDelayTimer, pThis, 2934 2934 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, 2935 "FDC Transfer Delay Timer", &pThis->hXferDelayTimer);2935 "FDC Transfer Delay", &pThis->hXferDelayTimer); 2936 2936 AssertRCReturn(rc, rc); 2937 2937 … … 2941 2941 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL_SYNC, fdcIrqDelayTimer, pThis, 2942 2942 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, 2943 "FDC IRQ Delay Timer", &pThis->hIrqDelayTimer);2943 "FDC IRQ Delay", &pThis->hIrqDelayTimer); 2944 2944 AssertRCReturn(rc, rc); 2945 2945 -
trunk/src/VBox/Devices/USB/DevOHCI.cpp
r87767 r87773 5848 5848 { 5849 5849 int rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, ohciR3LoadReattachDevices, NULL /*pvUser*/, 5850 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, "OHCI reattach deviceson load",5850 TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, "OHCI reattach on load", 5851 5851 &pThisCC->pLoad->hTimer); 5852 5852 if (RT_SUCCESS(rc)) -
trunk/src/VBox/Devices/USB/VUSBDevice.cpp
r87767 r87773 1813 1813 */ 1814 1814 rc = PDMUsbHlpTimerCreate(pDev->pUsbIns, TMCLOCK_VIRTUAL, vusbDevResetDoneTimer, pDev, 0 /*fFlags*/, 1815 "USB Device Reset Timer",&pDev->hResetTimer);1815 "USB Reset", &pDev->hResetTimer); 1816 1816 AssertRCReturn(rc, rc); 1817 1817 -
trunk/src/VBox/ExtPacks/BusMouseSample/DevBusMouse.cpp
r87767 r87773 717 717 */ 718 718 rc = PDMDevHlpTimerCreate(pDevIns, TMCLOCK_VIRTUAL, bmsR3TimerCallback, pThis, 719 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, "Bus Mouse Timer", &pThis->hMouseTimer);719 TMTIMER_FLAGS_DEFAULT_CRIT_SECT | TMTIMER_FLAGS_NO_RING0, "Bus Mouse", &pThis->hMouseTimer); 720 720 AssertRCReturn(rc, rc); 721 721 -
trunk/src/VBox/VMM/VMMAll/TMAll.cpp
r87771 r87773 78 78 || enmState == VMSTATE_RESETTING \ 79 79 || enmState == VMSTATE_RESETTING_LS ),\ 80 ("pTimer=%p (%s) pCritSect=%p (%s)\n", a_pTimer, R3STRING(a_pTimer->pszDesc), \80 ("pTimer=%p (%s) pCritSect=%p (%s)\n", a_pTimer, (a_pTimer)->szName, \ 81 81 (a_pTimer)->pCritSect, R3STRING(PDMR3CritSectName((a_pTimer)->pCritSect)) )); \ 82 82 } \ … … 112 112 || enmState == VMSTATE_RESETTING \ 113 113 || enmState == VMSTATE_RESETTING_LS ),\ 114 ("pTimer=%p (%s) pCritSect=%p (%s)\n", pTimer, R3STRING(pTimer->pszDesc), \114 ("pTimer=%p (%s) pCritSect=%p (%s)\n", pTimer, pTimer->szName, \ 115 115 (pTimer)->pCritSect, R3STRING(PDMR3CritSectName((pTimer)->pCritSect)) )); \ 116 116 } \ … … 478 478 TMTIMER_SET_HEAD(pQueue, pTimer); 479 479 ASMAtomicWriteU64(&pQueue->u64Expire, u64Expire); 480 DBGFTRACE_U64_TAG2(pTimer->CTX_SUFF(pVM), u64Expire, "tmTimerQueueLinkActive head", R3STRING(pTimer->pszDesc));480 DBGFTRACE_U64_TAG2(pTimer->CTX_SUFF(pVM), u64Expire, "tmTimerQueueLinkActive head", pTimer->szName); 481 481 } 482 482 TMTIMER_SET_PREV(pCur, pTimer); … … 487 487 TMTIMER_SET_NEXT(pCur, pTimer); 488 488 TMTIMER_SET_PREV(pTimer, pCur); 489 DBGFTRACE_U64_TAG2(pTimer->CTX_SUFF(pVM), u64Expire, "tmTimerQueueLinkActive tail", R3STRING(pTimer->pszDesc));489 DBGFTRACE_U64_TAG2(pTimer->CTX_SUFF(pVM), u64Expire, "tmTimerQueueLinkActive tail", pTimer->szName); 490 490 return; 491 491 } … … 496 496 TMTIMER_SET_HEAD(pQueue, pTimer); 497 497 ASMAtomicWriteU64(&pQueue->u64Expire, u64Expire); 498 DBGFTRACE_U64_TAG2(pTimer->CTX_SUFF(pVM), u64Expire, "tmTimerQueueLinkActive empty", R3STRING(pTimer->pszDesc));498 DBGFTRACE_U64_TAG2(pTimer->CTX_SUFF(pVM), u64Expire, "tmTimerQueueLinkActive empty", pTimer->szName); 499 499 } 500 500 } … … 628 628 * Do the scheduling. 629 629 */ 630 Log2(("tmTimerQueueSchedule: %p:{.enmState=%s, .enmClock=%d, .enmType=%d, . pszDesc=%s}\n",631 pTimer, tmTimerState(pTimer->enmState), pTimer->enmClock, pTimer->enmType, R3STRING(pTimer->pszDesc)));630 Log2(("tmTimerQueueSchedule: %p:{.enmState=%s, .enmClock=%d, .enmType=%d, .szName=%s}\n", 631 pTimer, tmTimerState(pTimer->enmState), pTimer->enmClock, pTimer->enmType, pTimer->szName)); 632 632 tmTimerQueueScheduleOne(pVM, pQueue, pTimer); 633 633 Log2(("tmTimerQueueSchedule: %p: new %s\n", pTimer, tmTimerState(pTimer->enmState))); … … 1186 1186 } 1187 1187 ASMAtomicWriteU64(&pTimer->u64Expire, u64Expire); 1188 Log2(("tmTimerSetOptimizedStart: %p:{.pszDesc='%s', .u64Expire=%'RU64}\n", pTimer, R3STRING(pTimer->pszDesc), u64Expire));1188 Log2(("tmTimerSetOptimizedStart: %p:{.pszDesc='%s', .u64Expire=%'RU64}\n", pTimer, pTimer->szName, u64Expire)); 1189 1189 1190 1190 /* … … 1230 1230 1231 1231 AssertMsg(u64Expire >= pVM->tm.s.u64VirtualSync, 1232 ("%'RU64 < %'RU64 %s\n", u64Expire, pVM->tm.s.u64VirtualSync, R3STRING(pTimer->pszDesc)));1232 ("%'RU64 < %'RU64 %s\n", u64Expire, pVM->tm.s.u64VirtualSync, pTimer->szName)); 1233 1233 pTimer->u64Expire = u64Expire; 1234 1234 TM_SET_STATE(pTimer, TMTIMERSTATE_ACTIVE); … … 1254 1254 case TMTIMERSTATE_DESTROY: 1255 1255 case TMTIMERSTATE_FREE: 1256 AssertLogRelMsgFailed(("Invalid timer state %s: %s\n", tmTimerState(enmState), R3STRING(pTimer->pszDesc)));1256 AssertLogRelMsgFailed(("Invalid timer state %s: %s\n", tmTimerState(enmState), pTimer->szName)); 1257 1257 rc = VERR_TM_INVALID_STATE; 1258 1258 break; 1259 1259 1260 1260 default: 1261 AssertMsgFailed(("Unknown timer state %d: %s\n", enmState, R3STRING(pTimer->pszDesc)));1261 AssertMsgFailed(("Unknown timer state %d: %s\n", enmState, pTimer->szName)); 1262 1262 rc = VERR_TM_UNKNOWN_STATE; 1263 1263 break; … … 1291 1291 TMTIMER_ASSERT_CRITSECT(pVM, pTimer); 1292 1292 1293 DBGFTRACE_U64_TAG2(pVM, u64Expire, "TMTimerSet", R3STRING(pTimer->pszDesc));1293 DBGFTRACE_U64_TAG2(pVM, u64Expire, "TMTimerSet", pTimer->szName); 1294 1294 1295 1295 #ifdef VBOX_WITH_STATISTICS … … 1347 1347 TMTIMERSTATE enmState = pTimer->enmState; 1348 1348 Log2(("TMTimerSet: %p:{.enmState=%s, .pszDesc='%s'} cRetries=%d u64Expire=%'RU64\n", 1349 pTimer, tmTimerState(enmState), R3STRING(pTimer->pszDesc), cRetries, u64Expire));1349 pTimer, tmTimerState(enmState), pTimer->szName, cRetries, u64Expire)); 1350 1350 switch (enmState) 1351 1351 { … … 1417 1417 case TMTIMERSTATE_DESTROY: 1418 1418 case TMTIMERSTATE_FREE: 1419 AssertMsgFailed(("Invalid timer state %d (%s)\n", enmState, R3STRING(pTimer->pszDesc)));1419 AssertMsgFailed(("Invalid timer state %d (%s)\n", enmState, pTimer->szName)); 1420 1420 return VERR_TM_INVALID_STATE; 1421 1421 default: 1422 AssertMsgFailed(("Unknown timer state %d (%s)\n", enmState, R3STRING(pTimer->pszDesc)));1422 AssertMsgFailed(("Unknown timer state %d (%s)\n", enmState, pTimer->szName)); 1423 1423 return VERR_TM_UNKNOWN_STATE; 1424 1424 } 1425 1425 } while (cRetries-- > 0); 1426 1426 1427 AssertMsgFailed(("Failed waiting for stable state. state=%d (%s)\n", pTimer->enmState, R3STRING(pTimer->pszDesc)));1427 AssertMsgFailed(("Failed waiting for stable state. state=%d (%s)\n", pTimer->enmState, pTimer->szName)); 1428 1428 STAM_PROFILE_STOP(&pVM->tm.s.CTX_SUFF_Z(StatTimerSet), a); 1429 1429 return VERR_TM_TIMER_UNSTABLE_STATE; … … 1486 1486 uint64_t const u64Expire = cTicksToNext + tmTimerSetRelativeNowWorker(pVM, enmClock, pu64Now); 1487 1487 pTimer->u64Expire = u64Expire; 1488 Log2(("tmTimerSetRelativeOptimizedStart: %p:{.pszDesc='%s', .u64Expire=%'RU64} cTicksToNext=%'RU64\n", pTimer, R3STRING(pTimer->pszDesc), u64Expire, cTicksToNext));1488 Log2(("tmTimerSetRelativeOptimizedStart: %p:{.pszDesc='%s', .u64Expire=%'RU64} cTicksToNext=%'RU64\n", pTimer, pTimer->szName, u64Expire, cTicksToNext)); 1489 1489 1490 1490 /* 1491 1491 * Link the timer into the active list. 1492 1492 */ 1493 DBGFTRACE_U64_TAG2(pVM, u64Expire, "tmTimerSetRelativeOptimizedStart", R3STRING(pTimer->pszDesc));1493 DBGFTRACE_U64_TAG2(pVM, u64Expire, "tmTimerSetRelativeOptimizedStart", pTimer->szName); 1494 1494 tmTimerQueueLinkActive(&pVM->tm.s.CTX_SUFF(paTimerQueues)[enmClock], pTimer, u64Expire); 1495 1495 … … 1561 1561 case TMTIMERSTATE_DESTROY: 1562 1562 case TMTIMERSTATE_FREE: 1563 AssertLogRelMsgFailed(("Invalid timer state %s: %s\n", tmTimerState(enmState), R3STRING(pTimer->pszDesc)));1563 AssertLogRelMsgFailed(("Invalid timer state %s: %s\n", tmTimerState(enmState), pTimer->szName)); 1564 1564 rc = VERR_TM_INVALID_STATE; 1565 1565 break; 1566 1566 1567 1567 default: 1568 AssertMsgFailed(("Unknown timer state %d: %s\n", enmState, R3STRING(pTimer->pszDesc)));1568 AssertMsgFailed(("Unknown timer state %d: %s\n", enmState, pTimer->szName)); 1569 1569 rc = VERR_TM_UNKNOWN_STATE; 1570 1570 break; … … 1598 1598 TMTIMER_ASSERT_CRITSECT(pVM, pTimer); 1599 1599 1600 DBGFTRACE_U64_TAG2(pVM, cTicksToNext, "TMTimerSetRelative", R3STRING(pTimer->pszDesc));1600 DBGFTRACE_U64_TAG2(pVM, cTicksToNext, "TMTimerSetRelative", pTimer->szName); 1601 1601 1602 1602 #ifdef VBOX_WITH_STATISTICS … … 1681 1681 pTimer->u64Expire = cTicksToNext + tmTimerSetRelativeNowWorker(pVM, enmClock, pu64Now); 1682 1682 Log2(("TMTimerSetRelative: %p:{.enmState=%s, .pszDesc='%s', .u64Expire=%'RU64} cRetries=%d [EXP/STOP]\n", 1683 pTimer, tmTimerState(enmState), R3STRING(pTimer->pszDesc), pTimer->u64Expire, cRetries));1683 pTimer, tmTimerState(enmState), pTimer->szName, pTimer->u64Expire, cRetries)); 1684 1684 TM_SET_STATE(pTimer, TMTIMERSTATE_PENDING_SCHEDULE); 1685 1685 tmSchedule(pVM, pTimer); … … 1696 1696 pTimer->u64Expire = cTicksToNext + tmTimerSetRelativeNowWorker(pVM, enmClock, pu64Now); 1697 1697 Log2(("TMTimerSetRelative: %p:{.enmState=%s, .pszDesc='%s', .u64Expire=%'RU64} cRetries=%d [PEND_SCHED]\n", 1698 pTimer, tmTimerState(enmState), R3STRING(pTimer->pszDesc), pTimer->u64Expire, cRetries));1698 pTimer, tmTimerState(enmState), pTimer->szName, pTimer->u64Expire, cRetries)); 1699 1699 TM_SET_STATE(pTimer, TMTIMERSTATE_PENDING_SCHEDULE); 1700 1700 tmSchedule(pVM, pTimer); … … 1711 1711 pTimer->u64Expire = cTicksToNext + tmTimerSetRelativeNowWorker(pVM, enmClock, pu64Now); 1712 1712 Log2(("TMTimerSetRelative: %p:{.enmState=%s, .pszDesc='%s', .u64Expire=%'RU64} cRetries=%d [ACTIVE]\n", 1713 pTimer, tmTimerState(enmState), R3STRING(pTimer->pszDesc), pTimer->u64Expire, cRetries));1713 pTimer, tmTimerState(enmState), pTimer->szName, pTimer->u64Expire, cRetries)); 1714 1714 TM_SET_STATE(pTimer, TMTIMERSTATE_PENDING_RESCHEDULE); 1715 1715 tmSchedule(pVM, pTimer); … … 1726 1726 pTimer->u64Expire = cTicksToNext + tmTimerSetRelativeNowWorker(pVM, enmClock, pu64Now); 1727 1727 Log2(("TMTimerSetRelative: %p:{.enmState=%s, .pszDesc='%s', .u64Expire=%'RU64} cRetries=%d [PEND_RESCH/STOP]\n", 1728 pTimer, tmTimerState(enmState), R3STRING(pTimer->pszDesc), pTimer->u64Expire, cRetries));1728 pTimer, tmTimerState(enmState), pTimer->szName, pTimer->u64Expire, cRetries)); 1729 1729 TM_SET_STATE(pTimer, TMTIMERSTATE_PENDING_RESCHEDULE); 1730 1730 tmSchedule(pVM, pTimer); … … 1753 1753 case TMTIMERSTATE_DESTROY: 1754 1754 case TMTIMERSTATE_FREE: 1755 AssertMsgFailed(("Invalid timer state %d (%s)\n", enmState, R3STRING(pTimer->pszDesc)));1755 AssertMsgFailed(("Invalid timer state %d (%s)\n", enmState, pTimer->szName)); 1756 1756 rc = VERR_TM_INVALID_STATE; 1757 1757 break; 1758 1758 1759 1759 default: 1760 AssertMsgFailed(("Unknown timer state %d (%s)\n", enmState, R3STRING(pTimer->pszDesc)));1760 AssertMsgFailed(("Unknown timer state %d (%s)\n", enmState, pTimer->szName)); 1761 1761 rc = VERR_TM_UNKNOWN_STATE; 1762 1762 break; … … 1774 1774 if (cRetries <= 0) 1775 1775 { 1776 AssertMsgFailed(("Failed waiting for stable state. state=%d (%s)\n", pTimer->enmState, R3STRING(pTimer->pszDesc)));1776 AssertMsgFailed(("Failed waiting for stable state. state=%d (%s)\n", pTimer->enmState, pTimer->szName)); 1777 1777 rc = VERR_TM_TIMER_UNSTABLE_STATE; 1778 1778 tmTimerSetRelativeNowWorker(pVM, enmClock, pu64Now); … … 1905 1905 case TMTIMERSTATE_DESTROY: 1906 1906 case TMTIMERSTATE_FREE: 1907 AssertLogRelMsgFailed(("Invalid timer state %s: %s\n", tmTimerState(enmState), R3STRING(pTimer->pszDesc)));1907 AssertLogRelMsgFailed(("Invalid timer state %s: %s\n", tmTimerState(enmState), pTimer->szName)); 1908 1908 rc = VERR_TM_INVALID_STATE; 1909 1909 break; 1910 1910 1911 1911 default: 1912 AssertMsgFailed(("Unknown timer state %d: %s\n", enmState, R3STRING(pTimer->pszDesc)));1912 AssertMsgFailed(("Unknown timer state %d: %s\n", enmState, pTimer->szName)); 1913 1913 rc = VERR_TM_UNKNOWN_STATE; 1914 1914 break; … … 1961 1961 TMTIMERSTATE enmState = pTimer->enmState; 1962 1962 Log2(("TMTimerStop: %p:{.enmState=%s, .pszDesc='%s'} cRetries=%d\n", 1963 pTimer, tmTimerState(enmState), R3STRING(pTimer->pszDesc), cRetries));1963 pTimer, tmTimerState(enmState), pTimer->szName, cRetries)); 1964 1964 switch (enmState) 1965 1965 { … … 2017 2017 case TMTIMERSTATE_DESTROY: 2018 2018 case TMTIMERSTATE_FREE: 2019 AssertMsgFailed(("Invalid timer state %d (%s)\n", enmState, R3STRING(pTimer->pszDesc)));2019 AssertMsgFailed(("Invalid timer state %d (%s)\n", enmState, pTimer->szName)); 2020 2020 return VERR_TM_INVALID_STATE; 2021 2021 default: 2022 AssertMsgFailed(("Unknown timer state %d (%s)\n", enmState, R3STRING(pTimer->pszDesc)));2022 AssertMsgFailed(("Unknown timer state %d (%s)\n", enmState, pTimer->szName)); 2023 2023 return VERR_TM_UNKNOWN_STATE; 2024 2024 } 2025 2025 } while (cRetries-- > 0); 2026 2026 2027 AssertMsgFailed(("Failed waiting for stable state. state=%d (%s)\n", pTimer->enmState, R3STRING(pTimer->pszDesc)));2027 AssertMsgFailed(("Failed waiting for stable state. state=%d (%s)\n", pTimer->enmState, pTimer->szName)); 2028 2028 STAM_PROFILE_STOP(&pVM->tm.s.CTX_SUFF_Z(StatTimerStop), a); 2029 2029 return VERR_TM_TIMER_UNSTABLE_STATE; … … 2062 2062 } 2063 2063 //Log2(("TMTimerGet: returns %'RU64 (pTimer=%p:{.enmState=%s, .pszDesc='%s'})\n", 2064 // u64, pTimer, tmTimerState(pTimer->enmState), R3STRING(pTimer->pszDesc)));2064 // u64, pTimer, tmTimerState(pTimer->enmState), pTimer->szName)); 2065 2065 return u64; 2066 2066 } … … 2119 2119 case TMTIMERSTATE_PENDING_STOP_SCHEDULE: 2120 2120 Log2(("TMTimerGetExpire: returns ~0 (pTimer=%p:{.enmState=%s, .pszDesc='%s'})\n", 2121 pTimer, tmTimerState(pTimer->enmState), R3STRING(pTimer->pszDesc)));2121 pTimer, tmTimerState(pTimer->enmState), pTimer->szName)); 2122 2122 return UINT64_MAX; 2123 2123 … … 2126 2126 case TMTIMERSTATE_PENDING_SCHEDULE: 2127 2127 Log2(("TMTimerGetExpire: returns %'RU64 (pTimer=%p:{.enmState=%s, .pszDesc='%s'})\n", 2128 pTimer->u64Expire, pTimer, tmTimerState(pTimer->enmState), R3STRING(pTimer->pszDesc)));2128 pTimer->u64Expire, pTimer, tmTimerState(pTimer->enmState), pTimer->szName)); 2129 2129 return pTimer->u64Expire; 2130 2130 … … 2142 2142 case TMTIMERSTATE_DESTROY: 2143 2143 case TMTIMERSTATE_FREE: 2144 AssertMsgFailed(("Invalid timer state %d (%s)\n", enmState, R3STRING(pTimer->pszDesc)));2144 AssertMsgFailed(("Invalid timer state %d (%s)\n", enmState, pTimer->szName)); 2145 2145 Log2(("TMTimerGetExpire: returns ~0 (pTimer=%p:{.enmState=%s, .pszDesc='%s'})\n", 2146 pTimer, tmTimerState(pTimer->enmState), R3STRING(pTimer->pszDesc)));2146 pTimer, tmTimerState(pTimer->enmState), pTimer->szName)); 2147 2147 return UINT64_MAX; 2148 2148 default: 2149 AssertMsgFailed(("Unknown timer state %d (%s)\n", enmState, R3STRING(pTimer->pszDesc)));2149 AssertMsgFailed(("Unknown timer state %d (%s)\n", enmState, pTimer->szName)); 2150 2150 return UINT64_MAX; 2151 2151 } 2152 2152 } while (cRetries-- > 0); 2153 2153 2154 AssertMsgFailed(("Failed waiting for stable state. state=%d (%s)\n", pTimer->enmState, R3STRING(pTimer->pszDesc)));2154 AssertMsgFailed(("Failed waiting for stable state. state=%d (%s)\n", pTimer->enmState, pTimer->szName)); 2155 2155 Log2(("TMTimerGetExpire: returns ~0 (pTimer=%p:{.enmState=%s, .pszDesc='%s'})\n", 2156 pTimer, tmTimerState(pTimer->enmState), R3STRING(pTimer->pszDesc)));2156 pTimer, tmTimerState(pTimer->enmState), pTimer->szName)); 2157 2157 return UINT64_MAX; 2158 2158 } … … 2180 2180 case TMTIMERSTATE_PENDING_STOP_SCHEDULE: 2181 2181 Log2(("TMTimerIsActive: returns false (pTimer=%p:{.enmState=%s, .pszDesc='%s'})\n", 2182 pTimer, tmTimerState(pTimer->enmState), R3STRING(pTimer->pszDesc)));2182 pTimer, tmTimerState(pTimer->enmState), pTimer->szName)); 2183 2183 return false; 2184 2184 … … 2189 2189 case TMTIMERSTATE_PENDING_RESCHEDULE_SET_EXPIRE: 2190 2190 Log2(("TMTimerIsActive: returns true (pTimer=%p:{.enmState=%s, .pszDesc='%s'})\n", 2191 pTimer, tmTimerState(pTimer->enmState), R3STRING(pTimer->pszDesc)));2191 pTimer, tmTimerState(pTimer->enmState), pTimer->szName)); 2192 2192 return true; 2193 2193 … … 2197 2197 case TMTIMERSTATE_DESTROY: 2198 2198 case TMTIMERSTATE_FREE: 2199 AssertMsgFailed(("Invalid timer state %s (%s)\n", tmTimerState(enmState), R3STRING(pTimer->pszDesc)));2199 AssertMsgFailed(("Invalid timer state %s (%s)\n", tmTimerState(enmState), pTimer->szName)); 2200 2200 Log2(("TMTimerIsActive: returns false (pTimer=%p:{.enmState=%s, .pszDesc='%s'})\n", 2201 pTimer, tmTimerState(pTimer->enmState), R3STRING(pTimer->pszDesc)));2201 pTimer, tmTimerState(pTimer->enmState), pTimer->szName)); 2202 2202 return false; 2203 2203 default: 2204 AssertMsgFailed(("Unknown timer state %d (%s)\n", enmState, R3STRING(pTimer->pszDesc)));2204 AssertMsgFailed(("Unknown timer state %d (%s)\n", enmState, pTimer->szName)); 2205 2205 return false; 2206 2206 } -
trunk/src/VBox/VMM/VMMR3/CPUM.cpp
r87766 r87773 4510 4510 { 4511 4511 PVMCPU pVCpu = pVM->apCpusR3[idCpu]; 4512 /* The string cannot live on the stack. It should be safe to call MMR3HeapAPrintf here as 4513 MMR3HyperInitFinalize has already completed at this point. */ 4514 char *pszTimerName = MMR3HeapAPrintf(pVM, MM_TAG_CPUM_CTX, "Nested Guest VMX-preempt. timer %u", idCpu); 4512 char szName[32]; 4513 RTStrPrintf(szName, sizeof(szName), "Nested VMX-preemption %u", idCpu); 4515 4514 int rc = TMR3TimerCreate(pVM, TMCLOCK_VIRTUAL_SYNC, cpumR3VmxPreemptTimerCallback, pVCpu, 4516 TMTIMER_FLAGS_RING0, pszTimerName, &pVCpu->cpum.s.hNestedVmxPreemptTimer);4515 TMTIMER_FLAGS_RING0, szName, &pVCpu->cpum.s.hNestedVmxPreemptTimer); 4517 4516 AssertLogRelRCReturn(rc, rc); 4518 4517 } -
trunk/src/VBox/VMM/VMMR3/GIMHv.cpp
r87766 r87773 518 518 519 519 /* Create the timer and associate the context pointers. */ 520 RTStrPrintf(&pHvStimer->szTimerDesc[0], sizeof(pHvStimer->szTimerDesc), "Hyper-V[%u] Timer%u", pVCpu->idCpu,521 520 char szName[32]; 521 RTStrPrintf(szName, sizeof(szName), "Hyper-V[%u] Timer%u", pVCpu->idCpu, idxStimer); 522 522 rc = TMR3TimerCreate(pVM, TMCLOCK_VIRTUAL_SYNC, gimR3HvTimerCallback, pHvStimer /* pvUser */, 523 TMTIMER_FLAGS_RING0, pHvStimer->szTimerDesc, &pHvStimer->hTimer);523 TMTIMER_FLAGS_RING0, szName, &pHvStimer->hTimer); 524 524 AssertLogRelRCReturn(rc, rc); 525 525 } -
trunk/src/VBox/VMM/VMMR3/PDMDevHlp.cpp
r87766 r87773 422 422 pDevIns->pReg->szName, pDevIns->iInstance, enmClock, pfnCallback, pvUser, fFlags, pszDesc, pszDesc, phTimer)); 423 423 424 if (pDevIns->iInstance > 0) /** @todo use a string cache here later. */ 425 { 426 char *pszDesc2 = MMR3HeapAPrintf(pVM, MM_TAG_PDM_DEVICE_DESC, "%s[%u]", pszDesc, pDevIns->iInstance); 427 if (pszDesc2) 428 pszDesc = pszDesc2; 424 /* Mangle the timer name if there are more than one instance of this device. */ 425 char szName[32]; 426 AssertReturn(strlen(pszDesc) < sizeof(szName) - 3, VERR_INVALID_NAME); 427 if (pDevIns->iInstance > 0) 428 { 429 RTStrPrintf(szName, sizeof(szName), "%s[%u]", pszDesc, pDevIns->iInstance); 430 pszDesc = szName; 429 431 } 430 432 -
trunk/src/VBox/VMM/VMMR3/PDMDriver.cpp
r87772 r87773 1325 1325 LogFlow(("pdmR3DrvHlp_TimerCreate: caller='%s'/%d: enmClock=%d pfnCallback=%p pvUser=%p fFlags=%#x pszDesc=%p:{%s} phTimer=%p\n", 1326 1326 pDrvIns->pReg->szName, pDrvIns->iInstance, enmClock, pfnCallback, pvUser, fFlags, pszDesc, pszDesc, phTimer)); 1327 1328 /* Mangle the timer name if there are more than once instance of this driver. */ 1329 char szName[32]; 1330 AssertReturn(strlen(pszDesc) < sizeof(szName) - 3, VERR_INVALID_NAME); 1331 if (pDrvIns->iInstance > 0) 1332 { 1333 RTStrPrintf(szName, sizeof(szName), "%s[%u]", pszDesc, pDrvIns->iInstance); 1334 pszDesc = szName; 1335 } 1327 1336 1328 1337 /* Clear the ring-0 flag if the driver isn't configured for ring-0. */ -
trunk/src/VBox/VMM/VMMR3/PDMQueue.cpp
r87766 r87773 113 113 if (cMilliesInterval) 114 114 { 115 rc = TMR3TimerCreate(pVM, TMCLOCK_REAL, pdmR3QueueTimer, pQueue, TMTIMER_FLAGS_NO_RING0, "Queue timer", &pQueue->hTimer); 115 char szName[32]; 116 RTStrPrintf(szName, sizeof(szName), "Queue %s", pQueue->pszName); 117 rc = TMR3TimerCreate(pVM, TMCLOCK_REAL, pdmR3QueueTimer, pQueue, TMTIMER_FLAGS_NO_RING0, szName, &pQueue->hTimer); 116 118 if (RT_SUCCESS(rc)) 117 119 { -
trunk/src/VBox/VMM/VMMR3/PDMUsb.cpp
r87766 r87773 1828 1828 fFlags |= TMTIMER_FLAGS_NO_RING0; 1829 1829 1830 /** @todo use a string cache here later. */ 1831 char *pszDesc2 = MMR3HeapAPrintf(pVM, MM_TAG_PDM_USB_DESC, "%s[%s:%u]", pszDesc, pUsbIns->Internal.s.pUsbDev->pReg->szName, pUsbIns->iInstance); 1832 if (pszDesc2) 1833 pszDesc = pszDesc2; 1830 /* Mangle the timer name if there are more than one instance of this device. */ 1831 char szName[32]; 1832 AssertReturn(strlen(pszDesc) < sizeof(szName) - 8, VERR_INVALID_NAME); 1833 if (pUsbIns->iInstance > 0) 1834 { 1835 RTStrPrintf(szName, sizeof(szName), "%s[%u:%s]", pszDesc, pUsbIns->iInstance, pUsbIns->Internal.s.pUsbDev->pReg->szName); 1836 pszDesc = szName; 1837 } 1834 1838 1835 1839 int rc = TMR3TimerCreateUsb(pVM, pUsbIns, enmClock, pfnCallback, pvUser, fFlags, pszDesc, phTimer); -
trunk/src/VBox/VMM/VMMR3/TM.cpp
r87771 r87773 1500 1500 * @param enmClock The timer clock. 1501 1501 * @param fFlags TMTIMER_FLAGS_XXX. 1502 * @param psz Desc The timer description.1502 * @param pszName The timer name. 1503 1503 * @param ppTimer Where to store the timer pointer on success. 1504 1504 */ 1505 static int tmr3TimerCreate(PVM pVM, TMCLOCK enmClock, uint32_t fFlags, const char *pszDesc, PPTMTIMERR3 ppTimer) 1506 { 1505 static int tmr3TimerCreate(PVM pVM, TMCLOCK enmClock, uint32_t fFlags, const char *pszName, PPTMTIMERR3 ppTimer) 1506 { 1507 PTMTIMERR3 pTimer; 1508 1509 /* 1510 * Validate input. 1511 */ 1507 1512 VM_ASSERT_EMT(pVM); 1508 1513 AssertReturn((fFlags & (TMTIMER_FLAGS_RING0 | TMTIMER_FLAGS_NO_RING0)) != (TMTIMER_FLAGS_RING0 | TMTIMER_FLAGS_NO_RING0), 1509 1514 VERR_INVALID_FLAGS); 1515 AssertPtrReturn(pszName, VERR_INVALID_POINTER); 1516 size_t const cchName = strlen(pszName); 1517 AssertMsgReturn(cchName < sizeof(pTimer->szName), ("timer name too long: %s\n", pszName), VERR_INVALID_NAME); 1518 AssertMsgReturn(cchName > 2, ("Too short timer name: %s\n", pszName), VERR_INVALID_NAME); 1510 1519 1511 1520 /* 1512 1521 * Allocate the timer. 1513 1522 */ 1514 PTMTIMERR3 pTimer = NULL;1515 1523 if (pVM->tm.s.pFree && VM_IS_EMT(pVM)) 1516 1524 { … … 1519 1527 Log3(("TM: Recycling timer %p, new free head %p.\n", pTimer, pTimer->pBigNext)); 1520 1528 } 1529 else 1530 pTimer = NULL; 1521 1531 1522 1532 if (!pTimer) … … 1542 1552 pTimer->pvUser = NULL; 1543 1553 pTimer->pCritSect = NULL; 1544 pTimer->pszDesc = pszDesc; 1554 memcpy(pTimer->szName, pszName, cchName); 1555 pTimer->szName[cchName] = '\0'; 1545 1556 1546 1557 /* insert into the list of created timers. */ … … 1556 1567 TM_UNLOCK_TIMERS(pVM); 1557 1568 1569 #ifdef VBOX_WITH_STATISTICS 1558 1570 /* 1559 1571 * Register statistics. 1560 1572 */ 1561 #ifdef VBOX_WITH_STATISTICS1562 1563 1573 STAMR3RegisterF(pVM, &pTimer->StatTimer, STAMTYPE_PROFILE, STAMVISIBILITY_ALWAYS, STAMUNIT_TICKS_PER_CALL, 1564 tmR3TimerClockName(pTimer), "/TM/Timers/%s", p szDesc);1574 tmR3TimerClockName(pTimer), "/TM/Timers/%s", pTimer->szName); 1565 1575 STAMR3RegisterF(pVM, &pTimer->StatCritSectEnter, STAMTYPE_PROFILE, STAMVISIBILITY_ALWAYS, STAMUNIT_TICKS_PER_CALL, 1566 "", "/TM/Timers/%s/CritSectEnter", p szDesc);1576 "", "/TM/Timers/%s/CritSectEnter", pTimer->szName); 1567 1577 STAMR3RegisterF(pVM, &pTimer->StatGet, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_CALLS, 1568 "", "/TM/Timers/%s/Get", p szDesc);1578 "", "/TM/Timers/%s/Get", pTimer->szName); 1569 1579 STAMR3RegisterF(pVM, &pTimer->StatSetAbsolute, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_CALLS, 1570 "", "/TM/Timers/%s/SetAbsolute", p szDesc);1580 "", "/TM/Timers/%s/SetAbsolute", pTimer->szName); 1571 1581 STAMR3RegisterF(pVM, &pTimer->StatSetRelative, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_CALLS, 1572 "", "/TM/Timers/%s/SetRelative", p szDesc);1582 "", "/TM/Timers/%s/SetRelative", pTimer->szName); 1573 1583 STAMR3RegisterF(pVM, &pTimer->StatStop, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_CALLS, 1574 "", "/TM/Timers/%s/Stop", p szDesc);1584 "", "/TM/Timers/%s/Stop", pTimer->szName); 1575 1585 #endif 1576 1586 … … 1590 1600 * @param pvUser The user argument to the callback. 1591 1601 * @param fFlags Timer creation flags, see grp_tm_timer_flags. 1592 * @param pszDesc Pointer to description string which must stay around 1593 * until the timer is fully destroyed (i.e. a bit after TMTimerDestroy()). 1602 * @param pszName Timer name (will be copied). Max 31 chars. 1594 1603 * @param phTimer Where to store the timer handle on success. 1595 1604 */ 1596 1605 VMM_INT_DECL(int) TMR3TimerCreateDevice(PVM pVM, PPDMDEVINS pDevIns, TMCLOCK enmClock, 1597 1606 PFNTMTIMERDEV pfnCallback, void *pvUser, 1598 uint32_t fFlags, const char *psz Desc, PTMTIMERHANDLE phTimer)1607 uint32_t fFlags, const char *pszName, PTMTIMERHANDLE phTimer) 1599 1608 { 1600 1609 AssertReturn(!(fFlags & ~(TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0 | TMTIMER_FLAGS_NO_RING0)), … … 1605 1614 */ 1606 1615 PTMTIMER pTimer; 1607 int rc = tmr3TimerCreate(pVM, enmClock, fFlags, psz Desc, &pTimer);1616 int rc = tmr3TimerCreate(pVM, enmClock, fFlags, pszName, &pTimer); 1608 1617 if (RT_SUCCESS(rc)) 1609 1618 { … … 1615 1624 pTimer->pCritSect = PDMR3DevGetCritSect(pVM, pDevIns); 1616 1625 *phTimer = pTimer->hSelf; 1617 Log(("TM: Created device timer %p clock %d callback %p '%s'\n", phTimer, enmClock, pfnCallback, psz Desc));1626 Log(("TM: Created device timer %p clock %d callback %p '%s'\n", phTimer, enmClock, pfnCallback, pszName)); 1618 1627 } 1619 1628 … … 1634 1643 * @param pvUser The user argument to the callback. 1635 1644 * @param fFlags Timer creation flags, see grp_tm_timer_flags. 1636 * @param pszDesc Pointer to description string which must stay around 1637 * until the timer is fully destroyed (i.e. a bit after TMTimerDestroy()). 1645 * @param pszName Timer name (will be copied). Max 31 chars. 1638 1646 * @param phTimer Where to store the timer handle on success. 1639 1647 */ 1640 1648 VMM_INT_DECL(int) TMR3TimerCreateUsb(PVM pVM, PPDMUSBINS pUsbIns, TMCLOCK enmClock, 1641 1649 PFNTMTIMERUSB pfnCallback, void *pvUser, 1642 uint32_t fFlags, const char *psz Desc, PTMTIMERHANDLE phTimer)1650 uint32_t fFlags, const char *pszName, PTMTIMERHANDLE phTimer) 1643 1651 { 1644 1652 AssertReturn(!(fFlags & ~(TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_NO_RING0)), VERR_INVALID_PARAMETER); … … 1648 1656 */ 1649 1657 PTMTIMER pTimer; 1650 int rc = tmr3TimerCreate(pVM, enmClock, fFlags, psz Desc, &pTimer);1658 int rc = tmr3TimerCreate(pVM, enmClock, fFlags, pszName, &pTimer); 1651 1659 if (RT_SUCCESS(rc)) 1652 1660 { … … 1663 1671 //} 1664 1672 *phTimer = pTimer->hSelf; 1665 Log(("TM: Created USB device timer %p clock %d callback %p '%s'\n", *phTimer, enmClock, pfnCallback, psz Desc));1673 Log(("TM: Created USB device timer %p clock %d callback %p '%s'\n", *phTimer, enmClock, pfnCallback, pszName)); 1666 1674 } 1667 1675 … … 1680 1688 * @param pvUser The user argument to the callback. 1681 1689 * @param fFlags Timer creation flags, see grp_tm_timer_flags. 1682 * @param pszDesc Pointer to description string which must stay around 1683 * until the timer is fully destroyed (i.e. a bit after TMTimerDestroy()). 1690 * @param pszName Timer name (will be copied). Max 31 chars. 1684 1691 * @param phTimer Where to store the timer handle on success. 1685 1692 */ 1686 1693 VMM_INT_DECL(int) TMR3TimerCreateDriver(PVM pVM, PPDMDRVINS pDrvIns, TMCLOCK enmClock, PFNTMTIMERDRV pfnCallback, void *pvUser, 1687 uint32_t fFlags, const char *psz Desc, PTMTIMERHANDLE phTimer)1694 uint32_t fFlags, const char *pszName, PTMTIMERHANDLE phTimer) 1688 1695 { 1689 1696 AssertReturn(!(fFlags & ~(TMTIMER_FLAGS_NO_CRIT_SECT | TMTIMER_FLAGS_RING0 | TMTIMER_FLAGS_NO_RING0)), … … 1694 1701 */ 1695 1702 PTMTIMER pTimer; 1696 int rc = tmr3TimerCreate(pVM, enmClock, fFlags, psz Desc, &pTimer);1703 int rc = tmr3TimerCreate(pVM, enmClock, fFlags, pszName, &pTimer); 1697 1704 if (RT_SUCCESS(rc)) 1698 1705 { … … 1702 1709 pTimer->pvUser = pvUser; 1703 1710 *phTimer = pTimer->hSelf; 1704 Log(("TM: Created device timer %p clock %d callback %p '%s'\n", *phTimer, enmClock, pfnCallback, psz Desc));1711 Log(("TM: Created device timer %p clock %d callback %p '%s'\n", *phTimer, enmClock, pfnCallback, pszName)); 1705 1712 } 1706 1713 … … 1718 1725 * @param pvUser User argument to be passed to the callback. 1719 1726 * @param fFlags Timer creation flags, see grp_tm_timer_flags. 1720 * @param pszDesc Pointer to description string which must stay around 1721 * until the timer is fully destroyed (i.e. a bit after TMTimerDestroy()). 1727 * @param pszName Timer name (will be copied). Max 31 chars. 1722 1728 * @param phTimer Where to store the timer handle on success. 1723 1729 */ 1724 1730 VMMR3DECL(int) TMR3TimerCreate(PVM pVM, TMCLOCK enmClock, PFNTMTIMERINT pfnCallback, void *pvUser, 1725 uint32_t fFlags, const char *psz Desc, PTMTIMERHANDLE phTimer)1731 uint32_t fFlags, const char *pszName, PTMTIMERHANDLE phTimer) 1726 1732 { 1727 1733 AssertReturn(fFlags & (TMTIMER_FLAGS_RING0 | TMTIMER_FLAGS_NO_RING0), VERR_INVALID_FLAGS); … … 1733 1739 */ 1734 1740 PTMTIMER pTimer; 1735 int rc = tmr3TimerCreate(pVM, enmClock, fFlags, psz Desc, &pTimer);1741 int rc = tmr3TimerCreate(pVM, enmClock, fFlags, pszName, &pTimer); 1736 1742 if (RT_SUCCESS(rc)) 1737 1743 { … … 1740 1746 pTimer->pvUser = pvUser; 1741 1747 *phTimer = pTimer->hSelf; 1742 Log(("TM: Created internal timer %p clock %d callback %p '%s'\n", pTimer, enmClock, pfnCallback, psz Desc));1748 Log(("TM: Created internal timer %p clock %d callback %p '%s'\n", pTimer, enmClock, pfnCallback, pszName)); 1743 1749 } 1744 1750 … … 1764 1770 AssertMsg( !pTimer->pCritSect 1765 1771 || VMR3GetState(pVM) != VMSTATE_RUNNING 1766 || PDMCritSectIsOwner(pTimer->pCritSect), ("%s\n", pTimer-> pszDesc));1772 || PDMCritSectIsOwner(pTimer->pCritSect), ("%s\n", pTimer->szName)); 1767 1773 1768 1774 /* … … 1777 1783 */ 1778 1784 TMTIMERSTATE const enmState = pTimer->enmState; 1779 Log2(("TMTimerDestroy: %p:{.enmState=%s, . pszDesc='%s'} cRetries=%d\n",1780 pTimer, tmTimerState(enmState), R3STRING(pTimer->pszDesc), cRetries));1785 Log2(("TMTimerDestroy: %p:{.enmState=%s, .szName='%s'} cRetries=%d\n", 1786 pTimer, tmTimerState(enmState), pTimer->szName, cRetries)); 1781 1787 switch (enmState) 1782 1788 { … … 1806 1812 case TMTIMERSTATE_PENDING_SCHEDULE_SET_EXPIRE: 1807 1813 case TMTIMERSTATE_PENDING_RESCHEDULE_SET_EXPIRE: 1808 AssertMsgFailed(("%p:.enmState=%s %s\n", pTimer, tmTimerState(enmState), pTimer-> pszDesc));1814 AssertMsgFailed(("%p:.enmState=%s %s\n", pTimer, tmTimerState(enmState), pTimer->szName)); 1809 1815 TM_UNLOCK_TIMERS(pVM); 1810 1816 if (!RTThreadYield()) 1811 1817 RTThreadSleep(1); 1812 AssertMsgReturn(cRetries > 0, ("Failed waiting for stable state. state=%d (%s)\n", pTimer->enmState, pTimer-> pszDesc),1818 AssertMsgReturn(cRetries > 0, ("Failed waiting for stable state. state=%d (%s)\n", pTimer->enmState, pTimer->szName), 1813 1819 VERR_TM_UNSTABLE_STATE); 1814 1820 TM_LOCK_TIMERS(pVM); … … 1824 1830 1825 1831 default: 1826 AssertMsgFailed(("Unknown timer state %d (%s)\n", enmState, R3STRING(pTimer->pszDesc)));1832 AssertMsgFailed(("Unknown timer state %d (%s)\n", enmState, pTimer->szName)); 1827 1833 TM_UNLOCK_TIMERS(pVM); 1828 1834 return VERR_TM_UNKNOWN_STATE; … … 1837 1843 if (fRc) 1838 1844 break; 1839 AssertMsgFailed(("%p:.enmState=%s %s\n", pTimer, tmTimerState(enmState), pTimer-> pszDesc));1845 AssertMsgFailed(("%p:.enmState=%s %s\n", pTimer, tmTimerState(enmState), pTimer->szName)); 1840 1846 TM_UNLOCK_TIMERS(pVM); 1841 AssertMsgReturn(cRetries > 0, ("Failed waiting for stable state. state=%d (%s)\n", pTimer->enmState, pTimer-> pszDesc),1847 AssertMsgReturn(cRetries > 0, ("Failed waiting for stable state. state=%d (%s)\n", pTimer->enmState, pTimer->szName), 1842 1848 VERR_TM_UNSTABLE_STATE); 1843 1849 TM_LOCK_TIMERS(pVM); … … 1881 1887 #ifdef VBOX_WITH_STATISTICS 1882 1888 char szPrefix[128]; 1883 RTStrPrintf(szPrefix, sizeof(szPrefix), "/TM/Timers/%s", pTimer-> pszDesc);1889 RTStrPrintf(szPrefix, sizeof(szPrefix), "/TM/Timers/%s", pTimer->szName); 1884 1890 STAMR3DeregisterByPrefix(pVM->pUVM, szPrefix); 1885 1891 #endif … … 2266 2272 STAM_PROFILE_STOP(&pTimer->StatCritSectEnter, Locking); 2267 2273 } 2268 Log2(("tmR3TimerQueueRun: %p:{.enmState=%s, .enmClock=%d, .enmType=%d, u64Expire=%llx (now=%llx) . pszDesc=%s}\n",2269 pTimer, tmTimerState(pTimer->enmState), pTimer->enmClock, pTimer->enmType, pTimer->u64Expire, u64Now, pTimer-> pszDesc));2274 Log2(("tmR3TimerQueueRun: %p:{.enmState=%s, .enmClock=%d, .enmType=%d, u64Expire=%llx (now=%llx) .szName='%s'}\n", 2275 pTimer, tmTimerState(pTimer->enmState), pTimer->enmClock, pTimer->enmType, pTimer->u64Expire, u64Now, pTimer->szName)); 2270 2276 bool fRc; 2271 2277 TM_TRY_SET_STATE(pTimer, TMTIMERSTATE_EXPIRED_GET_UNLINK, TMTIMERSTATE_ACTIVE, fRc); … … 2298 2304 case TMTIMERTYPE_INTERNAL: pTimer->u.Internal.pfnTimer(pVM, pTimer->hSelf, pTimer->pvUser); break; 2299 2305 default: 2300 AssertMsgFailed(("Invalid timer type %d (%s)\n", pTimer->enmType, pTimer-> pszDesc));2306 AssertMsgFailed(("Invalid timer type %d (%s)\n", pTimer->enmType, pTimer->szName)); 2301 2307 break; 2302 2308 } … … 2459 2465 } 2460 2466 2461 Log2(("tmR3TimerQueueRun: %p:{.enmState=%s, .enmClock=%d, .enmType=%d, u64Expire=%llx (now=%llx) . pszDesc=%s}\n",2462 pTimer, tmTimerState(pTimer->enmState), pTimer->enmClock, pTimer->enmType, pTimer->u64Expire, u64Now, pTimer-> pszDesc));2467 Log2(("tmR3TimerQueueRun: %p:{.enmState=%s, .enmClock=%d, .enmType=%d, u64Expire=%llx (now=%llx) .szName='%s'}\n", 2468 pTimer, tmTimerState(pTimer->enmState), pTimer->enmClock, pTimer->enmType, pTimer->u64Expire, u64Now, pTimer->szName)); 2463 2469 2464 2470 /* Advance the clock - don't permit timers to be out of order or armed 2465 2471 in the 'past'. */ 2466 2472 #ifdef VBOX_STRICT 2467 AssertMsg(pTimer->u64Expire >= u64Prev, ("%'RU64 < %'RU64 %s\n", pTimer->u64Expire, u64Prev, pTimer-> pszDesc));2473 AssertMsg(pTimer->u64Expire >= u64Prev, ("%'RU64 < %'RU64 %s\n", pTimer->u64Expire, u64Prev, pTimer->szName)); 2468 2474 u64Prev = pTimer->u64Expire; 2469 2475 #endif … … 2482 2488 case TMTIMERTYPE_INTERNAL: pTimer->u.Internal.pfnTimer(pVM, pTimer->hSelf, pTimer->pvUser); break; 2483 2489 default: 2484 AssertMsgFailed(("Invalid timer type %d (%s)\n", pTimer->enmType, pTimer-> pszDesc));2490 AssertMsgFailed(("Invalid timer type %d (%s)\n", pTimer->enmType, pTimer->szName)); 2485 2491 break; 2486 2492 } … … 2713 2719 PTMTIMER pTimer; 2714 2720 TMTIMER_HANDLE_TO_PTR_RETURN(pVM, hTimer, pTimer); 2715 LogFlow(("TMR3TimerSave: %p:{enmState=%s, . pszDesc={%s}} pSSM=%p\n", pTimer, tmTimerState(pTimer->enmState), pTimer->pszDesc, pSSM));2721 LogFlow(("TMR3TimerSave: %p:{enmState=%s, .szName='%s'} pSSM=%p\n", pTimer, tmTimerState(pTimer->enmState), pTimer->szName, pSSM)); 2716 2722 2717 2723 switch (pTimer->enmState) … … 2724 2730 case TMTIMERSTATE_PENDING_SCHEDULE_SET_EXPIRE: 2725 2731 case TMTIMERSTATE_PENDING_RESCHEDULE_SET_EXPIRE: 2726 AssertMsgFailed(("u64Expire is being updated! (%s)\n", pTimer-> pszDesc));2732 AssertMsgFailed(("u64Expire is being updated! (%s)\n", pTimer->szName)); 2727 2733 if (!RTThreadYield()) 2728 2734 RTThreadSleep(1); … … 2738 2744 case TMTIMERSTATE_DESTROY: 2739 2745 case TMTIMERSTATE_FREE: 2740 AssertMsgFailed(("Invalid timer state %d %s (%s)\n", pTimer->enmState, tmTimerState(pTimer->enmState), pTimer-> pszDesc));2746 AssertMsgFailed(("Invalid timer state %d %s (%s)\n", pTimer->enmState, tmTimerState(pTimer->enmState), pTimer->szName)); 2741 2747 return SSMR3HandleSetStatus(pSSM, VERR_TM_INVALID_STATE); 2742 2748 } 2743 2749 2744 AssertMsgFailed(("Unknown timer state %d (%s)\n", pTimer->enmState, pTimer-> pszDesc));2750 AssertMsgFailed(("Unknown timer state %d (%s)\n", pTimer->enmState, pTimer->szName)); 2745 2751 return SSMR3HandleSetStatus(pSSM, VERR_TM_UNKNOWN_STATE); 2746 2752 } … … 2761 2767 TMTIMER_HANDLE_TO_PTR_RETURN(pVM, hTimer, pTimer); 2762 2768 Assert(pSSM); 2763 LogFlow(("TMR3TimerLoad: %p:{enmState=%s, . pszDesc={%s}} pSSM=%p\n", pTimer, tmTimerState(pTimer->enmState), pTimer->pszDesc, pSSM));2769 LogFlow(("TMR3TimerLoad: %p:{enmState=%s, .szName='%s'} pSSM=%p\n", pTimer, tmTimerState(pTimer->enmState), pTimer->szName, pSSM)); 2764 2770 2765 2771 /* … … 2914 2920 AssertReturn(!pTimer->pCritSect, VERR_ALREADY_EXISTS); 2915 2921 AssertReturn(pTimer->enmState == TMTIMERSTATE_STOPPED, VERR_INVALID_STATE); 2916 LogFlow(("pTimer=%p (%s) pCritSect=%p (%s)\n", pTimer, pTimer-> pszDesc, pCritSect, pszName));2922 LogFlow(("pTimer=%p (%s) pCritSect=%p (%s)\n", pTimer, pTimer->szName, pCritSect, pszName)); 2917 2923 2918 2924 pTimer->pCritSect = pCritSect; … … 3700 3706 pTimer->uHzHint, 3701 3707 tmTimerState(pTimer->enmState), 3702 pTimer-> pszDesc);3708 pTimer->szName); 3703 3709 } 3704 3710 TM_UNLOCK_TIMERS(pVM); … … 3746 3752 pTimer->uHzHint, 3747 3753 tmTimerState(pTimer->enmState), 3748 pTimer-> pszDesc);3754 pTimer->szName); 3749 3755 } 3750 3756 TM_UNLOCK_TIMERS(pVM); -
trunk/src/VBox/VMM/include/GIMHvInternal.h
r87766 r87773 1273 1273 /** Synthetic timer count MSR. */ 1274 1274 uint64_t uStimerCountMsr; 1275 /** Timer description. */1276 char szTimerDesc[24];1277 1278 1275 } GIMHVSTIMER; 1279 1276 /** Pointer to per-VCPU Hyper-V synthetic timer. */ -
trunk/src/VBox/VMM/include/TMInternal.h
r87771 r87773 190 190 /** Pointer to the previous timer in the list of all created timers. (TM::pTimers) */ 191 191 PTMTIMERR3 pBigPrev; 192 // /** The timer name. */ 193 // char szName[32] 194 /** Pointer to the timer description. */ 195 R3PTRTYPE(const char *) pszDesc; 196 #if HC_ARCH_BITS == 32 197 uint32_t padding0; /**< pad structure to multiple of 8 bytes. */ 198 #endif 192 /** The timer name. */ 193 char szName[32]; 199 194 200 195 #ifdef VBOX_WITH_STATISTICS
Note:
See TracChangeset
for help on using the changeset viewer.