Changeset 44700 in vbox for trunk/src/VBox/Devices/Parallel
- Timestamp:
- Feb 14, 2013 8:17:24 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 83799
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Parallel/DevParallel.cpp
r44528 r44700 173 173 174 174 #ifdef IN_RING3 175 static void parallel IrqSet(PARALLELPORT *pThis)175 static void parallelR3IrqSet(PARALLELPORT *pThis) 176 176 { 177 177 if (pThis->regControl & LPT_CONTROL_ENABLE_IRQ_VIA_ACK) … … 182 182 } 183 183 184 static void parallel IrqClear(PARALLELPORT *pThis)184 static void parallelR3IrqClear(PARALLELPORT *pThis) 185 185 { 186 186 LogFlowFunc(("%d 0\n", pThis->iIrq)); … … 198 198 LogFlow(("parallel: write ecp addr=0x%02x val=0x%02x\n", addr, val)); 199 199 ch = val; 200 switch (addr) {200 switch (addr) { 201 201 default: 202 202 case 0: … … 258 258 259 259 addr &= 7; 260 switch (addr) {260 switch (addr) { 261 261 default: 262 262 case 0: … … 303 303 304 304 #ifdef IN_RING3 305 static DECLCALLBACK(int) parallelNotifyInterrupt(PPDMIHOSTPARALLELPORT pInterface) 305 /** 306 * @interface_methods_impl{PDMIHOSTPARALLELPORT,pfnNotifyInterrupt} 307 */ 308 static DECLCALLBACK(int) parallelR3NotifyInterrupt(PPDMIHOSTPARALLELPORT pInterface) 306 309 { 307 310 PARALLELPORT *pThis = PDMIHOSTPARALLELPORT_2_PARALLELPORT(pInterface); 308 311 309 312 PDMCritSectEnter(&pThis->CritSect, VINF_SUCCESS); 310 parallel IrqSet(pThis);313 parallelR3IrqSet(pThis); 311 314 PDMCritSectLeave(&pThis->CritSect); 312 315 … … 315 318 #endif /* IN_RING3 */ 316 319 317 /** 318 * Port I/O Handler for OUT operations. 319 * 320 * @returns VBox status code. 321 * 322 * @param pDevIns The device instance. 323 * @param pvUser User argument. 324 * @param Port Port number used for the IN operation. 325 * @param u32 The value to output. 326 * @param cb The value size in bytes. 327 */ 328 PDMBOTHCBDECL(int) parallelIOPortWrite(PPDMDEVINS pDevIns, void *pvUser, 329 RTIOPORT Port, uint32_t u32, unsigned cb) 320 321 /** 322 * @callback_method_impl{FNIOMIOPORTOUT} 323 */ 324 PDMBOTHCBDECL(int) parallelIOPortWrite(PPDMDEVINS pDevIns, void *pvUser, RTIOPORT Port, uint32_t u32, unsigned cb) 330 325 { 331 326 PARALLELPORT *pThis = PDMINS_2_DATA(pDevIns, PPARALLELPORT); … … 342 337 343 338 Port &= 7; 344 switch (Port)339 switch (Port) 345 340 { 346 341 case 0: … … 427 422 } 428 423 429 /** 430 * Port I/O Handler for IN operations. 431 * 432 * @returns VBox status code. 433 * 434 * @param pDevIns The device instance. 435 * @param pvUser User argument. 436 * @param Port Port number used for the IN operation. 437 * @param pu32 Where to return the read value. 438 * @param cb The value size in bytes. 439 */ 440 PDMBOTHCBDECL(int) parallelIOPortRead(PPDMDEVINS pDevIns, void *pvUser, 441 RTIOPORT Port, uint32_t *pu32, unsigned cb) 424 425 /** 426 * @callback_method_impl{FNIOMIOPORTIN} 427 */ 428 PDMBOTHCBDECL(int) parallelIOPortRead(PPDMDEVINS pDevIns, void *pvUser, RTIOPORT Port, uint32_t *pu32, unsigned cb) 442 429 { 443 430 PARALLELPORT *pThis = PDMINS_2_DATA(pDevIns, PARALLELPORT *); … … 450 437 { 451 438 Port &= 7; 452 switch (Port)439 switch (Port) 453 440 { 454 441 case 0: … … 481 468 } 482 469 *pu32 = pThis->regStatus; 483 parallel IrqClear(pThis);470 parallelR3IrqClear(pThis); 484 471 #endif 485 472 break; … … 540 527 #if 0 541 528 /** 542 * Port I/O Handler for OUT operations on ECP registers. 543 * 544 * @returns VBox status code. 545 * 546 * @param pDevIns The device instance. 547 * @param pvUser User argument. 548 * @param Port Port number used for the IN operation. 549 * @param u32 The value to output. 550 * @param cb The value size in bytes. 551 */ 552 PDMBOTHCBDECL(int) parallelIOPortWriteECP(PPDMDEVINS pDevIns, void *pvUser, 553 RTIOPORT Port, uint32_t u32, unsigned cb) 529 * @callback_method_impl{FNIOMIOPORTOUT, ECP registers.} 530 */ 531 PDMBOTHCBDECL(int) parallelIOPortWriteECP(PPDMDEVINS pDevIns, void *pvUser, RTIOPORT Port, uint32_t u32, unsigned cb) 554 532 { 555 533 PARALLELPORT *pThis = PDMINS_2_DATA(pDevIns, PARALLELPORT *); … … 573 551 574 552 /** 575 * Port I/O Handler for IN operations on ECP registers. 576 * 577 * @returns VBox status code. 578 * 579 * @param pDevIns The device instance. 580 * @param pvUser User argument. 581 * @param Port Port number used for the IN operation. 582 * @param u32 The value to output. 583 * @param cb The value size in bytes. 584 */ 585 PDMBOTHCBDECL(int) parallelIOPortReadECP(PPDMDEVINS pDevIns, void *pvUser, 586 RTIOPORT Port, uint32_t *pu32, unsigned cb) 553 * @callback_method_impl{FNIOMIOPORTOUT, ECP registers.} 554 */ 555 PDMBOTHCBDECL(int) parallelIOPortReadECP(PPDMDEVINS pDevIns, void *pvUser, RTIOPORT Port, uint32_t *pu32, unsigned cb) 587 556 { 588 557 PARALLELPORT *pThis = PDMINS_2_DATA(pDevIns, PARALLELPORT *); 589 int 558 int rc = VINF_SUCCESS; 590 559 591 560 if (cb == 1) … … 607 576 608 577 #ifdef IN_RING3 609 /** 610 * @copydoc FNSSMDEVLIVEEXEC 611 */ 612 static DECLCALLBACK(int) parallelLiveExec(PPDMDEVINS pDevIns, 613 PSSMHANDLE pSSM, 614 uint32_t uPass) 578 579 /** 580 * @callback_method_impl{FNSSMDEVLIVEEXEC} 581 */ 582 static DECLCALLBACK(int) parallelR3LiveExec(PPDMDEVINS pDevIns, PSSMHANDLE pSSM, uint32_t uPass) 615 583 { 616 584 PARALLELPORT *pThis = PDMINS_2_DATA(pDevIns, PARALLELPORT *); … … 622 590 } 623 591 624 /** 625 * @copydoc FNSSMDEVSAVEEXEC 626 * /627 static DECLCALLBACK(int) parallelSaveExec(PPDMDEVINS pDevIns, 628 592 593 /** 594 * @callback_method_impl{FNSSMDEVSAVEEXEC} 595 */ 596 static DECLCALLBACK(int) parallelR3SaveExec(PPDMDEVINS pDevIns, PSSMHANDLE pSSM) 629 597 { 630 598 PARALLELPORT *pThis = PDMINS_2_DATA(pDevIns, PARALLELPORT *); … … 634 602 SSMR3PutU8(pSSM, pThis->regControl); 635 603 636 parallel LiveExec(pDevIns, pSSM, 0);604 parallelR3LiveExec(pDevIns, pSSM, 0); 637 605 return VINF_SUCCESS; 638 606 } 639 607 640 /** 641 * @copydoc FNSSMDEVLOADEXEC 642 */ 643 static DECLCALLBACK(int) parallelLoadExec(PPDMDEVINS pDevIns, 644 PSSMHANDLE pSSM, 645 uint32_t uVersion, 646 uint32_t uPass) 608 609 /** 610 * @callback_method_impl{FNSSMDEVLOADEXEC} 611 */ 612 static DECLCALLBACK(int) parallelR3LoadExec(PPDMDEVINS pDevIns, PSSMHANDLE pSSM, uint32_t uVersion, uint32_t uPass) 647 613 { 648 614 PARALLELPORT *pThis = PDMINS_2_DATA(pDevIns, PARALLELPORT *); … … 683 649 684 650 /** 685 * @copydoc FNPDMDEVRELOCATE686 */687 static DECLCALLBACK(void) parallelRelocate(PPDMDEVINS pDevIns, RTGCINTPTR offDelta)688 {689 PARALLELPORT *pThis = PDMINS_2_DATA(pDevIns, PARALLELPORT *);690 pThis->pDevInsRC += offDelta;691 }692 693 /**694 651 * @interface_method_impl{PDMIBASE,pfnQueryInterface} 695 652 */ 696 static DECLCALLBACK(void *) parallel QueryInterface(PPDMIBASE pInterface, const char *pszIID)653 static DECLCALLBACK(void *) parallelR3QueryInterface(PPDMIBASE pInterface, const char *pszIID) 697 654 { 698 655 PARALLELPORT *pThis = PDMIBASE_2_PARALLELPORT(pInterface); … … 702 659 } 703 660 704 /** 705 * Destruct a device instance. 706 * 707 * Most VM resources are freed by the VM. This callback is provided so that any non-VM 708 * resources can be freed correctly. 709 * 710 * @returns VBox status. 711 * @param pDevIns The device instance data. 712 */ 713 static DECLCALLBACK(int) parallelDestruct(PPDMDEVINS pDevIns) 661 662 /** 663 * @copydoc FNPDMDEVRELOCATE 664 */ 665 static DECLCALLBACK(void) parallelR3Relocate(PPDMDEVINS pDevIns, RTGCINTPTR offDelta) 666 { 667 PARALLELPORT *pThis = PDMINS_2_DATA(pDevIns, PARALLELPORT *); 668 pThis->pDevInsRC += offDelta; 669 } 670 671 672 /** 673 * @interface_method_impl{PDMDEVREG,pfnDestruct} 674 */ 675 static DECLCALLBACK(int) parallelR3Destruct(PPDMDEVINS pDevIns) 714 676 { 715 677 PARALLELPORT *pThis = PDMINS_2_DATA(pDevIns, PARALLELPORT *); … … 725 687 * @interface_method_impl{PDMDEVREG,pfnConstruct} 726 688 */ 727 static DECLCALLBACK(int) parallelConstruct(PPDMDEVINS pDevIns, 728 int iInstance, 729 PCFGMNODE pCfg) 689 static DECLCALLBACK(int) parallelR3Construct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg) 730 690 { 731 691 int rc; … … 736 696 737 697 /* 738 * Init the data so parallel Destruct doesn't choke.698 * Init the data so parallelR3Destruct doesn't choke. 739 699 */ 740 700 pThis->pDevInsR3 = pDevIns; … … 743 703 744 704 /* IBase */ 745 pThis->IBase.pfnQueryInterface = parallel QueryInterface;705 pThis->IBase.pfnQueryInterface = parallelR3QueryInterface; 746 706 747 707 /* IHostParallelPort */ 748 pThis->IHostParallelPort.pfnNotifyInterrupt = parallel NotifyInterrupt;708 pThis->IHostParallelPort.pfnNotifyInterrupt = parallelR3NotifyInterrupt; 749 709 750 710 /* Init parallel state */ … … 838 798 839 799 rc = PDMDevHlpSSMRegister3(pDevIns, PARALLEL_SAVED_STATE_VERSION, sizeof(*pThis), 840 parallel LiveExec, parallelSaveExec, parallelLoadExec);800 parallelR3LiveExec, parallelR3SaveExec, parallelR3LoadExec); 841 801 if (RT_FAILURE(rc)) 842 802 return rc; … … 900 860 sizeof(PARALLELPORT), 901 861 /* pfnConstruct */ 902 parallel Construct,862 parallelR3Construct, 903 863 /* pfnDestruct */ 904 parallel Destruct,864 parallelR3Destruct, 905 865 /* pfnRelocate */ 906 parallelR elocate,866 parallelR3Relocate, 907 867 /* pfnIOCtl */ 908 868 NULL,
Note:
See TracChangeset
for help on using the changeset viewer.