Changeset 89204 in vbox
- Timestamp:
- May 20, 2021 4:33:56 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 144545
- Location:
- trunk/src/VBox
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/AudioTestService.cpp
r89180 r89204 106 106 * ATS client instance. 107 107 */ 108 typedef struct ATSCLIENT 108 typedef struct ATSCLIENTINST 109 109 { 110 110 /** List node for new clients. */ … … 116 116 /** Client hostname. */ 117 117 char *pszHostname; 118 } ATSCLIENT ;118 } ATSCLIENTINST; 119 119 /** Pointer to a ATS client instance. */ 120 typedef ATSCLIENT *PATSCLIENT;120 typedef ATSCLIENTINST *PATSCLIENTINST; 121 121 122 122 /** … … 152 152 * aligned buffer. 153 153 */ 154 static int atsSendPkt(PATSCLIENT pClient, PATSPKTHDR pPkt)154 static int atsSendPkt(PATSCLIENTINST pClient, PATSPKTHDR pPkt) 155 155 { 156 156 Assert(pPkt->cb >= sizeof(*pPkt)); … … 176 176 * @param pszOpcode The BABBLE opcode. 177 177 */ 178 static void atsReplyBabble(PATSCLIENT pClient, const char *pszOpcode)178 static void atsReplyBabble(PATSCLIENTINST pClient, const char *pszOpcode) 179 179 { 180 180 ATSPKTHDR Reply; … … 198 198 * @param fAutoRetryOnFailure Whether to retry on error. 199 199 */ 200 static int atsRecvPkt(PATSCLIENT pClient, PPATSPKTHDR ppPktHdr, bool fAutoRetryOnFailure)200 static int atsRecvPkt(PATSCLIENTINST pClient, PPATSPKTHDR ppPktHdr, bool fAutoRetryOnFailure) 201 201 { 202 202 for (;;) … … 281 281 * @param cbExtra Bytes in addition to the header. 282 282 */ 283 static int atsReplyInternal(PATSCLIENT pClient, PATSPKTSTS pReply, const char *pszOpcode, size_t cbExtra)283 static int atsReplyInternal(PATSCLIENTINST pClient, PATSPKTSTS pReply, const char *pszOpcode, size_t cbExtra) 284 284 { 285 285 /* copy the opcode, don't be too strict in case of a padding screw up. */ … … 312 312 * with space. 313 313 */ 314 static int atsReplySimple(PATSCLIENT pClient, PCATSPKTHDR pPktHdr, const char *pszOpcode)314 static int atsReplySimple(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr, const char *pszOpcode) 315 315 { 316 316 ATSPKTSTS Pkt; … … 330 330 * @param pPktHdr The original packet (for future use). 331 331 */ 332 static int atsReplyAck(PATSCLIENT pClient, PCATSPKTHDR pPktHdr)332 static int atsReplyAck(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr) 333 333 { 334 334 return atsReplySimple(pClient, pPktHdr, "ACK "); … … 348 348 * @param va Format arguments. 349 349 */ 350 static int atsReplyFailureV(PATSCLIENT pClient, PCATSPKTHDR pPktHdr, const char *pszOpcode, int rcReq, const char *pszDetailFmt, va_list va)350 static int atsReplyFailureV(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr, const char *pszOpcode, int rcReq, const char *pszDetailFmt, va_list va) 351 351 { 352 352 NOREF(pPktHdr); … … 378 378 * @param ... Format arguments. 379 379 */ 380 static int atsReplyFailure(PATSCLIENT pClient, PCATSPKTHDR pPktHdr, const char *pszOpcode, int rcReq, const char *pszDetailFmt, ...)380 static int atsReplyFailure(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr, const char *pszOpcode, int rcReq, const char *pszDetailFmt, ...) 381 381 { 382 382 va_list va; … … 398 398 * @param ... Arguments to the format string. 399 399 */ 400 static int atsReplyRC(PATSCLIENT pClient, PCATSPKTHDR pPktHdr, int rcOperation, const char *pszOperationFmt, ...)400 static int atsReplyRC(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr, int rcOperation, const char *pszOperationFmt, ...) 401 401 { 402 402 if (RT_SUCCESS(rcOperation)) … … 421 421 * @param cb The wanted size. 422 422 */ 423 static int atsReplyBadSize(PATSCLIENT pClient, PCATSPKTHDR pPktHdr, size_t cb)423 static int atsReplyBadSize(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr, size_t cb) 424 424 { 425 425 return atsReplyFailure(pClient, pPktHdr, "BAD SIZE", VERR_INVALID_PARAMETER, "Expected at %zu bytes, got %u (opcode '%.8s')", … … 433 433 * @param pPktHdr The packet to reply to. 434 434 */ 435 static int atsReplyUnknown(PATSCLIENT pClient, PCATSPKTHDR pPktHdr)435 static int atsReplyUnknown(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr) 436 436 { 437 437 return atsReplyFailure(pClient, pPktHdr, "UNKNOWN ", VERR_NOT_FOUND, "Opcode '%.8s' is not known", pPktHdr->achOpcode); … … 459 459 * @param pPktHdr The packet containing the unterminated string. 460 460 */ 461 static int atsReplyInvalidState(PATSCLIENT pClient, PCATSPKTHDR pPktHdr)461 static int atsReplyInvalidState(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr) 462 462 { 463 463 return atsReplyFailure(pClient, pPktHdr, "INVSTATE", VERR_INVALID_STATE, "Opcode '%.8s' is not supported at client state '%s", … … 472 472 * @param pPktHdr The howdy packet. 473 473 */ 474 static int atsDoBye(PATSCLIENT pClient, PCATSPKTHDR pPktHdr)474 static int atsDoBye(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr) 475 475 { 476 476 int rc; … … 489 489 * @param pPktHdr The howdy packet. 490 490 */ 491 static int atsDoHowdy(PATSCLIENT pClient, PCATSPKTHDR pPktHdr)491 static int atsDoHowdy(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr) 492 492 { 493 493 int rc = VINF_SUCCESS; … … 504 504 return atsReplyRC(pClient, pPktHdr, VERR_VERSION_MISMATCH, "The given version %#x is not supported", pReq->uVersion); 505 505 506 ATSPKTREPHOWDY Rep; 507 RT_ZERO(Rep); 508 509 Rep.uVersion = ATS_PROTOCOL_VS; 510 511 rc = atsReplyInternal(pClient, &Rep.Sts, "ACK ", sizeof(Rep) - sizeof(ATSPKTSTS)); 512 if (RT_SUCCESS(rc)) 513 { 514 g_pTransport->pfnNotifyHowdy(pClient->pTransportClient); 515 pClient->enmState = ATSCLIENTSTATE_READY; 516 } 517 506 518 return rc; 507 519 } … … 514 526 * @param pPktHdr The packet header. 515 527 */ 516 static int atsDoTonePlay(PATSCLIENT pClient, PCATSPKTHDR pPktHdr)528 static int atsDoTonePlay(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr) 517 529 { 518 530 int rc = VINF_SUCCESS; … … 533 545 * @param pClient The ATS client structure sending the request. 534 546 */ 535 static int atsClientReqProcess(PATSCLIENT pClient)547 static int atsClientReqProcess(PATSCLIENTINST pClient) 536 548 { 537 549 /* … … 569 581 * @param pClient The ATS client structure. 570 582 */ 571 static void atsClientDestroy(PATSCLIENT pClient)583 static void atsClientDestroy(PATSCLIENTINST pClient) 572 584 { 573 585 if (pClient->pszHostname) … … 584 596 unsigned cClientsMax = 0; 585 597 unsigned cClientsCur = 0; 586 PATSCLIENT *papClients = NULL;598 PATSCLIENTINST *papClients = NULL; 587 599 RTPOLLSET hPollSet; 588 600 … … 617 629 RTCritSectEnter(&g_CritSectClients); 618 630 /* Walk the list and add all new clients. */ 619 PATSCLIENT pIt, pItNext;620 RTListForEachSafe(&g_LstClientsNew, pIt, pItNext, ATSCLIENT , NdLst)631 PATSCLIENTINST pIt, pItNext; 632 RTListForEachSafe(&g_LstClientsNew, pIt, pItNext, ATSCLIENTINST, NdLst) 621 633 { 622 634 RTListNodeRemove(&pIt->NdLst); … … 625 637 { 626 638 /* Realloc to accommodate for the new clients. */ 627 PATSCLIENT *papClientsNew = (PATSCLIENT *)RTMemRealloc(papClients, (cClientsMax + 10) * sizeof(PATSCLIENT));639 PATSCLIENTINST *papClientsNew = (PATSCLIENTINST *)RTMemRealloc(papClients, (cClientsMax + 10) * sizeof(PATSCLIENTINST)); 628 640 if (RT_LIKELY(papClientsNew)) 629 641 { … … 632 644 } 633 645 } 634 635 646 if (cClientsCur < cClientsMax) 636 647 { … … 664 675 { 665 676 /* Client sends a request, pick the right client and process it. */ 666 PATSCLIENT pClient = papClients[uId - 1];677 PATSCLIENTINST pClient = papClients[uId - 1]; 667 678 AssertPtr(pClient); 668 679 if (fEvts & RTPOLL_EVT_READ) … … 717 728 * the request handling thread. 718 729 */ 719 PATSCLIENT pClient = (PATSCLIENT)RTMemAllocZ(sizeof(ATSCLIENT));730 PATSCLIENTINST pClient = (PATSCLIENTINST)RTMemAllocZ(sizeof(ATSCLIENTINST)); 720 731 if (RT_LIKELY(pClient)) 721 732 { … … 749 760 * @returns VBox status code. 750 761 */ 751 int atsInit(void)762 int AudioTestSvcInit(void) 752 763 { 753 764 RTListInit(&g_LstClientsNew); … … 795 806 } 796 807 797 int atsStart(void)808 int AudioTestSvcStart(void) 798 809 { 799 810 /* Spin off the main thread. */ -
trunk/src/VBox/Devices/Audio/AudioTestService.h
r89182 r89204 24 24 #include "AudioTestServiceInternal.h" 25 25 26 27 int atsInit(void); 28 int atsStart(void); 26 int AudioTestSvcInit(void); 27 int AudioTestSvcStart(void); 29 28 30 29 #endif /* !VBOX_INCLUDED_SRC_Audio_AudioTestService_h */ -
trunk/src/VBox/Devices/Audio/AudioTestServiceProtocol.h
r89182 r89204 95 95 uint32_t uVersion; 96 96 /** Alignment. */ 97 uint8_t au8Padding[12];97 uint8_t au8Padding[12]; 98 98 } ATSPKTREQHOWDY; 99 99 AssertCompileSizeAlignment(ATSPKTREQHOWDY, ATSPKT_ALIGNMENT); -
trunk/src/VBox/Devices/Audio/AudioTestServiceTcp.cpp
r89180 r89204 40 40 * Defined Constants And Macros * 41 41 *********************************************************************************************************************************/ 42 /** The default server port. */ 43 #define ATS_TCP_DEF_BIND_PORT 6042 42 /** The default server port. 43 * Note: Do not choose/use 6042, as the Validation Kit TxsService already might use that port. */ 44 #define ATS_TCP_DEF_BIND_PORT 6052 44 45 /** The default server bind address. */ 45 46 #define ATS_TCP_DEF_BIND_ADDRESS "" -
trunk/src/VBox/ValidationKit/utils/audio/Makefile.kmk
r89177 r89204 67 67 $(VKAT_PATH_AUDIO)/DrvHostAudioValidationKit.cpp \ 68 68 $(VKAT_PATH_AUDIO)/AudioTestService.cpp \ 69 $(VKAT_PATH_AUDIO)/AudioTestServiceClient.cpp \ 69 70 $(VKAT_PATH_AUDIO)/AudioTestServiceProtocol.cpp \ 70 71 $(VKAT_PATH_AUDIO)/AudioTestServiceTcp.cpp -
trunk/src/VBox/ValidationKit/utils/audio/vkat.cpp
r89177 r89204 66 66 #include "../../../Devices/Audio/AudioTest.h" 67 67 #include "../../../Devices/Audio/AudioTestService.h" 68 #include "../../../Devices/Audio/AudioTestServiceClient.h" 68 69 #include "VBoxDD.h" 69 70 … … 2483 2484 2484 2485 /** 2486 * Tests the Audio Test Service (ATS). 2487 * 2488 * @returns VBox status code. 2489 */ 2490 static int audioTestDoSelftestSvc(void) 2491 { 2492 int rc = AudioTestSvcInit(); 2493 if (RT_SUCCESS(rc)) 2494 { 2495 if (RT_SUCCESS(rc)) 2496 { 2497 rc = AudioTestSvcStart(); 2498 if (RT_SUCCESS(rc)) 2499 { 2500 ATSCLIENT Conn; 2501 rc = AudioTestSvcClientConnect(&Conn); 2502 if (RT_SUCCESS(rc)) 2503 { 2504 rc = AudioTestSvcClientClose(&Conn); 2505 } 2506 } 2507 } 2508 } 2509 2510 return rc; 2511 } 2512 2513 /** 2485 2514 * Main function for performing the self-tests. 2486 2515 * … … 2489 2518 static int audioTestDoSelftest(void) 2490 2519 { 2491 int rc = atsInit(); 2492 if (RT_SUCCESS(rc)) 2493 { 2494 if (RT_SUCCESS(rc)) 2495 rc = atsStart(); 2496 } 2520 int rc = audioTestDoSelftestSvc(); 2521 if (RT_FAILURE(rc)) 2522 RTTestFailed(g_hTest, "Self-test failed with: %Rrc", rc); 2497 2523 2498 2524 return rc; … … 2547 2573 } 2548 2574 2549 rc = audioTestDoSelftest(); 2550 2551 return RT_SUCCESS(rc) ? RTEXITCODE_SUCCESS : RTEXITCODE_FAILURE; 2575 audioTestDoSelftest(); 2576 /* 2577 * Print summary and exit. 2578 */ 2579 return RTTestSummaryAndDestroy(g_hTest); 2552 2580 } 2553 2581
Note:
See TracChangeset
for help on using the changeset viewer.