Changeset 26493 in vbox
- Timestamp:
- Feb 14, 2010 7:50:58 AM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 57663
- Location:
- trunk/src/VBox/Additions
- Files:
-
- 36 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Display/Makefile.kmk
r23452 r26493 53 53 VBoxDisp.def \ 54 54 VBoxDisp.rc 55 55 56 56 ifdef VBOX_WITH_VIDEOHWACCEL 57 57 VBoxDisp_SOURCES += vhwa.c -
trunk/src/VBox/Additions/WINNT/Graphics/Display/Mirror/driver.h
r18246 r26493 80 80 typedef struct _MIRRSURF { 81 81 PPDEV *pdev; 82 ULONG cx; 82 ULONG cx; 83 83 ULONG cy; 84 84 ULONG lDelta; -
trunk/src/VBox/Additions/WINNT/Graphics/Display/Mirror/enable.c
r18246 r26493 160 160 goto error_free; 161 161 } 162 162 163 163 // Copy the devinfo into the engine buffer. 164 164 … … 210 210 PPDEV ppdev = (PPDEV) dhpdev; 211 211 DISPDBG((0,"DrvDisablePDEV\n")); 212 212 213 213 EngDeletePalette(ppdev->hpalDefault); 214 214 … … 264 264 flHooks = HOOKS_BMF32BPP; 265 265 } 266 266 267 267 flHooks |= flGlobalHooks; 268 268 269 mirrorsize = (ULONG)(sizeof(MIRRSURF) + 269 mirrorsize = (ULONG)(sizeof(MIRRSURF) + 270 270 ppdev->lDeltaScreen * sizl.cy); 271 271 272 272 mirrsurf = (MIRRSURF *) EngAllocMem(FL_ZERO_MEMORY, 273 273 mirrorsize, … … 277 277 return(FALSE); 278 278 } 279 280 279 280 281 281 dhsurf = (DHSURF) mirrsurf; 282 282 … … 310 310 311 311 DISPDBG((0,"DrvEnableSurface OK\n")); 312 312 313 313 return(hsurf); 314 314 } … … 329 329 330 330 EngDeleteSurface( ppdev->hsurfEng ); 331 331 332 332 // deallocate MIRRSURF structure. 333 333 -
trunk/src/VBox/Additions/WINNT/Graphics/Display/Mirror/screen.c
r18246 r26493 111 111 // the kernel driver. 112 112 // 113 113 114 114 ppdev->ulMode = 0; 115 115 ppdev->cxScreen = pDevMode->dmPelsWidth; … … 117 117 ppdev->ulBitCount = pDevMode->dmBitsPerPel; 118 118 ppdev->lDeltaScreen = 0; 119 119 120 120 ppdev->flRed = 0x00FF0000; 121 121 ppdev->flGreen = 0x000FF00; 122 122 ppdev->flBlue = 0x00000FF; 123 123 124 124 pGdiInfo->ulVersion = GDI_DRIVER_VERSION; 125 125 pGdiInfo->ulTechnology = DT_RASDISPLAY; … … 132 132 pGdiInfo->ulPanningVertRes = 0; 133 133 pGdiInfo->cBitsPixel = 8; 134 pGdiInfo->cPlanes = 1; 134 pGdiInfo->cPlanes = 1; 135 135 pGdiInfo->ulVRefresh = 1; // not used 136 136 pGdiInfo->ulBltAlignment = 1; // We don't have accelerated screen- … … 258 258 259 259 red = 0, green = 0, blue = 0; 260 260 261 261 for (i = NUMPALRESERVED; i < NUMPALCOLORS; i++) { 262 262 palColors[i][0] = red; … … 273 273 { 274 274 pDevInfo->hpalDefault = ppdev->hpalDefault = 275 275 276 276 EngCreatePalette(PAL_INDEXED, 277 277 NUMPALCOLORS, // cColors … … 287 287 ppdev->flRed,ppdev->flBlue,ppdev->flGreen); 288 288 } 289 289 290 290 DISPDBG((0,"bInitPDEV OK\n")); 291 291 292 292 return(TRUE); 293 293 } 294 294 295 296 -
trunk/src/VBox/Additions/WINNT/Graphics/Display/debug.h
r20478 r26493 66 66 // #endif 67 67 68 -
trunk/src/VBox/Additions/WINNT/Graphics/Display/vbva.c
r17615 r26493 86 86 BYTE *pu8Src; 87 87 BYTE *pu8Dest; 88 88 89 89 if (!prclDest || !pptlSrc) 90 90 { 91 91 return TRUE; 92 92 } 93 93 94 94 DISPDBG((1, "vbvaFindChangedRect: dest %d,%d %dx%d from %d,%d\n", 95 95 prclDest->left, prclDest->top, prclDest->right - prclDest->left, prclDest->bottom - prclDest->top, 96 96 pptlSrc->x, pptlSrc->y 97 97 )); 98 98 99 99 switch (psoDest->iBitmapFormat) 100 100 { … … 118 118 return TRUE; 119 119 } 120 120 121 121 rclDest = *prclDest; 122 122 123 123 vrdpAdjustRect (psoDest, &rclDest); 124 124 125 125 pptlSrc->x += rclDest.left - prclDest->left; 126 126 pptlSrc->y += rclDest.top - prclDest->top; 127 127 128 128 *prclDest = rclDest; 129 129 130 130 if ( rclDest.right == rclDest.left 131 131 || rclDest.bottom == rclDest.top) … … 134 134 return FALSE; 135 135 } 136 136 137 137 rclSrc.left = pptlSrc->x; 138 138 rclSrc.top = pptlSrc->y; … … 140 140 rclSrc.bottom = pptlSrc->y + (rclDest.bottom - rclDest.top); 141 141 vrdpAdjustRect (psoSrc, &rclSrc); 142 142 143 143 if ( rclSrc.right == rclSrc.left 144 144 || rclSrc.bottom == rclSrc.top) … … 146 146 prclDest->right = prclDest->left; 147 147 prclDest->bottom = prclDest->top; 148 148 149 149 DISPDBG((1, "vbvaFindChangedRect: empty src rect: %d-%d, %d-%d\n", rclSrc.left, rclSrc.right, rclSrc.top, rclSrc.bottom)); 150 150 return FALSE; 151 151 } 152 152 153 153 VBVA_ASSERT(pptlSrc->x == rclSrc.left); 154 154 VBVA_ASSERT(pptlSrc->y == rclSrc.top); 155 155 156 156 /* 157 157 * Compare the content of the screen surface (psoDest) with the source surface (psoSrc). … … 161 161 pu8Src = (BYTE *)psoSrc->pvScan0 + psoSrc->lDelta * pptlSrc->y + cbPixelSrc * pptlSrc->x; 162 162 pu8Dest = (BYTE *)psoDest->pvScan0 + psoDest->lDelta * prclDest->top + cbPixelDest * prclDest->left; 163 163 164 164 /* Use the rclDest as the bounding rectangle for the changed area. */ 165 165 rclDest.left = prclDest->right; /* +inf */ … … 167 167 rclDest.top = prclDest->bottom; /* +inf */ 168 168 rclDest.bottom = prclDest->top; /* -inf */ 169 169 170 170 fTopNonEqualFound = 0; 171 171 yTopmost = prclDest->top; /* inclusive */ 172 172 yBottommost = prclDest->top - 1; /* inclusive */ 173 173 174 174 for (y = prclDest->top; y < prclDest->bottom; y++) 175 175 { 176 176 int fLeftNonEqualFound = 0; 177 177 178 178 /* Init to an empty line. */ 179 179 int xLeftmost = prclDest->left; /* inclusive */ 180 180 int xRightmost = prclDest->left - 1; /* inclusive */ 181 181 182 182 BYTE *pu8SrcLine = pu8Src; 183 183 BYTE *pu8DestLine = pu8Dest; 184 184 185 185 for (x = prclDest->left; x < prclDest->right; x++) 186 186 { 187 187 int fEqualPixels; 188 188 189 189 if (cbPixelSrc == cbPixelDest) 190 190 { … … 210 210 } 211 211 } 212 212 213 213 if (fEqualPixels) 214 214 { … … 224 224 xRightmost = x; 225 225 } 226 226 227 227 pu8SrcLine += cbPixelSrc; 228 228 pu8DestLine += cbPixelDest; 229 229 } 230 230 231 231 /* min */ 232 232 if (rclDest.left > xLeftmost) … … 234 234 rclDest.left = xLeftmost; 235 235 } 236 236 237 237 /* max */ 238 238 if (rclDest.right < xRightmost) … … 240 240 rclDest.right = xRightmost; 241 241 } 242 242 243 243 if (xLeftmost > xRightmost) /* xRightmost is inclusive, so '>', not '>='. */ 244 244 { … … 254 254 yBottommost = y; 255 255 } 256 256 257 257 pu8Src += psoSrc->lDelta; 258 258 pu8Dest += psoDest->lDelta; 259 259 } 260 260 261 261 /* min */ 262 262 if (rclDest.top > yTopmost) … … 264 264 rclDest.top = yTopmost; 265 265 } 266 266 267 267 /* max */ 268 268 if (rclDest.bottom < yBottommost) … … 270 270 rclDest.bottom = yBottommost; 271 271 } 272 272 273 273 /* rclDest was calculated with right-bottom inclusive. 274 274 * The following checks and the caller require exclusive coords. … … 276 276 rclDest.right++; 277 277 rclDest.bottom++; 278 278 279 279 DISPDBG((1, "vbvaFindChangedRect: new dest %d,%d %dx%d from %d,%d\n", 280 280 rclDest.left, rclDest.top, rclDest.right - rclDest.left, rclDest.bottom - rclDest.top, 281 281 pptlSrc->x, pptlSrc->y 282 282 )); 283 283 284 284 /* Update the rectangle with the changed area. */ 285 285 if ( rclDest.left >= rclDest.right … … 292 292 return FALSE; 293 293 } 294 294 295 295 DISPDBG((1, "vbvaFindChangedRect: not empty\n")); 296 296 297 297 pptlSrc->x += rclDest.left - prclDest->left; 298 298 pptlSrc->y += rclDest.top - prclDest->top; 299 299 300 300 *prclDest = rclDest; 301 301 302 302 return TRUE; 303 303 } … … 309 309 { 310 310 VBVACMDHDR hdr; 311 311 312 312 RECTL rect = *pRectOrig; 313 313 -
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/Makefile.kmk
r26301 r26493 77 77 VBoxVideoWddm_TEMPLATE = VBOXGUESTR0 78 78 ifdef VBOX_SIGN_ADDITIONS # (See the parent makefile.) 79 # driver signing rules will be written once there are all files necessary for that are available, 80 # i.e. a u/m display driver miniport inf 79 # driver signing rules will be written once there are all files necessary for that are available, 80 # i.e. a u/m display driver miniport inf 81 81 $(warning FIXME: !!!define wddm driver signing & install rules !!!) 82 82 VBoxVideoWddm_NOINST = true -
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.cpp
r26324 r26493 740 740 * the Additions service process. The mode table is guaranteed to have 741 741 * two spare entries for this mode (alternating index thus 2). 742 * 742 * 743 743 * ... or ... 744 744 * … … 1471 1471 1472 1472 /* need to call VideoPortGetAccessRanges to ensure interrupt info in ConfigInfo gets set up */ 1473 VP_STATUS status; 1473 VP_STATUS status; 1474 1474 if (vboxQueryWinVersion() == WINNT4) 1475 1475 { -
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideoHGSMI.cpp
r26000 r26493 1391 1391 */ 1392 1392 1393 -
trunk/src/VBox/Additions/WINNT/MouseFilter/kbdmou.h
r1 r26493 132 132 #endif // _KBDMOU_ 133 133 134 -
trunk/src/VBox/Additions/WINNT/VBoxGINA/Dialog.cpp
r25874 r26493 156 156 bIsFQDN = TRUE; 157 157 } 158 158 159 159 if (bIsFQDN) 160 160 { -
trunk/src/VBox/Additions/WINNT/VBoxGINA/WinWlx.h
r20961 r26493 525 525 // from gina in response to WlxGetConsoleSwitchCredentials calls. 526 526 527 // This structure is also returned from winlogon in response to 527 // This structure is also returned from winlogon in response to 528 528 // to WlxQueryConsoleSwitchCredentials call 529 529 // 530 // This is used to implement single session Terminal Server. A remote 530 // This is used to implement single session Terminal Server. A remote 531 531 // session winlogon calls WlxGetConsoleSwitchCredentials to get the token 532 532 // and other info of the logged on user from msgina. This info is then passed to 533 533 // the console session winlogon to autologon the user on the console session. 534 // The gina on console session calls WlxQueryConsoleSwitchCredentials to get 534 // The gina on console session calls WlxQueryConsoleSwitchCredentials to get 535 535 // this info from winlogon and logs on the user. 536 536 // … … 563 563 564 564 // 565 // From MSV1_0_INTERACTIVE_PROFILE 565 // From MSV1_0_INTERACTIVE_PROFILE 566 566 // 567 567 DWORD MessageType; -
trunk/src/VBox/Additions/WINNT/VBoxHook/dllmain.cpp
r8387 r26493 32 32 BOOL bStatus = TRUE; 33 33 34 switch (fdwReason) 34 switch (fdwReason) 35 35 { 36 36 case DLL_PROCESS_ATTACH: … … 53 53 } 54 54 55 -
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxHostVersion.cpp
r23876 r26493 28 28 29 29 30 /** @todo Move this part in VbglR3 and just provide a callback for the platform-specific 30 /** @todo Move this part in VbglR3 and just provide a callback for the platform-specific 31 31 notification stuff, since this is very similar to the VBoxClient code. */ 32 32 int VBoxCheckHostVersion () … … 48 48 char szMsg[256]; /* Sizes according to MSDN. */ 49 49 char szTitle[64]; 50 50 51 51 /** @todo add some translation macros here */ 52 52 _snprintf(szTitle, sizeof(szTitle), "VirtualBox Guest Additions update available!"); … … 54 54 "We recommend updating to the latest version (%s) by choosing the " 55 55 "install option from the Devices menu.", pszGuestVersion, pszHostVersion); 56 56 57 57 rc = showBalloonTip(gInstance, gToolWindow, ID_TRAYICON, szMsg, szTitle, 5000, 0); 58 58 if (RT_FAILURE(rc)) … … 62 62 /* Store host version to not notify again */ 63 63 rc = VbglR3HostVersionLastCheckedStore(uGuestPropSvcClientID, pszHostVersion); 64 64 65 65 VbglR3GuestPropReadValueFree(pszHostVersion); 66 66 VbglR3GuestPropReadValueFree(pszGuestVersion); -
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxRestore.cpp
r21219 r26493 167 167 } 168 168 169 -
trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxVRDP.cpp
r21219 r26493 448 448 } 449 449 450 -
trunk/src/VBox/Additions/WINNT/i8042prt/kbdcmn.c
r1 r26493 10 10 Abstract: 11 11 12 The common portions of the Intel i8042 port driver which 13 apply to the keyboard device. 12 The common portions of the Intel i8042 port driver which 13 apply to the keyboard device. 14 14 15 15 Environment: … … 80 80 BOOLEAN moreDpcProcessing; 81 81 ULONG dataNotConsumed = 0; 82 ULONG inputDataConsumed = 0; 82 ULONG inputDataConsumed = 0; 83 83 LARGE_INTEGER deltaTime; 84 84 … … 101 101 // 102 102 103 operationContext.VariableAddress = 103 operationContext.VariableAddress = 104 104 &deviceExtension->DpcInterlockKeyboard; 105 105 operationContext.Operation = IncrementOperation; … … 122 122 // Get the port InputData queue pointers synchronously. 123 123 // 124 124 125 125 getPointerContext.DeviceExtension = deviceExtension; 126 126 setPointerContext.DeviceExtension = deviceExtension; … … 128 128 setPointerContext.DeviceType = (CCHAR) KeyboardDeviceType; 129 129 setPointerContext.InputCount = 0; 130 130 131 131 KeSynchronizeExecution( 132 132 deviceExtension->KeyboardInterruptObject, … … 134 134 (PVOID) &getPointerContext 135 135 ); 136 136 137 137 if (getPointerContext.InputCount != 0) { 138 138 139 139 // 140 140 // Call the connected class driver's callback ISR with the 141 141 // port InputData queue pointers. If we have to wrap the queue, 142 // break the operation into two pieces, and call the class 142 // break the operation into two pieces, and call the class 143 143 // callback ISR once for each piece. 144 144 // 145 145 146 146 classDeviceObject = 147 147 deviceExtension->KeyboardExtension.ConnectData.ClassDeviceObject; … … 149 149 deviceExtension->KeyboardExtension.ConnectData.ClassService; 150 150 ASSERT(classService != NULL); 151 151 152 152 if (getPointerContext.DataOut >= getPointerContext.DataIn) { 153 153 154 154 // 155 155 // We'll have to wrap the InputData circular buffer. Call 156 // the class callback ISR with the chunk of data starting at 156 // the class callback ISR with the chunk of data starting at 157 157 // DataOut and ending at the end of the queue. 158 158 // 159 160 I8xPrint(( 161 2, 159 160 I8xPrint(( 161 2, 162 162 "I8042PRT-I8042KeyboardIsrDpc: calling class callback\n" 163 163 )); … … 168 168 deviceExtension->KeyboardExtension.DataEnd 169 169 )); 170 170 171 171 (*(PSERVICE_CALLBACK_ROUTINE) classService)( 172 172 classDeviceObject, … … 175 175 &inputDataConsumed 176 176 ); 177 177 178 178 dataNotConsumed = (((PUCHAR) 179 179 deviceExtension->KeyboardExtension.DataEnd - 180 (PUCHAR) getPointerContext.DataOut) 180 (PUCHAR) getPointerContext.DataOut) 181 181 / sizeof(KEYBOARD_INPUT_DATA)) - inputDataConsumed; 182 182 … … 189 189 190 190 setPointerContext.InputCount += inputDataConsumed; 191 191 192 192 if (dataNotConsumed) { 193 setPointerContext.DataOut = 194 ((PUCHAR)getPointerContext.DataOut) + 193 setPointerContext.DataOut = 194 ((PUCHAR)getPointerContext.DataOut) + 195 195 (inputDataConsumed * sizeof(KEYBOARD_INPUT_DATA)); 196 196 } else { … … 200 200 } 201 201 } 202 202 203 203 // 204 204 // Call the class callback ISR with data remaining in the queue. 205 205 // 206 206 207 207 if ((dataNotConsumed == 0) && 208 208 (inputDataConsumed < getPointerContext.InputCount)){ 209 209 I8xPrint(( 210 2, 210 2, 211 211 "I8042PRT-I8042KeyboardIsrDpc: calling class callback\n" 212 212 )); … … 217 217 getPointerContext.DataIn 218 218 )); 219 219 220 220 (*(PSERVICE_CALLBACK_ROUTINE) classService)( 221 221 classDeviceObject, … … 225 225 ); 226 226 227 dataNotConsumed = (((PUCHAR) getPointerContext.DataIn - 227 dataNotConsumed = (((PUCHAR) getPointerContext.DataIn - 228 228 (PUCHAR) getPointerContext.DataOut) 229 229 / sizeof(KEYBOARD_INPUT_DATA)) - inputDataConsumed; 230 230 231 231 I8xPrint(( 232 232 2, … … 236 236 )); 237 237 238 setPointerContext.DataOut = 238 setPointerContext.DataOut = 239 239 ((PUCHAR)getPointerContext.DataOut) + 240 240 (inputDataConsumed * sizeof(KEYBOARD_INPUT_DATA)); … … 242 242 243 243 } 244 244 245 245 // 246 246 // Update the port InputData queue DataOut pointer and InputCount 247 247 // synchronously. 248 248 // 249 249 250 250 KeSynchronizeExecution( 251 251 deviceExtension->KeyboardInterruptObject, … … 253 253 (PVOID) &setPointerContext 254 254 ); 255 255 256 256 } 257 257 … … 259 259 260 260 // 261 // The class driver was unable to consume all the data. 261 // The class driver was unable to consume all the data. 262 262 // Reset the interlocked variable to -1. We do not want 263 263 // to attempt to move more data to the class driver at this … … 266 266 // of the data out of the class driver's queue. We accomplish 267 267 // this "wait" via a timer. 268 // 268 // 269 269 270 270 I8xPrint((2, "I8042PRT-I8042KeyboardIsrDpc: set timer in DPC\n")); … … 273 273 interlockedResult = -1; 274 274 operationContext.NewValue = &interlockedResult; 275 275 276 276 KeSynchronizeExecution( 277 277 deviceExtension->KeyboardInterruptObject, … … 289 289 ); 290 290 291 moreDpcProcessing = FALSE; 291 moreDpcProcessing = FALSE; 292 292 293 293 } else { 294 294 295 295 // 296 296 // Decrement DpcInterlockKeyboard. If the result goes negative, 297 297 // then we're all finished processing the DPC. Otherwise, either 298 298 // the ISR incremented DpcInterlockKeyboard because it has more 299 // work for the ISR DPC to do, or a concurrent DPC executed on 300 // some processor while the current DPC was running (the 301 // concurrent DPC wouldn't have done any work). Make sure that 299 // work for the ISR DPC to do, or a concurrent DPC executed on 300 // some processor while the current DPC was running (the 301 // concurrent DPC wouldn't have done any work). Make sure that 302 302 // the current DPC handles any extra work that is ready to be 303 303 // done. … … 306 306 operationContext.Operation = DecrementOperation; 307 307 operationContext.NewValue = &interlockedResult; 308 308 309 309 KeSynchronizeExecution( 310 310 deviceExtension->KeyboardInterruptObject, … … 325 325 interlockedResult = 0; 326 326 operationContext.NewValue = &interlockedResult; 327 327 328 328 KeSynchronizeExecution( 329 329 deviceExtension->KeyboardInterruptObject, -
trunk/src/VBox/Additions/WINNT/i8042prt/kbddep.c
r20961 r26493 886 886 PI8042_CONFIGURATION_INFORMATION configuration; 887 887 PKEYBOARD_ID keyboardId; 888 #endif 888 #endif 889 889 LARGE_INTEGER startOfSpin, nextQuery, difference, tenSeconds; 890 890 BOOLEAN waitForAckOnReset = WAIT_FOR_ACKNOWLEDGE; -
trunk/src/VBox/Additions/WINNT/i8042prt/moucmn.c
r1 r26493 10 10 Abstract: 11 11 12 The common portions of the Intel i8042 port driver which 13 apply to the auxiliary (PS/2 mouse) device. 12 The common portions of the Intel i8042 port driver which 13 apply to the auxiliary (PS/2 mouse) device. 14 14 15 15 Environment: … … 80 80 BOOLEAN moreDpcProcessing; 81 81 ULONG dataNotConsumed = 0; 82 ULONG inputDataConsumed = 0; 82 ULONG inputDataConsumed = 0; 83 83 LARGE_INTEGER deltaTime; 84 84 … … 101 101 // 102 102 103 operationContext.VariableAddress = 103 operationContext.VariableAddress = 104 104 &deviceExtension->DpcInterlockMouse; 105 105 operationContext.Operation = IncrementOperation; … … 122 122 // Get the port InputData queue pointers synchronously. 123 123 // 124 124 125 125 getPointerContext.DeviceExtension = deviceExtension; 126 126 setPointerContext.DeviceExtension = deviceExtension; … … 128 128 setPointerContext.DeviceType = (CCHAR) MouseDeviceType; 129 129 setPointerContext.InputCount = 0; 130 130 131 131 KeSynchronizeExecution( 132 132 deviceExtension->MouseInterruptObject, … … 134 134 (PVOID) &getPointerContext 135 135 ); 136 136 137 137 if (getPointerContext.InputCount != 0) { 138 138 139 139 // 140 140 // Call the connected class driver's callback ISR with the … … 143 143 // ISR once for each piece. 144 144 // 145 145 146 146 classDeviceObject = 147 147 deviceExtension->MouseExtension.ConnectData.ClassDeviceObject; … … 149 149 deviceExtension->MouseExtension.ConnectData.ClassService; 150 150 ASSERT(classService != NULL); 151 151 152 152 if (getPointerContext.DataOut >= getPointerContext.DataIn) { 153 153 154 154 // 155 155 // We'll have to wrap the InputData circular buffer. Call 156 // the class callback ISR with the chunk of data starting at 156 // the class callback ISR with the chunk of data starting at 157 157 // DataOut and ending at the end of the queue. 158 158 // 159 160 I8xPrint(( 161 2, 159 160 I8xPrint(( 161 2, 162 162 "I8042PRT-I8042MouseIsrDpc: calling class callback\n" 163 163 )); … … 168 168 deviceExtension->MouseExtension.DataEnd 169 169 )); 170 170 171 171 (*(PSERVICE_CALLBACK_ROUTINE) classService)( 172 172 classDeviceObject, … … 175 175 &inputDataConsumed 176 176 ); 177 177 178 178 dataNotConsumed = (((PUCHAR) 179 179 deviceExtension->MouseExtension.DataEnd - 180 (PUCHAR) getPointerContext.DataOut) 180 (PUCHAR) getPointerContext.DataOut) 181 181 / sizeof(MOUSE_INPUT_DATA)) - inputDataConsumed; 182 182 … … 189 189 190 190 setPointerContext.InputCount += inputDataConsumed; 191 191 192 192 if (dataNotConsumed) { 193 setPointerContext.DataOut = 194 ((PUCHAR)getPointerContext.DataOut) + 193 setPointerContext.DataOut = 194 ((PUCHAR)getPointerContext.DataOut) + 195 195 (inputDataConsumed * sizeof(MOUSE_INPUT_DATA)); 196 196 } else { … … 200 200 } 201 201 } 202 202 203 203 // 204 204 // Call the class callback ISR with data remaining in the queue. 205 205 // 206 206 207 207 if ((dataNotConsumed == 0) && 208 208 (inputDataConsumed < getPointerContext.InputCount)){ 209 209 I8xPrint(( 210 2, 210 2, 211 211 "I8042PRT-I8042MouseIsrDpc: calling class callback\n" 212 212 )); … … 217 217 getPointerContext.DataIn 218 218 )); 219 219 220 220 (*(PSERVICE_CALLBACK_ROUTINE) classService)( 221 221 classDeviceObject, … … 225 225 ); 226 226 227 dataNotConsumed = (((PUCHAR) getPointerContext.DataIn - 227 dataNotConsumed = (((PUCHAR) getPointerContext.DataIn - 228 228 (PUCHAR) getPointerContext.DataOut) 229 229 / sizeof(MOUSE_INPUT_DATA)) - inputDataConsumed; 230 230 231 231 I8xPrint(( 232 232 2, … … 236 236 )); 237 237 238 setPointerContext.DataOut = 238 setPointerContext.DataOut = 239 239 ((PUCHAR)getPointerContext.DataOut) + 240 240 (inputDataConsumed * sizeof(MOUSE_INPUT_DATA)); … … 242 242 243 243 } 244 244 245 245 // 246 246 // Update the port InputData queue DataOut pointer and InputCount 247 247 // synchronously. 248 248 // 249 249 250 250 KeSynchronizeExecution( 251 251 deviceExtension->MouseInterruptObject, … … 253 253 (PVOID) &setPointerContext 254 254 ); 255 255 256 256 } 257 257 258 258 if (dataNotConsumed) { 259 259 260 260 // 261 // The class driver was unable to consume all the data. 261 // The class driver was unable to consume all the data. 262 262 // Reset the interlocked variable to -1. We do not want 263 263 // to attempt to move more data to the class driver at this … … 266 266 // of the data out of the class driver's queue. We accomplish 267 267 // this "wait" via a timer. 268 // 268 // 269 269 270 270 I8xPrint((2, "I8042PRT-I8042MouseIsrDpc: set timer in DPC\n")); … … 273 273 interlockedResult = -1; 274 274 operationContext.NewValue = &interlockedResult; 275 275 276 276 KeSynchronizeExecution( 277 277 deviceExtension->MouseInterruptObject, … … 289 289 ); 290 290 291 moreDpcProcessing = FALSE; 291 moreDpcProcessing = FALSE; 292 292 293 293 } else { 294 294 295 295 // 296 296 // Decrement DpcInterlockMouse. If the result goes negative, 297 297 // then we're all finished processing the DPC. Otherwise, either 298 298 // the ISR incremented DpcInterlockMouse because it has more 299 // work for the ISR DPC to do, or a concurrent DPC executed on 300 // some processor while the current DPC was running (the 301 // concurrent DPC wouldn't have done any work). Make sure that 299 // work for the ISR DPC to do, or a concurrent DPC executed on 300 // some processor while the current DPC was running (the 301 // concurrent DPC wouldn't have done any work). Make sure that 302 302 // the current DPC handles any extra work that is ready to be 303 303 // done. … … 306 306 operationContext.Operation = DecrementOperation; 307 307 operationContext.NewValue = &interlockedResult; 308 308 309 309 KeSynchronizeExecution( 310 310 deviceExtension->MouseInterruptObject, … … 325 325 interlockedResult = 0; 326 326 operationContext.NewValue = &interlockedResult; 327 327 328 328 KeSynchronizeExecution( 329 329 deviceExtension->MouseInterruptObject, -
trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuestIDC-unix.c.h
r21613 r26493 94 94 } 95 95 96 -
trunk/src/VBox/Additions/common/VBoxGuestLib/GenericRequest.cpp
r26425 r26493 72 72 73 73 /* This can be a variable size request. Check the request type and limit the size 74 * to VMMDEV_MAX_VMMDEVREQ_SIZE, which is max size supported by the host. 74 * to VMMDEV_MAX_VMMDEVREQ_SIZE, which is max size supported by the host. 75 75 */ 76 76 if ( pReq->requestType == VMMDevReq_LogString -
trunk/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibMisc.cpp
r26425 r26493 331 331 return RTErrConvertFromWin32(RegCloseKey(hKey)); 332 332 } 333 #endif /* RT_OS_WINDOWS */ 333 #endif /* RT_OS_WINDOWS */ 334 334 335 335 -
trunk/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibVideo.cpp
r26425 r26493 145 145 * most recent host request, otherwise it will return the 146 146 * last request to be acknowleged. 147 * 147 * 148 148 */ 149 149 VBGLR3DECL(int) VbglR3GetDisplayChangeRequest(uint32_t *pcx, uint32_t *pcy, uint32_t *pcBits, uint32_t *piDisplay, bool fAck) -
trunk/src/VBox/Additions/linux/installer/autorun.sh
r26465 r26493 79 79 idbin=$found 80 80 fi 81 fi 81 fi 82 82 83 83 # check if pfexec can get the job done … … 104 104 rdepend=quit 105 105 space=quit 106 mail= 106 mail= 107 107 " > /tmp/vbox.autoinstall 108 108 -
trunk/src/VBox/Additions/os2/Makefile.kmk
r23452 r26493 38 38 39 39 include $(KBUILD_PATH)/subfooter.kmk 40 40 -
trunk/src/VBox/Additions/solaris/DRM/include/drm.h
r18057 r26493 603 603 DRM_DRAWABLE_CLIPRECTS, 604 604 } drm_drawable_info_type_t; 605 605 606 606 typedef struct drm_update_draw { 607 607 drm_drawable_t handle; … … 639 639 } drm_vblank_seq_type_t; 640 640 641 #define _DRM_VBLANK_TYPES_MASK (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE) 641 #define _DRM_VBLANK_TYPES_MASK (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE) 642 642 #define _DRM_VBLANK_FLAGS_MASK (_DRM_VBLANK_SIGNAL | _DRM_VBLANK_SECONDARY | \ 643 _DRM_VBLANK_NEXTONMISS) 643 _DRM_VBLANK_NEXTONMISS) 644 644 645 645 struct drm_wait_vblank_request { -
trunk/src/VBox/Additions/solaris/DRM/vboxvideo_drm.c
r18576 r26493 386 386 pDriver->irq_handler = drm_driver_irq_handler; 387 387 388 pDriver->driver_ioctls = 389 pDriver->max_driver_ioctls = 388 pDriver->driver_ioctls = 389 pDriver->max_driver_ioctls = 390 390 #endif 391 391 -
trunk/src/VBox/Additions/solaris/Makefile.kmk
r25911 r26493 297 297 else # !VBOX_WITH_COMBINED_SOLARIS_GUEST_PACKAGE 298 298 ifdef VBOX_COMPRESS 299 $(QUIET)$(VBOX_COMPRESS) $(addprefix $(SOLARIS_VBOXADDINST_DIR_ISA)/,$(SOLARIS_ADD_COMPRESS_FILES)) 299 $(QUIET)$(VBOX_COMPRESS) $(addprefix $(SOLARIS_VBOXADDINST_DIR_ISA)/,$(SOLARIS_ADD_COMPRESS_FILES)) 300 300 endif 301 301 $(LN_SYMLINK) -f ../../..$(SOLARIS_VBOXADDINST_SUBDIR)/$(SOLARIS_ADDDIR_NAME_ISA)/vboxfsmount $(SOLARIS_ADD_ETCFS_DIR)/mount -
trunk/src/VBox/Additions/solaris/SharedFolders/vboxfs_vfs.c
r25883 r26493 306 306 if (error) 307 307 return (error); 308 308 309 309 /* 310 310 * find what we are mounting -
trunk/src/VBox/Additions/solaris/SharedFolders/vboxfs_vnode.c
r25883 r26493 295 295 if (!node->sf_is_stale && node->sf_type == VDIR) { 296 296 len = strlen(node->sf_path); 297 297 298 298 n = node; 299 299 while ((n = AVL_NEXT(&sfnodes, node)) != NULL) { … … 474 474 475 475 /* 476 * Look for an existing node. 476 * Look for an existing node. 477 477 */ 478 478 fullpath = sfnode_construct_path(dir, name); … … 630 630 } 631 631 names = (void *)prov_buff; 632 632 633 633 /* 634 634 * Lookup each of the names, so that we have ino's. -
trunk/src/VBox/Additions/x11/vboxmouse/vboxmouse_15.c
r26024 r26493 104 104 miPointerGetMotionBufferSize() 105 105 #elif GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 3 106 GetMotionHistory, VBoxPtrCtrlProc, 106 GetMotionHistory, VBoxPtrCtrlProc, 107 107 GetMotionHistorySize(), 2 /* Number of axes */ 108 108 -
trunk/src/VBox/Additions/x11/vboxmouse/xorg14/mouse.c
r12929 r26493 3909 3909 #endif /* XFree86LOADER */ 3910 3910 3911 -
trunk/src/VBox/Additions/x11/vboxmouse/xorg70/mouse.c
r12929 r26493 3874 3874 #endif /* XFree86LOADER */ 3875 3875 3876 -
trunk/src/VBox/Additions/x11/vboxmouse/xorg71/mouse.c
r12929 r26493 3886 3886 #endif /* XFree86LOADER */ 3887 3887 3888 -
trunk/src/VBox/Additions/x11/vboxvideo/vboxvideo_13.c
r26040 r26493 204 204 205 205 TRACE_LOG("width=%d, height=%d\n", width, height); 206 /* We only support horizontal resolutions which are a multiple of 8. 206 /* We only support horizontal resolutions which are a multiple of 8. 207 207 * Round up if necessary. */ 208 208 width = (width + 7) & ~7; … … 1063 1063 } 1064 1064 pScrn->vtSema = FALSE; 1065 1065 1066 1066 /* Destroy the VGA hardware record */ 1067 1067 vgaHWFreeHWRec(pScrn); -
trunk/src/VBox/Additions/x11/vboxvideo/vboxvideo_70.c
r26054 r26493 611 611 } 612 612 } 613 613 614 614 /* Colour weight - we always call this, since we are always in 615 615 truecolour. */
Note:
See TracChangeset
for help on using the changeset viewer.