- Timestamp:
- Mar 26, 2025 7:48:57 AM (3 weeks ago)
- svn:sync-xref-src-repo-rev:
- 168173
- Location:
- trunk/src/VBox/VMM/VMMR3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/GICR3Nem-win.cpp
r108682 r108748 81 81 /* 82 82 * The following definitions appeared in build 27744 allow interacting with the GIC controller, 83 * (there is no official SDK for this yet). 83 * since 27813 the API is public with some changes and available under: 84 * https://github.com/MicrosoftDocs/Virtualization-Documentation/blob/main/virtualization/api/hypervisor-platform/headers/WinHvPlatformDefs.h . 84 85 */ 85 86 /** @todo Better way of defining these which doesn't require casting later on when calling APIs. */ … … 177 178 #define MY_WHV_LOCAL_INTERRUPT_CONTROLLER_STATE_VERSION 1 178 179 179 #define MY_WHV_VIRTUAL_PROCESSOR_STATE_TYPE_LOCAL_INTERRUPT_CTRL (WHV_VIRTUAL_PROCESSOR_STATE_TYPE)0x00001000 180 #define MY_WHV_VIRTUAL_PROCESSOR_STATE_TYPE_GLOBAL_INTERRUPT_CTRL (WHV_VIRTUAL_PROCESSOR_STATE_TYPE)0x00001003 180 #define WHV_VIRTUAL_PROCESSOR_STATE_TYPE_PFN RT_BIT_32(31) 181 #define WHV_VIRTUAL_PROCESSOR_STATE_TYPE_ANY_VP RT_BIT_32(30) 182 183 #define WHvVirtualProcessorStateTypeInterruptControllerState (WHV_VIRTUAL_PROCESSOR_STATE_TYPE)(0 | WHV_VIRTUAL_PROCESSOR_STATE_TYPE_PFN) 184 #define WHvVirtualProcessorStateTypeGlobalInterruptState (WHV_VIRTUAL_PROCESSOR_STATE_TYPE)(6 | WHV_VIRTUAL_PROCESSOR_STATE_TYPE_PFN | WHV_VIRTUAL_PROCESSOR_STATE_TYPE_ANY_VP) 181 185 182 186 … … 372 376 */ 373 377 uint32_t cbWritten = 0; 374 HRESULT hrc = WHvGetVirtualProcessorState(pThis->hPartition, WHV_ANY_VP, MY_WHV_VIRTUAL_PROCESSOR_STATE_TYPE_GLOBAL_INTERRUPT_CTRL,378 HRESULT hrc = WHvGetVirtualProcessorState(pThis->hPartition, WHV_ANY_VP, WHvVirtualProcessorStateTypeGlobalInterruptState, 375 379 NULL, 0, &cbWritten); 376 380 AssertLogRelMsgReturn(hrc == WHV_E_INSUFFICIENT_BUFFER, … … 385 389 VERR_NO_MEMORY); 386 390 387 hrc = WHvGetVirtualProcessorState(pThis->hPartition, WHV_ANY_VP, MY_WHV_VIRTUAL_PROCESSOR_STATE_TYPE_GLOBAL_INTERRUPT_CTRL,391 hrc = WHvGetVirtualProcessorState(pThis->hPartition, WHV_ANY_VP, WHvVirtualProcessorStateTypeGlobalInterruptState, 388 392 pState, cbState, &cbWritten); 389 393 AssertLogRelMsg(SUCCEEDED(hrc), … … 417 421 MY_WHV_LOCAL_INTERRUPT_CONTROLLER_STATE LocalState; 418 422 419 hrc = WHvGetVirtualProcessorState(pThis->hPartition, idCpu, MY_WHV_VIRTUAL_PROCESSOR_STATE_TYPE_LOCAL_INTERRUPT_CTRL,423 hrc = WHvGetVirtualProcessorState(pThis->hPartition, idCpu, WHvVirtualProcessorStateTypeInterruptControllerState, 420 424 &LocalState, sizeof(LocalState), &cbWritten); 421 425 AssertLogRelMsgReturn(SUCCEEDED(hrc), … … 494 498 AssertRCReturnStmt(rc, RTMemTmpFree(pState), rc); 495 499 496 HRESULT hrc = WHvSetVirtualProcessorState(pThis->hPartition, WHV_ANY_VP, MY_WHV_VIRTUAL_PROCESSOR_STATE_TYPE_GLOBAL_INTERRUPT_CTRL,500 HRESULT hrc = WHvSetVirtualProcessorState(pThis->hPartition, WHV_ANY_VP, WHvVirtualProcessorStateTypeGlobalInterruptState, 497 501 pState, cbState); 498 502 RTMemTmpFree(pState); … … 517 521 LocalState.bVersion = MY_WHV_LOCAL_INTERRUPT_CONTROLLER_STATE_VERSION; 518 522 519 hrc = WHvSetVirtualProcessorState(pThis->hPartition, idCpu, MY_WHV_VIRTUAL_PROCESSOR_STATE_TYPE_LOCAL_INTERRUPT_CTRL,523 hrc = WHvSetVirtualProcessorState(pThis->hPartition, idCpu, WHvVirtualProcessorStateTypeInterruptControllerState, 520 524 &LocalState, sizeof(LocalState)); 521 525 AssertLogRelMsgReturn(SUCCEEDED(hrc), -
trunk/src/VBox/VMM/VMMR3/NEMR3Native-win-armv8.cpp
r108411 r108748 656 656 RTGCPHYS GCPhysMmioBaseIts = 0; 657 657 rc = CFGMR3QueryU64(pGicCfg, "ItsMmioBase", &GCPhysMmioBaseIts); 658 if (RT_FAILURE(rc) )658 if (RT_FAILURE(rc) && rc != VERR_CFGM_VALUE_NOT_FOUND) 659 659 return VMSetError(pVM, rc, RT_SRC_POS, 660 660 "Configuration error: Failed to get the \"ItsMmioBase\" value\n"); 661 rc = VINF_SUCCESS; 661 662 662 663 /*
Note:
See TracChangeset
for help on using the changeset viewer.