VirtualBox

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


Ignore:
Timestamp:
Jul 22, 2008 11:07:38 AM (16 years ago)
Author:
vboxsync
Message:

intnet: Push the session down to all the INTNETR0* apis.

Location:
trunk/src/VBox/Devices/Network
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/SrvIntNetR0.cpp

    r10763 r10806  
    985985 * @param   pIntNet     The instance data.
    986986 * @param   hIf         The interface handle.
     987 * @param   pSession    The caller's session.
    987988 * @param   pvFrame     Pointer to the frame. Optional, please don't use.
    988989 * @param   cbFrame     Size of the frame. Optional, please don't use.
    989990 */
    990 INTNETR0DECL(int) INTNETR0IfSend(PINTNET pIntNet, INTNETIFHANDLE hIf, const void *pvFrame, unsigned cbFrame)
     991INTNETR0DECL(int) INTNETR0IfSend(PINTNET pIntNet, INTNETIFHANDLE hIf, PSUPDRVSESSION pSession, const void *pvFrame, unsigned cbFrame)
    991992{
    992993//    LogFlow(("INTNETR0IfSend: pIntNet=%p hIf=%RX32 pvFrame=%p cbFrame=%u\n", pIntNet, hIf, pvFrame, cbFrame));
     
    10951096 * @returns see INTNETR0IfSend.
    10961097 * @param   pIntNet         The internal networking instance.
     1098 * @param   pSession        The caller's session.
    10971099 * @param   pReq            The request packet.
    10981100 */
    1099 INTNETR0DECL(int) INTNETR0IfSendReq(PINTNET pIntNet, PINTNETIFSENDREQ pReq)
     1101INTNETR0DECL(int) INTNETR0IfSendReq(PINTNET pIntNet, PSUPDRVSESSION pSession, PINTNETIFSENDREQ pReq)
    11001102{
    11011103    if (RT_UNLIKELY(pReq->Hdr.cbReq != sizeof(*pReq)))
    11021104        return VERR_INVALID_PARAMETER;
    1103     return INTNETR0IfSend(pIntNet, pReq->hIf, NULL, 0);
     1105    return INTNETR0IfSend(pIntNet, pReq->hIf, pSession, NULL, 0);
    11041106}
    11051107
     
    11091111 *
    11101112 * @returns VBox status code.
    1111  * @param   pIntNet     The instance data.
    1112  * @param   hIf         The interface handle.
    1113  * @param   ppRing3Buf  Where to store the address of the ring-3 mapping.
    1114  */
    1115 INTNETR0DECL(int) INTNETR0IfGetRing3Buffer(PINTNET pIntNet, INTNETIFHANDLE hIf, R3PTRTYPE(PINTNETBUF) *ppRing3Buf)
     1113 * @param   pIntNet         The instance data.
     1114 * @param   hIf             The interface handle.
     1115 * @param   pSession        The caller's session.
     1116 * @param   ppRing3Buf      Where to store the address of the ring-3 mapping.
     1117 */
     1118INTNETR0DECL(int) INTNETR0IfGetRing3Buffer(PINTNET pIntNet, INTNETIFHANDLE hIf, PSUPDRVSESSION pSession, R3PTRTYPE(PINTNETBUF) *ppRing3Buf)
    11161119{
    11171120    LogFlow(("INTNETR0IfGetRing3Buffer: pIntNet=%p hIf=%RX32 ppRing3Buf=%p\n", pIntNet, hIf, ppRing3Buf));
     
    11481151 * @returns see INTNETR0IfGetRing3Buffer.
    11491152 * @param   pIntNet         The internal networking instance.
     1153 * @param   pSession        The caller's session.
    11501154 * @param   pReq            The request packet.
    11511155 */
    1152 INTNETR0DECL(int) INTNETR0IfGetRing3BufferReq(PINTNET pIntNet, PINTNETIFGETRING3BUFFERREQ pReq)
     1156INTNETR0DECL(int) INTNETR0IfGetRing3BufferReq(PINTNET pIntNet, PSUPDRVSESSION pSession, PINTNETIFGETRING3BUFFERREQ pReq)
    11531157{
    11541158    if (RT_UNLIKELY(pReq->Hdr.cbReq != sizeof(*pReq)))
    11551159        return VERR_INVALID_PARAMETER;
    1156     return INTNETR0IfGetRing3Buffer(pIntNet, pReq->hIf, &pReq->pRing3Buf);
     1160    return INTNETR0IfGetRing3Buffer(pIntNet, pReq->hIf, pSession, &pReq->pRing3Buf);
    11571161}
    11581162
     
    12431247 * @param   pIntNet         The instance handle.
    12441248 * @param   hIf             The interface handle.
     1249 * @param   pSession        The caller's session.
    12451250 * @param   fPromiscuous    Set if the interface should be in promiscuous mode, clear if not.
    12461251 */
    1247 INTNETR0DECL(int) INTNETR0IfSetPromiscuousMode(PINTNET pIntNet, INTNETIFHANDLE hIf, bool fPromiscuous)
     1252INTNETR0DECL(int) INTNETR0IfSetPromiscuousMode(PINTNET pIntNet, INTNETIFHANDLE hIf, PSUPDRVSESSION pSession, bool fPromiscuous)
    12481253{
    12491254    LogFlow(("INTNETR0IfSetPromiscuousMode: pIntNet=%p hIf=%RX32 fPromiscuous=%d\n", pIntNet, hIf, fPromiscuous));
     
    12871292 * @returns see INTNETR0IfSetPromiscuousMode.
    12881293 * @param   pIntNet         The internal networking instance.
     1294 * @param   pSession        The caller's session.
    12891295 * @param   pReq            The request packet.
    12901296 */
    1291 INTNETR0DECL(int) INTNETR0IfSetPromiscuousModeReq(PINTNET pIntNet, PINTNETIFSETPROMISCUOUSMODEREQ pReq)
     1297INTNETR0DECL(int) INTNETR0IfSetPromiscuousModeReq(PINTNET pIntNet, PSUPDRVSESSION pSession, PINTNETIFSETPROMISCUOUSMODEREQ pReq)
    12921298{
    12931299    if (RT_UNLIKELY(pReq->Hdr.cbReq != sizeof(*pReq)))
    12941300        return VERR_INVALID_PARAMETER;
    1295     return INTNETR0IfSetPromiscuousMode(pIntNet, pReq->hIf, pReq->fPromiscuous);
     1301    return INTNETR0IfSetPromiscuousMode(pIntNet, pReq->hIf, pSession, pReq->fPromiscuous);
    12961302}
    12971303
     
    13951401 *
    13961402 * @returns VBox status code.
    1397  * @param   pIntNet     The instance handle.
    1398  * @param   hIf         The interface handle.
    1399  * @param   cMillies    Number of milliseconds to wait. RT_INDEFINITE_WAIT should be
    1400  *                      used if indefinite wait is desired.
    1401  */
    1402 INTNETR0DECL(int) INTNETR0IfWait(PINTNET pIntNet, INTNETIFHANDLE hIf, uint32_t cMillies)
     1403 * @param   pIntNet         The instance handle.
     1404 * @param   hIf             The interface handle.
     1405 * @param   pSession        The caller's session.
     1406 * @param   cMillies        Number of milliseconds to wait. RT_INDEFINITE_WAIT should be
     1407 *                          used if indefinite wait is desired.
     1408 */
     1409INTNETR0DECL(int) INTNETR0IfWait(PINTNET pIntNet, INTNETIFHANDLE hIf, PSUPDRVSESSION pSession, uint32_t cMillies)
    14031410{
    14041411//    LogFlow(("INTNETR0IfWait: pIntNet=%p hIf=%RX32 cMillies=%u\n", pIntNet, hIf, cMillies));
     
    14551462 * @returns see INTNETR0IfWait.
    14561463 * @param   pIntNet         The internal networking instance.
     1464 * @param   pSession        The caller's session.
    14571465 * @param   pReq            The request packet.
    14581466 */
    1459 INTNETR0DECL(int) INTNETR0IfWaitReq(PINTNET pIntNet, PINTNETIFWAITREQ pReq)
     1467INTNETR0DECL(int) INTNETR0IfWaitReq(PINTNET pIntNet, PSUPDRVSESSION pSession, PINTNETIFWAITREQ pReq)
    14601468{
    14611469    if (RT_UNLIKELY(pReq->Hdr.cbReq != sizeof(*pReq)))
    14621470        return VERR_INVALID_PARAMETER;
    1463     return INTNETR0IfWait(pIntNet, pReq->hIf, pReq->cMillies);
     1471    return INTNETR0IfWait(pIntNet, pReq->hIf, pSession, pReq->cMillies);
    14641472}
    14651473
     
    14711479 * @param   pIntNet     The instance handle.
    14721480 * @param   hIf         The interface handle.
    1473  */
    1474 INTNETR0DECL(int) INTNETR0IfClose(PINTNET pIntNet, INTNETIFHANDLE hIf)
     1481 * @param   pSession        The caller's session.
     1482 */
     1483INTNETR0DECL(int) INTNETR0IfClose(PINTNET pIntNet, INTNETIFHANDLE hIf, PSUPDRVSESSION pSession)
    14751484{
    14761485    LogFlow(("INTNETR0IfClose: pIntNet=%p hIf=%RX32\n", pIntNet, hIf));
     
    14991508 * @returns see INTNETR0IfClose.
    15001509 * @param   pIntNet         The internal networking instance.
     1510 * @param   pSession        The caller's session.
    15011511 * @param   pReq            The request packet.
    15021512 */
    1503 INTNETR0DECL(int) INTNETR0IfCloseReq(PINTNET pIntNet, PINTNETIFCLOSEREQ pReq)
     1513INTNETR0DECL(int) INTNETR0IfCloseReq(PINTNET pIntNet, PSUPDRVSESSION pSession, PINTNETIFCLOSEREQ pReq)
    15041514{
    15051515    if (RT_UNLIKELY(pReq->Hdr.cbReq != sizeof(*pReq)))
    15061516        return VERR_INVALID_PARAMETER;
    1507     return INTNETR0IfClose(pIntNet, pReq->hIf);
     1517    return INTNETR0IfClose(pIntNet, pReq->hIf, pSession);
    15081518}
    15091519
     
    25002510 * @returns see GMMR0MapUnmapChunk.
    25012511 * @param   pIntNet         The internal networking instance.
    2502  * @param   pSession        The session handle.
     2512 * @param   pSession        The caller's session.
    25032513 * @param   pReq            The request packet.
    25042514 */
  • trunk/src/VBox/Devices/Network/testcase/tstIntNet-1.cpp

    r10764 r10806  
    583583        { "--duration",     'd', RTGETOPT_REQ_UINT32 },
    584584        { "--file",         'f', RTGETOPT_REQ_STRING },
     585        { "--interface",    'i', RTGETOPT_REQ_STRING },
    585586        { "--network",      'n', RTGETOPT_REQ_STRING },
    586587        { "--promiscuous",  'p', RTGETOPT_REQ_NOTHING },
     
    590591        { "--text-file",    't', RTGETOPT_REQ_STRING },
    591592        { "--xmit-test",    'x', RTGETOPT_REQ_NOTHING },
     593        { "--help",         'h', RTGETOPT_REQ_NOTHING },
     594        { "--?",            '?', RTGETOPT_REQ_NOTHING },
    592595    };
    593596
     
    697700            case '?':
    698701            case 'h':
    699                 RTPrintf("syntax: tstIntNet-1 [-pSt] [-d <secs>] [-f <file>] [-r <size>] [-s <size>]\n");
     702                RTPrintf("syntax: tstIntNet-1 [-pStx-] [-d <secs>] [-f <file>] [-r <size>] [-s <size>]\n");
    700703                return 1;
    701704
     
    703706                if (RT_SUCCESS(ch))
    704707                    RTPrintf("tstIntNetR0: invalid argument (%#x): %s\n", ch, Value.psz);
     708                else if (Value.pDef)
     709                    RTPrintf("tstIntNetR0: invalid argument: %Rrc - %s\n", ch, Value.pDef->pszLong);
    705710                else
    706                     RTPrintf("tstIntNetR0: invalid argument: %Rrc - \n", ch, Value.pDef->pszLong);
     711                    RTPrintf("tstIntNetR0: invalid argument: %Rrc - %s\n", ch, argv[iArg]);
    707712                return 1;
    708713        }
  • trunk/src/VBox/Devices/Network/testcase/tstIntNetR0.cpp

    r10740 r10806  
    102102struct TESTFRAME
    103103{
    104     uint16_t    au16[6];
    105 } g_TestFrame0 = { { /* dst:*/ 0xffff, 0xffff, 0xffff, /*src:*/0x8086, 0, 0} },
    106   g_TestFrame1 = { { /* dst:*/0, 0, 0,                /*src:*/0x8086, 0, 1} };
     104    uint16_t    au16[7];
     105} g_TestFrame0 = { { /* dst:*/ 0xffff, 0xffff, 0xffff, /*src:*/0x8086, 0, 0, 0x0800 } },
     106  g_TestFrame1 = { { /* dst:*/ 0, 0, 0,                /*src:*/0x8086, 0, 1, 0x0800 } };
    107107
    108108
     
    240240        *puFrame = iFrame;
    241241#if 0
    242         int rc = INTNETR0IfSend(pArgs->pIntNet, pArgs->hIf, abBuf, cb);
     242        int rc = INTNETR0IfSend(pArgs->pIntNet, pArgs->hIf, g_pSession, abBuf, cb);
    243243#else
    244244        INTNETSG Sg;
     
    246246        int rc = intnetR0RingWriteFrame(pArgs->pBuf, &pArgs->pBuf->Send, &Sg);
    247247        if (RT_SUCCESS(rc))
    248             rc = INTNETR0IfSend(pArgs->pIntNet, pArgs->hIf, NULL, 0);
     248            rc = INTNETR0IfSend(pArgs->pIntNet, pArgs->hIf, g_pSession, NULL, 0);
    249249#endif
    250250        if (VBOX_FAILURE(rc))
     
    265265    for (unsigned c = 0; c < 20; c++)
    266266    {
    267         int rc = INTNETR0IfSend(pArgs->pIntNet, pArgs->hIf, abBuf, sizeof(PDMMAC) * 2 + sizeof(unsigned) * 4);
     267        int rc = INTNETR0IfSend(pArgs->pIntNet, pArgs->hIf, g_pSession, abBuf, sizeof(PDMMAC) * 2 + sizeof(unsigned) * 4);
    268268        if (VBOX_FAILURE(rc))
    269269        {
     
    297297         * Wait for data.
    298298         */
    299         int rc = INTNETR0IfWait(pArgs->pIntNet, pArgs->hIf, RT_INDEFINITE_WAIT);
     299        int rc = INTNETR0IfWait(pArgs->pIntNet, pArgs->hIf, g_pSession, RT_INDEFINITE_WAIT);
    300300        switch (rc)
    301301        {
     
    467467                     * Test basic waiting.
    468468                     */
    469                     rc = INTNETR0IfWait(pIntNet, hIf0, 1);
     469                    rc = INTNETR0IfWait(pIntNet, hIf0, g_pSession, 1);
    470470                    if (rc != VERR_TIMEOUT)
    471471                    {
     
    473473                        g_cErrors++;
    474474                    }
    475                     rc = INTNETR0IfWait(pIntNet, hIf1, 0);
     475                    rc = INTNETR0IfWait(pIntNet, hIf1, g_pSession, 0);
    476476                    if (rc != VERR_TIMEOUT)
    477477                    {
     
    483483                     * Send and receive.
    484484                     */
    485                     rc = INTNETR0IfSend(pIntNet, hIf0, &g_TestFrame0, sizeof(g_TestFrame0));
     485                    rc = INTNETR0IfSend(pIntNet, hIf0, g_pSession, &g_TestFrame0, sizeof(g_TestFrame0));
    486486                    if (VBOX_SUCCESS(rc))
    487487                    {
    488                         rc = INTNETR0IfWait(pIntNet, hIf0, 1);
     488                        rc = INTNETR0IfWait(pIntNet, hIf0, g_pSession, 1);
    489489                        if (rc != VERR_TIMEOUT)
    490490                        {
     
    492492                            g_cErrors++;
    493493                        }
    494                         rc = INTNETR0IfWait(pIntNet, hIf1, 0);
     494                        rc = INTNETR0IfWait(pIntNet, hIf1, g_pSession, 0);
    495495                        if (rc == VINF_SUCCESS)
    496496                        {
     
    521521                             * Send a packet from If1 just to set its MAC address.
    522522                             */
    523                             rc = INTNETR0IfSend(pIntNet, hIf1, &g_TestFrame1, sizeof(g_TestFrame1));
     523                            rc = INTNETR0IfSend(pIntNet, hIf1, g_pSession, &g_TestFrame1, sizeof(g_TestFrame1));
    524524                            if (VBOX_FAILURE(rc))
    525525                            {
     
    627627                                        }
    628628
    629                                         rc = INTNETR0IfClose(pIntNet, hIf0);
     629                                        rc = INTNETR0IfClose(pIntNet, hIf0, g_pSession);
    630630                                        if (VBOX_SUCCESS(rc))
    631631                                        {
     
    639639                                        }
    640640
    641                                         rc = INTNETR0IfClose(pIntNet, hIf1);
     641                                        rc = INTNETR0IfClose(pIntNet, hIf1, g_pSession);
    642642                                        if (VBOX_SUCCESS(rc))
    643643                                        {
     
    700700
    701701                if (hIf1 != INTNET_HANDLE_INVALID)
    702                     rc = INTNETR0IfClose(pIntNet, hIf1);
     702                    rc = INTNETR0IfClose(pIntNet, hIf1, g_pSession);
    703703            }
    704704            else
     
    709709
    710710            if (hIf0 != INTNET_HANDLE_INVALID)
    711                 rc = INTNETR0IfClose(pIntNet, hIf0);
     711                rc = INTNETR0IfClose(pIntNet, hIf0, g_pSession);
    712712        }
    713713        else
Note: See TracChangeset for help on using the changeset viewer.

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