Changeset 12970 in vbox for trunk/src/VBox/VMM/PDMInternal.h
- Timestamp:
- Oct 3, 2008 7:04:11 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PDMInternal.h
r12807 r12970 85 85 /** Pointer to the next instance (HC Ptr). 86 86 * (Head is pointed to by PDM::pDevInstances.) */ 87 R3PTRTYPE(PPDMDEVINS) pNext HC;87 R3PTRTYPE(PPDMDEVINS) pNextR3; 88 88 /** Pointer to the next per device instance (HC Ptr). 89 89 * (Head is pointed to by PDMDEV::pInstances.) */ 90 R3PTRTYPE(PPDMDEVINS) pPerDeviceNextHC; 91 90 R3PTRTYPE(PPDMDEVINS) pPerDeviceNextR3; 92 91 /** 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; 97 93 /** Pointer to the list of logical units associated with the device. (FIFO) */ 98 R3PTRTYPE(PPDMLUN) pLuns HC;94 R3PTRTYPE(PPDMLUN) pLunsR3; 99 95 /** Configuration handle to the instance node. */ 100 96 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; 112 111 /** 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; 114 122 } PDMDEVINSINT; 115 123 … … 161 169 /** Pointer to the driver instance above. 162 170 * This is NULL for the topmost drive. */ 163 PPDMDRVINS pUp;171 PPDMDRVINS pUp; 164 172 /** Pointer to the driver instance below. 165 173 * This is NULL for the bottommost driver. */ 166 PPDMDRVINS pDown;174 PPDMDRVINS pDown; 167 175 /** Pointer to the logical unit this driver chained on. */ 168 PPDMLUN pLun;176 PPDMLUN pLun; 169 177 /** Pointer to driver structure from which this was instantiated. */ 170 PPDMDRV pDrv;178 PPDMDRV pDrv; 171 179 /** Pointer to the VM this instance was created for. */ 172 PVM pVM;180 PVM pVM; 173 181 /** Flag indicating that the driver is being detached and destroyed. 174 182 * (Helps detect potential recursive detaching.) */ 175 bool fDetaching;183 bool fDetaching; 176 184 /** Configuration handle to the instance node. */ 177 PCFGMNODE pCfgHandle;185 PCFGMNODE pCfgHandle; 178 186 179 187 } PDMDRVINSINT; … … 186 194 { 187 195 /** The critical section core which is shared with IPRT. */ 188 RTCRITSECT Core;196 RTCRITSECT Core; 189 197 /** Pointer to the next critical section. 190 198 * This chain is used for relocating pVMGC and device cleanup. */ … … 193 201 * This is pDevIns if the owner is a device. Similarily for a driver or service. 194 202 * PDMR3CritSectInit() sets this to point to the critsect itself. */ 195 RTR3PTR pvKey;203 RTR3PTR pvKey; 196 204 /** Pointer to the VM - R3Ptr. */ 197 R3PTRTYPE(PVM) pVMR3;205 R3PTRTYPE(PVM) pVMR3; 198 206 /** Pointer to the VM - R0Ptr. */ 199 R0PTRTYPE(PVM) pVMR0;207 R0PTRTYPE(PVM) pVMR0; 200 208 /** Pointer to the VM - GCPtr. */ 201 RCPTRTYPE(PVM) pVMGC;209 RCPTRTYPE(PVM) pVMGC; 202 210 #if HC_ARCH_BITS == 64 203 211 uint32_t padding; … … 205 213 /** Event semaphore that is scheduled to be signaled upon leaving the 206 214 * critical section. This is Ring-3 only of course. */ 207 RTSEMEVENT EventToSignal;215 RTSEMEVENT EventToSignal; 208 216 /** R0/GC lock contention. */ 209 STAMCOUNTER StatContentionR0GCLock;217 STAMCOUNTER StatContentionR0GCLock; 210 218 /** R0/GC unlock contention. */ 211 STAMCOUNTER StatContentionR0GCUnlock;219 STAMCOUNTER StatContentionR0GCUnlock; 212 220 /** R3 lock contention. */ 213 STAMCOUNTER StatContentionR3;221 STAMCOUNTER StatContentionR3; 214 222 /** Profiling the time the section is locked. */ 215 STAMPROFILEADV StatLocked;223 STAMPROFILEADV StatLocked; 216 224 } PDMCRITSECTINT, *PPDMCRITSECTINT; 217 225 … … 277 285 * device, like for instance the PS/2 keyboard port on the 278 286 * keyboard controller device. The LUNs are chained on the 279 * device the belong to (PDMDEVINSINT::pLuns HC).287 * device the belong to (PDMDEVINSINT::pLunsR3). 280 288 */ 281 289 typedef struct PDMLUN
Note:
See TracChangeset
for help on using the changeset viewer.