VirtualBox

Changeset 12970 in vbox for trunk/src/VBox/VMM/PDMInternal.h


Ignore:
Timestamp:
Oct 3, 2008 7:04:11 AM (16 years ago)
Author:
vboxsync
Message:

#1865: PDMINS.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/PDMInternal.h

    r12807 r12970  
    8585    /** Pointer to the next instance (HC Ptr).
    8686     * (Head is pointed to by PDM::pDevInstances.) */
    87     R3PTRTYPE(PPDMDEVINS)           pNextHC;
     87    R3PTRTYPE(PPDMDEVINS)           pNextR3;
    8888    /** Pointer to the next per device instance (HC Ptr).
    8989     * (Head is pointed to by PDMDEV::pInstances.) */
    90     R3PTRTYPE(PPDMDEVINS)           pPerDeviceNextHC;
    91 
     90    R3PTRTYPE(PPDMDEVINS)           pPerDeviceNextR3;
    9291    /** Pointer to device structure - HC Ptr. */
    93     R3PTRTYPE(PPDMDEV)              pDevHC;
    94 
    95     /** Pointer to the VM this instance was created for - HC Ptr. */
    96     R3R0PTRTYPE(PVM)                pVMHC;
     92    R3PTRTYPE(PPDMDEV)              pDevR3;
    9793    /** Pointer to the list of logical units associated with the device. (FIFO) */
    98     R3PTRTYPE(PPDMLUN)              pLunsHC;
     94    R3PTRTYPE(PPDMLUN)              pLunsR3;
    9995    /** Configuration handle to the instance node. */
    10096    R3PTRTYPE(PCFGMNODE)            pCfgHandle;
    101     /** HC pointer to associated PCI device structure. */
    102     R3R0PTRTYPE(struct PCIDevice *) pPciDeviceHC;
    103     /** HC pointer to associated PCI bus structure. */
    104     R3R0PTRTYPE(PPDMPCIBUS)         pPciBusHC;
    105 
    106     /** GC pointer to associated PCI device structure. */
    107     RCPTRTYPE(struct PCIDevice *)   pPciDeviceGC;
    108     /** Pointer to the VM this instance was created for - GC Ptr. */
    109     RCPTRTYPE(PVM)                  pVMGC;
    110     /** GC pointer to associated PCI bus structure. */
    111     RCPTRTYPE(PPDMPCIBUS)           pPciBusGC;
     97
     98    /** R3 pointer to the VM this instance was created for. */
     99    PVMR3                           pVMR3;
     100    /** R3 pointer to associated PCI device structure. */
     101    R3PTRTYPE(struct PCIDevice *)   pPciDeviceR3;
     102    /** R3 pointer to associated PCI bus structure. */
     103    R3PTRTYPE(PPDMPCIBUS)           pPciBusR3;
     104
     105    /** R0 pointer to the VM this instance was created for. */
     106    PVMR0                           pVMR0;
     107    /** R0 pointer to associated PCI device structure. */
     108    R0PTRTYPE(struct PCIDevice *)   pPciDeviceR0;
     109    /** R0 pointer to associated PCI bus structure. */
     110    R0PTRTYPE(PPDMPCIBUS)           pPciBusR0;
    112111    /** Alignment padding. */
    113     uint32_t                        Alignment0;
     112    RTR0PTR                         Alignment0;
     113
     114    /** RC pointer to the VM this instance was created for. */
     115    PVMRC                           pVMRC;
     116    /** RC pointer to associated PCI device structure. */
     117    RCPTRTYPE(struct PCIDevice *)   pPciDeviceRC;
     118    /** RC pointer to associated PCI bus structure. */
     119    RCPTRTYPE(PPDMPCIBUS)           pPciBusRC;
     120    /** Alignment padding. */
     121    RTRCPTR                         Alignment1;
    114122} PDMDEVINSINT;
    115123
     
    161169    /** Pointer to the driver instance above.
    162170     * This is NULL for the topmost drive. */
    163     PPDMDRVINS          pUp;
     171    PPDMDRVINS                      pUp;
    164172    /** Pointer to the driver instance below.
    165173     * This is NULL for the bottommost driver. */
    166     PPDMDRVINS          pDown;
     174    PPDMDRVINS                      pDown;
    167175    /** Pointer to the logical unit this driver chained on. */
    168     PPDMLUN             pLun;
     176    PPDMLUN                         pLun;
    169177    /** Pointer to driver structure from which this was instantiated. */
    170     PPDMDRV             pDrv;
     178    PPDMDRV                         pDrv;
    171179    /** Pointer to the VM this instance was created for. */
    172     PVM                 pVM;
     180    PVM                             pVM;
    173181    /** Flag indicating that the driver is being detached and destroyed.
    174182     * (Helps detect potential recursive detaching.) */
    175     bool                fDetaching;
     183    bool                            fDetaching;
    176184    /** Configuration handle to the instance node. */
    177     PCFGMNODE           pCfgHandle;
     185    PCFGMNODE                       pCfgHandle;
    178186
    179187} PDMDRVINSINT;
     
    186194{
    187195    /** The critical section core which is shared with IPRT. */
    188     RTCRITSECT          Core;
     196    RTCRITSECT                      Core;
    189197    /** Pointer to the next critical section.
    190198     * This chain is used for relocating pVMGC and device cleanup. */
     
    193201     * This is pDevIns if the owner is a device. Similarily for a driver or service.
    194202     * PDMR3CritSectInit() sets this to point to the critsect itself. */
    195     RTR3PTR             pvKey;
     203    RTR3PTR                         pvKey;
    196204    /** Pointer to the VM - R3Ptr. */
    197     R3PTRTYPE(PVM)      pVMR3;
     205    R3PTRTYPE(PVM)                  pVMR3;
    198206    /** Pointer to the VM - R0Ptr. */
    199     R0PTRTYPE(PVM)      pVMR0;
     207    R0PTRTYPE(PVM)                  pVMR0;
    200208    /** Pointer to the VM - GCPtr. */
    201     RCPTRTYPE(PVM)      pVMGC;
     209    RCPTRTYPE(PVM)                  pVMGC;
    202210#if HC_ARCH_BITS == 64
    203211    uint32_t            padding;
     
    205213    /** Event semaphore that is scheduled to be signaled upon leaving the
    206214     * critical section. This is Ring-3 only of course. */
    207     RTSEMEVENT          EventToSignal;
     215    RTSEMEVENT                      EventToSignal;
    208216    /** R0/GC lock contention. */
    209     STAMCOUNTER         StatContentionR0GCLock;
     217    STAMCOUNTER                     StatContentionR0GCLock;
    210218    /** R0/GC unlock contention. */
    211     STAMCOUNTER         StatContentionR0GCUnlock;
     219    STAMCOUNTER                     StatContentionR0GCUnlock;
    212220    /** R3 lock contention. */
    213     STAMCOUNTER         StatContentionR3;
     221    STAMCOUNTER                     StatContentionR3;
    214222    /** Profiling the time the section is locked. */
    215     STAMPROFILEADV      StatLocked;
     223    STAMPROFILEADV                  StatLocked;
    216224} PDMCRITSECTINT, *PPDMCRITSECTINT;
    217225
     
    277285 * device, like for instance the PS/2 keyboard port on the
    278286 * keyboard controller device. The LUNs are chained on the
    279  * device the belong to (PDMDEVINSINT::pLunsHC).
     287 * device the belong to (PDMDEVINSINT::pLunsR3).
    280288 */
    281289typedef struct PDMLUN
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette