Changeset 12970 in vbox for trunk/src/VBox/VMM/VMMGC
- Timestamp:
- Oct 3, 2008 7:04:11 AM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 37403
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMGC/PDMGCDevice.cpp
r12799 r12970 48 48 # define PDMDEV_ASSERT_DEVINS(pDevIns) do { Assert(VALID_PTR(pDevIns)); \ 49 49 Assert(pDevIns->u32Version == PDM_DEVINS_VERSION); \ 50 Assert(pDevIns->pvInstanceData GC == (void *)&pDevIns->achInstanceData[0]); \50 Assert(pDevIns->pvInstanceDataRC == (void *)&pDevIns->achInstanceData[0]); \ 51 51 } while (0) 52 52 #else … … 59 59 *******************************************************************************/ 60 60 __BEGIN_DECLS 61 extern DECLEXPORT(const PDMDEVHLP GC) g_pdmGCDevHlp;61 extern DECLEXPORT(const PDMDEVHLPRC) g_pdmRCDevHlp; 62 62 extern DECLEXPORT(const PDMPICHLPRC) g_pdmRCPicHlp; 63 63 extern DECLEXPORT(const PDMAPICHLPRC) g_pdmRCApicHlp; … … 136 136 * The Guest Context Device Helper Callbacks. 137 137 */ 138 extern DECLEXPORT(const PDMDEVHLP GC) g_pdmGCDevHlp =139 { 140 PDM_DEVHLP GC_VERSION,138 extern DECLEXPORT(const PDMDEVHLPRC) g_pdmRCDevHlp = 139 { 140 PDM_DEVHLPRC_VERSION, 141 141 pdmGCDevHlp_PCISetIrq, 142 142 pdmGCDevHlp_ISASetIrq, … … 149 149 pdmGCDevHlp_VMSetRuntimeErrorV, 150 150 pdmGCDevHlp_PATMSetMMIOPatchInfo, 151 PDM_DEVHLP GC_VERSION151 PDM_DEVHLPRC_VERSION 152 152 }; 153 153 … … 211 211 212 212 213 /** @copydoc PDMDEVHLP GC::pfnPCISetIrq */213 /** @copydoc PDMDEVHLPRC::pfnPCISetIrq */ 214 214 static DECLCALLBACK(void) pdmGCDevHlp_PCISetIrq(PPDMDEVINS pDevIns, int iIrq, int iLevel) 215 215 { … … 217 217 LogFlow(("pdmGCDevHlp_PCISetIrq: caller=%p/%d: iIrq=%d iLevel=%d\n", pDevIns, pDevIns->iInstance, iIrq, iLevel)); 218 218 219 PVM pVM = pDevIns->Internal.s.pVM GC;220 PPCIDEVICE pPciDev = pDevIns->Internal.s.pPciDevice GC;221 PPDMPCIBUS pPciBus = pDevIns->Internal.s.pPciBus GC;219 PVM pVM = pDevIns->Internal.s.pVMRC; 220 PPCIDEVICE pPciDev = pDevIns->Internal.s.pPciDeviceRC; 221 PPDMPCIBUS pPciBus = pDevIns->Internal.s.pPciBusRC; 222 222 if ( pPciDev 223 223 && pPciBus … … 249 249 250 250 251 /** @copydoc PDMDEVHLP GC::pfnPCISetIrq */251 /** @copydoc PDMDEVHLPRC::pfnPCISetIrq */ 252 252 static DECLCALLBACK(void) pdmGCDevHlp_ISASetIrq(PPDMDEVINS pDevIns, int iIrq, int iLevel) 253 253 { … … 255 255 LogFlow(("pdmGCDevHlp_ISASetIrq: caller=%p/%d: iIrq=%d iLevel=%d\n", pDevIns, pDevIns->iInstance, iIrq, iLevel)); 256 256 257 pdmGCIsaSetIrq(pDevIns->Internal.s.pVM GC, iIrq, iLevel);257 pdmGCIsaSetIrq(pDevIns->Internal.s.pVMRC, iIrq, iLevel); 258 258 259 259 LogFlow(("pdmGCDevHlp_ISASetIrq: caller=%p/%d: returns void\n", pDevIns, pDevIns->iInstance)); … … 261 261 262 262 263 /** @copydoc PDMDEVHLP GC::pfnPhysRead */263 /** @copydoc PDMDEVHLPRC::pfnPhysRead */ 264 264 static DECLCALLBACK(void) pdmGCDevHlp_PhysRead(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, void *pvBuf, size_t cbRead) 265 265 { … … 268 268 pDevIns, pDevIns->iInstance, GCPhys, pvBuf, cbRead)); 269 269 270 PGMPhysRead(pDevIns->Internal.s.pVM GC, GCPhys, pvBuf, cbRead);270 PGMPhysRead(pDevIns->Internal.s.pVMRC, GCPhys, pvBuf, cbRead); 271 271 272 272 Log(("pdmGCDevHlp_PhysRead: caller=%p/%d: returns void\n", pDevIns, pDevIns->iInstance)); … … 274 274 275 275 276 /** @copydoc PDMDEVHLP GC::pfnPhysWrite */276 /** @copydoc PDMDEVHLPRC::pfnPhysWrite */ 277 277 static DECLCALLBACK(void) pdmGCDevHlp_PhysWrite(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, const void *pvBuf, size_t cbWrite) 278 278 { … … 281 281 pDevIns, pDevIns->iInstance, GCPhys, pvBuf, cbWrite)); 282 282 283 PGMPhysWrite(pDevIns->Internal.s.pVM GC, GCPhys, pvBuf, cbWrite);283 PGMPhysWrite(pDevIns->Internal.s.pVMRC, GCPhys, pvBuf, cbWrite); 284 284 285 285 Log(("pdmGCDevHlp_PhysWrite: caller=%p/%d: returns void\n", pDevIns, pDevIns->iInstance)); … … 287 287 288 288 289 /** @copydoc PDMDEVHLP GC::pfnA20IsEnabled */289 /** @copydoc PDMDEVHLPRC::pfnA20IsEnabled */ 290 290 static DECLCALLBACK(bool) pdmGCDevHlp_A20IsEnabled(PPDMDEVINS pDevIns) 291 291 { … … 293 293 LogFlow(("pdmGCDevHlp_A20IsEnabled: caller=%p/%d:\n", pDevIns, pDevIns->iInstance)); 294 294 295 bool fEnabled = PGMPhysIsA20Enabled(pDevIns->Internal.s.pVM GC);295 bool fEnabled = PGMPhysIsA20Enabled(pDevIns->Internal.s.pVMRC); 296 296 297 297 Log(("pdmGCDevHlp_A20IsEnabled: caller=%p/%d: returns %RTbool\n", pDevIns, pDevIns->iInstance, fEnabled)); … … 300 300 301 301 302 /** @copydoc PDMDEVHLP GC::pfnVMSetError */302 /** @copydoc PDMDEVHLPRC::pfnVMSetError */ 303 303 static DECLCALLBACK(int) pdmGCDevHlp_VMSetError(PPDMDEVINS pDevIns, int rc, RT_SRC_POS_DECL, const char *pszFormat, ...) 304 304 { … … 306 306 va_list args; 307 307 va_start(args, pszFormat); 308 int rc2 = VMSetErrorV(pDevIns->Internal.s.pVM GC, rc, RT_SRC_POS_ARGS, pszFormat, args); Assert(rc2 == rc); NOREF(rc2);308 int rc2 = VMSetErrorV(pDevIns->Internal.s.pVMRC, rc, RT_SRC_POS_ARGS, pszFormat, args); Assert(rc2 == rc); NOREF(rc2); 309 309 va_end(args); 310 310 return rc; … … 312 312 313 313 314 /** @copydoc PDMDEVHLP GC::pfnVMSetErrorV */314 /** @copydoc PDMDEVHLPRC::pfnVMSetErrorV */ 315 315 static DECLCALLBACK(int) pdmGCDevHlp_VMSetErrorV(PPDMDEVINS pDevIns, int rc, RT_SRC_POS_DECL, const char *pszFormat, va_list va) 316 316 { 317 317 PDMDEV_ASSERT_DEVINS(pDevIns); 318 int rc2 = VMSetErrorV(pDevIns->Internal.s.pVM GC, rc, RT_SRC_POS_ARGS, pszFormat, va); Assert(rc2 == rc); NOREF(rc2);318 int rc2 = VMSetErrorV(pDevIns->Internal.s.pVMRC, rc, RT_SRC_POS_ARGS, pszFormat, va); Assert(rc2 == rc); NOREF(rc2); 319 319 return rc; 320 320 } 321 321 322 322 323 /** @copydoc PDMDEVHLP GC::pfnVMSetRuntimeError */323 /** @copydoc PDMDEVHLPRC::pfnVMSetRuntimeError */ 324 324 static DECLCALLBACK(int) pdmGCDevHlp_VMSetRuntimeError(PPDMDEVINS pDevIns, bool fFatal, const char *pszErrorID, const char *pszFormat, ...) 325 325 { … … 327 327 va_list args; 328 328 va_start(args, pszFormat); 329 int rc = VMSetRuntimeErrorV(pDevIns->Internal.s.pVM GC, fFatal, pszErrorID, pszFormat, args);329 int rc = VMSetRuntimeErrorV(pDevIns->Internal.s.pVMRC, fFatal, pszErrorID, pszFormat, args); 330 330 va_end(args); 331 331 return rc; … … 333 333 334 334 335 /** @copydoc PDMDEVHLP GC::pfnVMSetErrorV */335 /** @copydoc PDMDEVHLPRC::pfnVMSetErrorV */ 336 336 static DECLCALLBACK(int) pdmGCDevHlp_VMSetRuntimeErrorV(PPDMDEVINS pDevIns, bool fFatal, const char *pszErrorID, const char *pszFormat, va_list va) 337 337 { 338 338 PDMDEV_ASSERT_DEVINS(pDevIns); 339 int rc = VMSetRuntimeErrorV(pDevIns->Internal.s.pVM GC, fFatal, pszErrorID, pszFormat, va);339 int rc = VMSetRuntimeErrorV(pDevIns->Internal.s.pVMRC, fFatal, pszErrorID, pszFormat, va); 340 340 return rc; 341 341 } 342 342 343 343 344 /** @copydoc PDMDEVHLP GC::pfnPATMSetMMIOPatchInfo */344 /** @copydoc PDMDEVHLPRC::pfnPATMSetMMIOPatchInfo */ 345 345 static DECLCALLBACK(int) pdmGCDevHlp_PATMSetMMIOPatchInfo(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, RTGCPTR pCachedData) 346 346 { … … 348 348 LogFlow(("pdmGCDevHlp_PATMSetMMIOPatchInfo: caller=%p/%d:\n", pDevIns, pDevIns->iInstance)); 349 349 350 return PATMSetMMIOPatchInfo(pDevIns->Internal.s.pVM GC, GCPhys, (RTRCPTR)pCachedData);350 return PATMSetMMIOPatchInfo(pDevIns->Internal.s.pVMRC, GCPhys, (RTRCPTR)pCachedData); 351 351 } 352 352 … … 359 359 PDMDEV_ASSERT_DEVINS(pDevIns); 360 360 LogFlow(("pdmRCPicHlp_SetInterruptFF: caller=%p/%d: VM_FF_INTERRUPT_PIC %d -> 1\n", 361 pDevIns, pDevIns->iInstance, VMCPU_FF_ISSET(pDevIns->Internal.s.pVM GC, 0, VM_FF_INTERRUPT_PIC)));361 pDevIns, pDevIns->iInstance, VMCPU_FF_ISSET(pDevIns->Internal.s.pVMRC, 0, VM_FF_INTERRUPT_PIC))); 362 362 /* for PIC we always deliver to CPU 0, MP use APIC */ 363 VMCPU_FF_SET(pDevIns->Internal.s.pVM GC, 0, VM_FF_INTERRUPT_PIC);363 VMCPU_FF_SET(pDevIns->Internal.s.pVMRC, 0, VM_FF_INTERRUPT_PIC); 364 364 } 365 365 … … 370 370 PDMDEV_ASSERT_DEVINS(pDevIns); 371 371 LogFlow(("pdmRCPicHlp_ClearInterruptFF: caller=%p/%d: VM_FF_INTERRUPT_PIC %d -> 0\n", 372 pDevIns, pDevIns->iInstance, VMCPU_FF_ISSET(pDevIns->Internal.s.pVM GC, 0, VM_FF_INTERRUPT_PIC)));372 pDevIns, pDevIns->iInstance, VMCPU_FF_ISSET(pDevIns->Internal.s.pVMRC, 0, VM_FF_INTERRUPT_PIC))); 373 373 /* for PIC we always deliver to CPU 0, MP use APIC */ 374 VMCPU_FF_CLEAR(pDevIns->Internal.s.pVM GC, 0, VM_FF_INTERRUPT_PIC);374 VMCPU_FF_CLEAR(pDevIns->Internal.s.pVMRC, 0, VM_FF_INTERRUPT_PIC); 375 375 } 376 376 … … 380 380 { 381 381 PDMDEV_ASSERT_DEVINS(pDevIns); 382 return pdmLockEx(pDevIns->Internal.s.pVM GC, rc);382 return pdmLockEx(pDevIns->Internal.s.pVMRC, rc); 383 383 } 384 384 … … 388 388 { 389 389 PDMDEV_ASSERT_DEVINS(pDevIns); 390 pdmUnlock(pDevIns->Internal.s.pVM GC);390 pdmUnlock(pDevIns->Internal.s.pVMRC); 391 391 } 392 392 … … 399 399 PDMDEV_ASSERT_DEVINS(pDevIns); 400 400 LogFlow(("pdmRCApicHlp_SetInterruptFF: caller=%p/%d: VM_FF_INTERRUPT %d -> 1\n", 401 pDevIns, pDevIns->iInstance, VMCPU_FF_ISSET(pDevIns->Internal.s.pVM GC, idCpu, VM_FF_INTERRUPT_APIC)));402 VMCPU_FF_SET(pDevIns->Internal.s.pVM GC, idCpu, VM_FF_INTERRUPT_APIC);401 pDevIns, pDevIns->iInstance, VMCPU_FF_ISSET(pDevIns->Internal.s.pVMRC, idCpu, VM_FF_INTERRUPT_APIC))); 402 VMCPU_FF_SET(pDevIns->Internal.s.pVMRC, idCpu, VM_FF_INTERRUPT_APIC); 403 403 } 404 404 … … 409 409 PDMDEV_ASSERT_DEVINS(pDevIns); 410 410 LogFlow(("pdmRCApicHlp_ClearInterruptFF: caller=%p/%d: VM_FF_INTERRUPT %d -> 0\n", 411 pDevIns, pDevIns->iInstance, VMCPU_FF_ISSET(pDevIns->Internal.s.pVM GC, idCpu, VM_FF_INTERRUPT_APIC)));412 VMCPU_FF_CLEAR(pDevIns->Internal.s.pVM GC, idCpu, VM_FF_INTERRUPT_APIC);411 pDevIns, pDevIns->iInstance, VMCPU_FF_ISSET(pDevIns->Internal.s.pVMRC, idCpu, VM_FF_INTERRUPT_APIC))); 412 VMCPU_FF_CLEAR(pDevIns->Internal.s.pVMRC, idCpu, VM_FF_INTERRUPT_APIC); 413 413 } 414 414 … … 420 420 LogFlow(("pdmRCApicHlp_ChangeFeature: caller=%p/%d: fEnabled=%RTbool\n", pDevIns, pDevIns->iInstance, fEnabled)); 421 421 if (fEnabled) 422 CPUMSetGuestCpuIdFeature(pDevIns->Internal.s.pVM GC, CPUMCPUIDFEATURE_APIC);422 CPUMSetGuestCpuIdFeature(pDevIns->Internal.s.pVMRC, CPUMCPUIDFEATURE_APIC); 423 423 else 424 CPUMClearGuestCpuIdFeature(pDevIns->Internal.s.pVM GC, CPUMCPUIDFEATURE_APIC);424 CPUMClearGuestCpuIdFeature(pDevIns->Internal.s.pVMRC, CPUMCPUIDFEATURE_APIC); 425 425 } 426 426 … … 430 430 { 431 431 PDMDEV_ASSERT_DEVINS(pDevIns); 432 return pdmLockEx(pDevIns->Internal.s.pVM GC, rc);432 return pdmLockEx(pDevIns->Internal.s.pVMRC, rc); 433 433 } 434 434 … … 438 438 { 439 439 PDMDEV_ASSERT_DEVINS(pDevIns); 440 pdmUnlock(pDevIns->Internal.s.pVM GC);440 pdmUnlock(pDevIns->Internal.s.pVMRC); 441 441 } 442 442 … … 446 446 { 447 447 PDMDEV_ASSERT_DEVINS(pDevIns); 448 return VMMGetCpuId(pDevIns->Internal.s.pVM GC);448 return VMMGetCpuId(pDevIns->Internal.s.pVMRC); 449 449 } 450 450 … … 454 454 { 455 455 PDMDEV_ASSERT_DEVINS(pDevIns); 456 PVM pVM = pDevIns->Internal.s.pVM GC;456 PVM pVM = pDevIns->Internal.s.pVMRC; 457 457 LogFlow(("pdmRCIoApicHlp_ApicBusDeliver: caller=%p/%d: u8Dest=%RX8 u8DestMode=%RX8 u8DeliveryMode=%RX8 iVector=%RX8 u8Polarity=%RX8 u8TriggerMode=%RX8\n", 458 458 pDevIns, pDevIns->iInstance, u8Dest, u8DestMode, u8DeliveryMode, iVector, u8Polarity, u8TriggerMode)); … … 466 466 { 467 467 PDMDEV_ASSERT_DEVINS(pDevIns); 468 return pdmLockEx(pDevIns->Internal.s.pVM GC, rc);468 return pdmLockEx(pDevIns->Internal.s.pVMRC, rc); 469 469 } 470 470 … … 474 474 { 475 475 PDMDEV_ASSERT_DEVINS(pDevIns); 476 pdmUnlock(pDevIns->Internal.s.pVM GC);476 pdmUnlock(pDevIns->Internal.s.pVMRC); 477 477 } 478 478 … … 485 485 PDMDEV_ASSERT_DEVINS(pDevIns); 486 486 Log4(("pdmRCPciHlp_IsaSetIrq: iIrq=%d iLevel=%d\n", iIrq, iLevel)); 487 pdmGCIsaSetIrq(pDevIns->Internal.s.pVM GC, iIrq, iLevel);487 pdmGCIsaSetIrq(pDevIns->Internal.s.pVMRC, iIrq, iLevel); 488 488 } 489 489 … … 494 494 PDMDEV_ASSERT_DEVINS(pDevIns); 495 495 Log4(("pdmRCPciHlp_IsaSetIrq: iIrq=%d iLevel=%d\n", iIrq, iLevel)); 496 pdmGCIoApicSetIrq(pDevIns->Internal.s.pVM GC, iIrq, iLevel);496 pdmGCIoApicSetIrq(pDevIns->Internal.s.pVMRC, iIrq, iLevel); 497 497 } 498 498 … … 502 502 { 503 503 PDMDEV_ASSERT_DEVINS(pDevIns); 504 return pdmLockEx(pDevIns->Internal.s.pVM GC, rc);504 return pdmLockEx(pDevIns->Internal.s.pVMRC, rc); 505 505 } 506 506 … … 510 510 { 511 511 PDMDEV_ASSERT_DEVINS(pDevIns); 512 pdmUnlock(pDevIns->Internal.s.pVM GC);512 pdmUnlock(pDevIns->Internal.s.pVMRC); 513 513 } 514 514
Note:
See TracChangeset
for help on using the changeset viewer.