VirtualBox

Changeset 89204 in vbox for trunk/src/VBox/Devices


Ignore:
Timestamp:
May 20, 2021 4:33:56 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
144545
Message:

Audio/ValKit: More code for the audio test execution service (ATS), client side. bugref:10008

Location:
trunk/src/VBox/Devices/Audio
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Audio/AudioTestService.cpp

    r89180 r89204  
    106106 * ATS client instance.
    107107 */
    108 typedef struct ATSCLIENT
     108typedef struct ATSCLIENTINST
    109109{
    110110    /** List node for new clients. */
     
    116116    /** Client hostname. */
    117117    char                  *pszHostname;
    118 } ATSCLIENT;
     118} ATSCLIENTINST;
    119119/** Pointer to a ATS client instance. */
    120 typedef ATSCLIENT *PATSCLIENT;
     120typedef ATSCLIENTINST *PATSCLIENTINST;
    121121
    122122/**
     
    152152 *                              aligned buffer.
    153153 */
    154 static int atsSendPkt(PATSCLIENT pClient, PATSPKTHDR pPkt)
     154static int atsSendPkt(PATSCLIENTINST pClient, PATSPKTHDR pPkt)
    155155{
    156156    Assert(pPkt->cb >= sizeof(*pPkt));
     
    176176 * @param   pszOpcode           The BABBLE opcode.
    177177 */
    178 static void atsReplyBabble(PATSCLIENT pClient, const char *pszOpcode)
     178static void atsReplyBabble(PATSCLIENTINST pClient, const char *pszOpcode)
    179179{
    180180    ATSPKTHDR Reply;
     
    198198 * @param   fAutoRetryOnFailure Whether to retry on error.
    199199 */
    200 static int atsRecvPkt(PATSCLIENT pClient, PPATSPKTHDR ppPktHdr, bool fAutoRetryOnFailure)
     200static int atsRecvPkt(PATSCLIENTINST pClient, PPATSPKTHDR ppPktHdr, bool fAutoRetryOnFailure)
    201201{
    202202    for (;;)
     
    281281 * @param   cbExtra             Bytes in addition to the header.
    282282 */
    283 static int atsReplyInternal(PATSCLIENT pClient, PATSPKTSTS pReply, const char *pszOpcode, size_t cbExtra)
     283static int atsReplyInternal(PATSCLIENTINST pClient, PATSPKTSTS pReply, const char *pszOpcode, size_t cbExtra)
    284284{
    285285    /* copy the opcode, don't be too strict in case of a padding screw up. */
     
    312312 *                              with space.
    313313 */
    314 static int atsReplySimple(PATSCLIENT pClient, PCATSPKTHDR pPktHdr, const char *pszOpcode)
     314static int atsReplySimple(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr, const char *pszOpcode)
    315315{
    316316    ATSPKTSTS Pkt;
     
    330330 * @param   pPktHdr             The original packet (for future use).
    331331 */
    332 static int atsReplyAck(PATSCLIENT pClient, PCATSPKTHDR pPktHdr)
     332static int atsReplyAck(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr)
    333333{
    334334    return atsReplySimple(pClient, pPktHdr, "ACK     ");
     
    348348 * @param   va                  Format arguments.
    349349 */
    350 static int atsReplyFailureV(PATSCLIENT pClient, PCATSPKTHDR pPktHdr, const char *pszOpcode, int rcReq, const char *pszDetailFmt, va_list va)
     350static int atsReplyFailureV(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr, const char *pszOpcode, int rcReq, const char *pszDetailFmt, va_list va)
    351351{
    352352    NOREF(pPktHdr);
     
    378378 * @param   ...                 Format arguments.
    379379 */
    380 static int atsReplyFailure(PATSCLIENT pClient, PCATSPKTHDR pPktHdr, const char *pszOpcode, int rcReq, const char *pszDetailFmt, ...)
     380static int atsReplyFailure(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr, const char *pszOpcode, int rcReq, const char *pszDetailFmt, ...)
    381381{
    382382    va_list va;
     
    398398 * @param   ...                 Arguments to the format string.
    399399 */
    400 static int atsReplyRC(PATSCLIENT pClient, PCATSPKTHDR pPktHdr, int rcOperation, const char *pszOperationFmt, ...)
     400static int atsReplyRC(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr, int rcOperation, const char *pszOperationFmt, ...)
    401401{
    402402    if (RT_SUCCESS(rcOperation))
     
    421421 * @param   cb                  The wanted size.
    422422 */
    423 static int atsReplyBadSize(PATSCLIENT pClient, PCATSPKTHDR pPktHdr, size_t cb)
     423static int atsReplyBadSize(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr, size_t cb)
    424424{
    425425    return atsReplyFailure(pClient, pPktHdr, "BAD SIZE", VERR_INVALID_PARAMETER, "Expected at %zu bytes, got %u  (opcode '%.8s')",
     
    433433 * @param   pPktHdr             The packet to reply to.
    434434 */
    435 static int atsReplyUnknown(PATSCLIENT pClient, PCATSPKTHDR pPktHdr)
     435static int atsReplyUnknown(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr)
    436436{
    437437    return atsReplyFailure(pClient, pPktHdr, "UNKNOWN ", VERR_NOT_FOUND, "Opcode '%.8s' is not known", pPktHdr->achOpcode);
     
    459459 * @param   pPktHdr             The packet containing the unterminated string.
    460460 */
    461 static int atsReplyInvalidState(PATSCLIENT pClient, PCATSPKTHDR pPktHdr)
     461static int atsReplyInvalidState(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr)
    462462{
    463463    return atsReplyFailure(pClient, pPktHdr, "INVSTATE", VERR_INVALID_STATE, "Opcode '%.8s' is not supported at client state '%s",
     
    472472 * @param   pPktHdr             The howdy packet.
    473473 */
    474 static int atsDoBye(PATSCLIENT pClient, PCATSPKTHDR pPktHdr)
     474static int atsDoBye(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr)
    475475{
    476476    int rc;
     
    489489 * @param   pPktHdr             The howdy packet.
    490490 */
    491 static int atsDoHowdy(PATSCLIENT pClient, PCATSPKTHDR pPktHdr)
     491static int atsDoHowdy(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr)
    492492{
    493493    int rc = VINF_SUCCESS;
     
    504504        return atsReplyRC(pClient, pPktHdr, VERR_VERSION_MISMATCH, "The given version %#x is not supported", pReq->uVersion);
    505505
     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
    506518    return rc;
    507519}
     
    514526 * @param   pPktHdr             The packet header.
    515527 */
    516 static int atsDoTonePlay(PATSCLIENT pClient, PCATSPKTHDR pPktHdr)
     528static int atsDoTonePlay(PATSCLIENTINST pClient, PCATSPKTHDR pPktHdr)
    517529{
    518530    int rc = VINF_SUCCESS;
     
    533545 * @param   pClient             The ATS client structure sending the request.
    534546 */
    535 static int atsClientReqProcess(PATSCLIENT pClient)
     547static int atsClientReqProcess(PATSCLIENTINST pClient)
    536548{
    537549    /*
     
    569581 * @param   pClient             The ATS client structure.
    570582 */
    571 static void atsClientDestroy(PATSCLIENT pClient)
     583static void atsClientDestroy(PATSCLIENTINST pClient)
    572584{
    573585    if (pClient->pszHostname)
     
    584596    unsigned    cClientsMax = 0;
    585597    unsigned    cClientsCur = 0;
    586     PATSCLIENT *papClients  = NULL;
     598    PATSCLIENTINST *papClients  = NULL;
    587599    RTPOLLSET   hPollSet;
    588600
     
    617629                    RTCritSectEnter(&g_CritSectClients);
    618630                    /* 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)
    621633                    {
    622634                        RTListNodeRemove(&pIt->NdLst);
     
    625637                        {
    626638                            /* 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));
    628640                            if (RT_LIKELY(papClientsNew))
    629641                            {
     
    632644                            }
    633645                        }
    634 
    635646                        if (cClientsCur < cClientsMax)
    636647                        {
     
    664675                {
    665676                    /* Client sends a request, pick the right client and process it. */
    666                     PATSCLIENT pClient = papClients[uId - 1];
     677                    PATSCLIENTINST pClient = papClients[uId - 1];
    667678                    AssertPtr(pClient);
    668679                    if (fEvts & RTPOLL_EVT_READ)
     
    717728         * the request handling thread.
    718729         */
    719         PATSCLIENT pClient = (PATSCLIENT)RTMemAllocZ(sizeof(ATSCLIENT));
     730        PATSCLIENTINST pClient = (PATSCLIENTINST)RTMemAllocZ(sizeof(ATSCLIENTINST));
    720731        if (RT_LIKELY(pClient))
    721732        {
     
    749760 * @returns VBox status code.
    750761 */
    751 int atsInit(void)
     762int AudioTestSvcInit(void)
    752763{
    753764    RTListInit(&g_LstClientsNew);
     
    795806}
    796807
    797 int atsStart(void)
     808int AudioTestSvcStart(void)
    798809{
    799810    /* Spin off the main thread. */
  • trunk/src/VBox/Devices/Audio/AudioTestService.h

    r89182 r89204  
    2424#include "AudioTestServiceInternal.h"
    2525
    26 
    27 int atsInit(void);
    28 int atsStart(void);
     26int AudioTestSvcInit(void);
     27int AudioTestSvcStart(void);
    2928
    3029#endif /* !VBOX_INCLUDED_SRC_Audio_AudioTestService_h */
  • trunk/src/VBox/Devices/Audio/AudioTestServiceProtocol.h

    r89182 r89204  
    9595    uint32_t        uVersion;
    9696    /** Alignment. */
    97     uint8_t        au8Padding[12];
     97    uint8_t         au8Padding[12];
    9898} ATSPKTREQHOWDY;
    9999AssertCompileSizeAlignment(ATSPKTREQHOWDY, ATSPKT_ALIGNMENT);
  • trunk/src/VBox/Devices/Audio/AudioTestServiceTcp.cpp

    r89180 r89204  
    4040*   Defined Constants And Macros                                                                                                 *
    4141*********************************************************************************************************************************/
    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
    4445/** The default server bind address. */
    4546#define ATS_TCP_DEF_BIND_ADDRESS                ""
Note: See TracChangeset for help on using the changeset viewer.

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