Changeset 91905 in vbox for trunk/src/VBox/Devices/Input
- Timestamp:
- Oct 20, 2021 5:43:26 PM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 147710
- Location:
- trunk/src/VBox/Devices/Input
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Input/DrvKeyboardQueue.cpp
r91863 r91905 66 66 PDMIKEYBOARDPORT IPort; 67 67 /** The queue handle. */ 68 P PDMQUEUE pQueue;68 PDMQUEUEHANDLE hQueue; 69 69 /** State of the scancode translation. */ 70 70 scan_state_t XlatState; … … 232 232 if (pDrv->XlatState == SS_IDLE) 233 233 { 234 PDRVKBDQUEUEITEM pItem = (PDRVKBDQUEUEITEM)PDM QueueAlloc(pDrv->pQueue);234 PDRVKBDQUEUEITEM pItem = (PDRVKBDQUEUEITEM)PDMDrvHlpQueueAlloc(pDrv->pDrvIns, pDrv->hQueue); 235 235 if (pItem) 236 236 { … … 243 243 || (idUsage == (PDMIKBDPORT_KEY_UP | HID_PG_KB_BITS | 0x91))) 244 244 { 245 PDRVKBDQUEUEITEM pItem2 = (PDRVKBDQUEUEITEM)PDM QueueAlloc(pDrv->pQueue);245 PDRVKBDQUEUEITEM pItem2 = (PDRVKBDQUEUEITEM)PDMDrvHlpQueueAlloc(pDrv->pDrvIns, pDrv->hQueue); 246 246 /* 247 247 * NB: If there's no room in the queue, we will drop the faked … … 252 252 /* Manufacture a key down event. */ 253 253 pItem2->idUsage = idUsage & ~PDMIKBDPORT_KEY_UP; 254 PDM QueueInsert(pDrv->pQueue, &pItem2->Core);254 PDMDrvHlpQueueInsert(pDrv->pDrvIns, pDrv->hQueue, &pItem2->Core); 255 255 } 256 256 } 257 257 258 258 pItem->idUsage = idUsage; 259 PDM QueueInsert(pDrv->pQueue, &pItem->Core);259 PDMDrvHlpQueueInsert(pDrv->pDrvIns, pDrv->hQueue, &pItem->Core); 260 260 261 261 return VINF_SUCCESS; … … 265 265 return VERR_PDM_NO_QUEUE_ITEMS; 266 266 } 267 else 268 return VINF_SUCCESS; 267 return VINF_SUCCESS; 269 268 } 270 269 … … 283 282 return VINF_SUCCESS; 284 283 285 PDRVKBDQUEUEITEM pItem = (PDRVKBDQUEUEITEM)PDM QueueAlloc(pDrv->pQueue);284 PDRVKBDQUEUEITEM pItem = (PDRVKBDQUEUEITEM)PDMDrvHlpQueueAlloc(pDrv->pDrvIns, pDrv->hQueue); 286 285 if (pItem) 287 286 { 288 287 pItem->idUsage = idUsage; 289 PDM QueueInsert(pDrv->pQueue, &pItem->Core);288 PDMDrvHlpQueueInsert(pDrv->pDrvIns, pDrv->hQueue, &pItem->Core); 290 289 291 290 return VINF_SUCCESS; 292 291 } 293 if (!pDrv->fSuspended) 294 AssertMsgFailed(("drvKbdQueuePutEventHid: Queue is full!!!!\n")); 292 AssertMsg(pDrv->fSuspended, ("drvKbdQueuePutEventHid: Queue is full!!!!\n")); 295 293 return VERR_PDM_NO_QUEUE_ITEMS; 296 294 } … … 311 309 return VINF_SUCCESS; 312 310 313 PDRVKBDQUEUEITEM pItem = (PDRVKBDQUEUEITEM)PDM QueueAlloc(pDrv->pQueue);311 PDRVKBDQUEUEITEM pItem = (PDRVKBDQUEUEITEM)PDMDrvHlpQueueAlloc(pDrv->pDrvIns, pDrv->hQueue); 314 312 if (pItem) 315 313 { … … 319 317 */ 320 318 pItem->idUsage = PDMIKBDPORT_RELEASE_KEYS | HID_PG_KB_BITS; 321 PDM QueueInsert(pDrv->pQueue, &pItem->Core);319 PDMDrvHlpQueueInsert(pDrv->pDrvIns, pDrv->hQueue, &pItem->Core); 322 320 323 321 return VINF_SUCCESS; 324 322 } 325 if (!pDrv->fSuspended) 326 AssertMsgFailed(("drvKbdQueueReleaseKeys: Queue is full!!!!\n")); 323 AssertMsg(pDrv->fSuspended, ("drvKbdQueueReleaseKeys: Queue is full!!!!\n")); 327 324 return VERR_PDM_NO_QUEUE_ITEMS; 328 325 } … … 369 366 PDRVKBDQUEUE pDrv = PPDMIKEYBOARDCONNECTOR_2_DRVKBDQUEUE(pInterface); 370 367 371 AssertPtr(pDrv->pQueue); 372 PDMQueueFlushIfNecessary(pDrv->pQueue); 368 PDMDrvHlpQueueFlushIfNecessary(pDrv->pDrvIns, pDrv->hQueue); 373 369 } 374 370 … … 483 479 * Init basic data members and interfaces. 484 480 */ 481 pDrv->pDrvIns = pDrvIns; 485 482 pDrv->fInactive = true; 486 483 pDrv->fSuspended = false; … … 501 498 */ 502 499 pDrv->pUpPort = PDMIBASE_QUERY_INTERFACE(pDrvIns->pUpBase, PDMIKEYBOARDPORT); 503 if (!pDrv->pUpPort) 504 { 505 AssertMsgFailed(("Configuration error: No keyboard port interface above!\n")); 506 return VERR_PDM_MISSING_INTERFACE_ABOVE; 507 } 500 AssertMsgReturn(pDrv->pUpPort, ("Configuration error: No keyboard port interface above!\n"), VERR_PDM_MISSING_INTERFACE_ABOVE); 508 501 509 502 /* … … 512 505 PPDMIBASE pDownBase; 513 506 int rc = PDMDrvHlpAttach(pDrvIns, fFlags, &pDownBase); 514 if (RT_FAILURE(rc)) 515 { 516 AssertMsgFailed(("Failed to attach driver below us! rc=%Rra\n", rc)); 517 return rc; 518 } 507 AssertMsgRCReturn(rc, ("Failed to attach driver below us! rc=%Rra\n", rc), rc); 508 519 509 pDrv->pDownConnector = PDMIBASE_QUERY_INTERFACE(pDownBase, PDMIKEYBOARDCONNECTOR); 520 if (!pDrv->pDownConnector) 521 { 522 AssertMsgFailed(("Configuration error: No keyboard connector interface below!\n")); 523 return VERR_PDM_MISSING_INTERFACE_BELOW; 524 } 510 AssertMsgReturn(pDrv->pDownConnector, ("Configuration error: No keyboard connector interface below!\n"), 511 VERR_PDM_MISSING_INTERFACE_BELOW); 525 512 526 513 /* … … 531 518 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 532 519 cMilliesInterval = 0; 533 else if (RT_FAILURE(rc)) 534 { 535 AssertMsgFailed(("Configuration error: 32-bit \"Interval\" -> rc=%Rrc\n", rc)); 536 return rc; 537 } 520 else 521 AssertMsgRCReturn(rc, ("Configuration error: 32-bit \"Interval\" -> rc=%Rrc\n", rc), rc); 538 522 539 523 uint32_t cItems = 0; … … 541 525 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 542 526 cItems = 128; 543 else if (RT_FAILURE(rc)) 544 { 545 AssertMsgFailed(("Configuration error: 32-bit \"QueueSize\" -> rc=%Rrc\n", rc)); 546 return rc; 547 } 527 else 528 AssertMsgRCReturn(rc, ("Configuration error: 32-bit \"QueueSize\" -> rc=%Rrc\n", rc), rc); 548 529 549 530 rc = PDMDrvHlpQueueCreate(pDrvIns, sizeof(DRVKBDQUEUEITEM), cItems, cMilliesInterval, 550 drvKbdQueueConsumer, "Keyboard", &pDrv->pQueue); 551 if (RT_FAILURE(rc)) 552 { 553 AssertMsgFailed(("Failed to create driver: cItems=%d cMilliesInterval=%d rc=%Rrc\n", cItems, cMilliesInterval, rc)); 554 return rc; 555 } 531 drvKbdQueueConsumer, "Keyboard", &pDrv->hQueue); 532 AssertMsgRCReturn(rc, ("Failed to create driver: cItems=%d cMilliesInterval=%d rc=%Rrc\n", cItems, cMilliesInterval, rc), rc); 556 533 557 534 return VINF_SUCCESS; -
trunk/src/VBox/Devices/Input/DrvMouseQueue.cpp
r91863 r91905 51 51 PDMIMOUSEPORT IPort; 52 52 /** The queue handle. */ 53 P PDMQUEUE pQueue;53 PDMQUEUEHANDLE hQueue; 54 54 /** Discard input when this flag is set. 55 55 * We only accept input when the VM is running. */ … … 129 129 return VINF_SUCCESS; 130 130 131 PDRVMOUSEQUEUEITEM pItem = (PDRVMOUSEQUEUEITEM)PDM QueueAlloc(pDrv->pQueue);131 PDRVMOUSEQUEUEITEM pItem = (PDRVMOUSEQUEUEITEM)PDMDrvHlpQueueAlloc(pDrv->pDrvIns, pDrv->hQueue); 132 132 if (pItem) 133 133 { … … 139 139 pItem->u.Relative.dw = dw; 140 140 pItem->u.Relative.fButtons = fButtons; 141 PDM QueueInsert(pDrv->pQueue, &pItem->Core);141 PDMDrvHlpQueueInsert(pDrv->pDrvIns, pDrv->hQueue, &pItem->Core); 142 142 return VINF_SUCCESS; 143 143 } … … 157 157 return VINF_SUCCESS; 158 158 159 PDRVMOUSEQUEUEITEM pItem = (PDRVMOUSEQUEUEITEM)PDM QueueAlloc(pDrv->pQueue);159 PDRVMOUSEQUEUEITEM pItem = (PDRVMOUSEQUEUEITEM)PDMDrvHlpQueueAlloc(pDrv->pDrvIns, pDrv->hQueue); 160 160 if (pItem) 161 161 { … … 167 167 pItem->u.Absolute.dw = dw; 168 168 pItem->u.Absolute.fButtons = fButtons; 169 PDM QueueInsert(pDrv->pQueue, &pItem->Core);169 PDMDrvHlpQueueInsert(pDrv->pDrvIns, pDrv->hQueue, &pItem->Core); 170 170 return VINF_SUCCESS; 171 171 } … … 213 213 PDRVMOUSEQUEUE pDrv = PPDMIMOUSECONNECTOR_2_DRVMOUSEQUEUE(pInterface); 214 214 215 AssertPtr(pDrv->pQueue); 216 PDMQueueFlushIfNecessary(pDrv->pQueue); 215 PDMDrvHlpQueueFlushIfNecessary(pDrv->pDrvIns, pDrv->hQueue); 217 216 } 218 217 … … 342 341 * Init basic data members and interfaces. 343 342 */ 343 pDrv->pDrvIns = pDrvIns; 344 344 pDrv->fInactive = true; 345 345 /* IBase. */ … … 357 357 */ 358 358 pDrv->pUpPort = PDMIBASE_QUERY_INTERFACE(pDrvIns->pUpBase, PDMIMOUSEPORT); 359 if (!pDrv->pUpPort) 360 { 361 AssertMsgFailed(("Configuration error: No mouse port interface above!\n")); 362 return VERR_PDM_MISSING_INTERFACE_ABOVE; 363 } 359 AssertMsgReturn(pDrv->pUpPort, ("Configuration error: No mouse port interface above!\n"), VERR_PDM_MISSING_INTERFACE_ABOVE); 364 360 365 361 /* … … 368 364 PPDMIBASE pDownBase; 369 365 int rc = PDMDrvHlpAttach(pDrvIns, fFlags, &pDownBase); 370 if (RT_FAILURE(rc)) 371 { 372 AssertMsgFailed(("Failed to attach driver below us! rc=%Rra\n", rc)); 373 return rc; 374 } 366 AssertMsgRCReturn(rc, ("Failed to attach driver below us! rc=%Rra\n", rc), rc); 367 375 368 pDrv->pDownConnector = PDMIBASE_QUERY_INTERFACE(pDownBase, PDMIMOUSECONNECTOR); 376 if (!pDrv->pDownConnector) 377 { 378 AssertMsgFailed(("Configuration error: No mouse connector interface below!\n")); 379 return VERR_PDM_MISSING_INTERFACE_BELOW; 380 } 369 AssertMsgReturn(pDrv->pDownConnector, ("Configuration error: No mouse connector interface below!\n"), 370 VERR_PDM_MISSING_INTERFACE_BELOW); 381 371 382 372 /* … … 387 377 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 388 378 cMilliesInterval = 0; 389 else if (RT_FAILURE(rc)) 390 { 391 AssertMsgFailed(("Configuration error: 32-bit \"Interval\" -> rc=%Rrc\n", rc)); 392 return rc; 393 } 379 else 380 AssertMsgRCReturn(rc, ("Configuration error: 32-bit \"Interval\" -> rc=%Rrc\n", rc), rc); 394 381 395 382 uint32_t cItems = 0; … … 397 384 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 398 385 cItems = 128; 399 else if (RT_FAILURE(rc)) 400 { 401 AssertMsgFailed(("Configuration error: 32-bit \"QueueSize\" -> rc=%Rrc\n", rc)); 402 return rc; 403 } 386 else 387 AssertMsgRCReturn(rc, ("Configuration error: 32-bit \"QueueSize\" -> rc=%Rrc\n", rc), rc); 404 388 405 389 rc = PDMDrvHlpQueueCreate(pDrvIns, sizeof(DRVMOUSEQUEUEITEM), cItems, cMilliesInterval, 406 drvMouseQueueConsumer, "Mouse", &pDrv->pQueue); 407 if (RT_FAILURE(rc)) 408 { 409 AssertMsgFailed(("Failed to create driver: cItems=%d cMilliesInterval=%d rc=%Rrc\n", cItems, cMilliesInterval, rc)); 410 return rc; 411 } 390 drvMouseQueueConsumer, "Mouse", &pDrv->hQueue); 391 AssertMsgRCReturn(rc, ("Failed to create driver: cItems=%d cMilliesInterval=%d rc=%Rrc\n", cItems, cMilliesInterval, rc), rc); 412 392 413 393 return VINF_SUCCESS;
Note:
See TracChangeset
for help on using the changeset viewer.