Lines Matching refs:pxCtx

176     SlirpBackendContext_t * pxCtx = NULL;  in vMBuffNetifBackendInit()  local
250 pxCtx = ( SlirpBackendContext_t * ) pvContextBuffer; in vMBuffNetifBackendInit()
252 pxCtx->xSendMsgBuffer = xMessageBufferCreateStatic( xSEND_BUFFER_SIZE, in vMBuffNetifBackendInit()
253 pxCtx->pucTxBuffer, in vMBuffNetifBackendInit()
254 &( pxCtx->xSendMsgBufferStatic ) ); in vMBuffNetifBackendInit()
256 if( pxCtx->xSendMsgBuffer == NULL ) in vMBuffNetifBackendInit()
261 pxCtx->xRecvMsgBuffer = xMessageBufferCreateStatic( xSEND_BUFFER_SIZE, in vMBuffNetifBackendInit()
262 pxCtx->pucRxBuffer, in vMBuffNetifBackendInit()
263 &( pxCtx->xRecvMsgBufferStatic ) ); in vMBuffNetifBackendInit()
265 if( pxCtx->xRecvMsgBuffer == NULL ) in vMBuffNetifBackendInit()
271 pxCtx->pvSendEvent = pvSendEvent; in vMBuffNetifBackendInit()
274 pxCtx->pxSlirp = slirp_new( &xSlirpConfig, &xSlirpCallbacks, pvContextBuffer ); in vMBuffNetifBackendInit()
276 if( pxCtx->pxSlirp ) in vMBuffNetifBackendInit()
279 pxCtx->xMutex = CreateMutex( NULL, FALSE, NULL ); in vMBuffNetifBackendInit()
280 configASSERT( pxCtx->xMutex != ( Mutex_t ) NULL ); in vMBuffNetifBackendInit()
282pxCtx->xTxThread = _beginthreadex( NULL, 0, vTransmitThread, pvContextBuffer, 0, NULL ); in vMBuffNetifBackendInit()
283 configASSERT( pxCtx->xTxThread != ( Thread_t ) NULL ); in vMBuffNetifBackendInit()
285pxCtx->xRxThread = _beginthreadex( NULL, 0, vReceiveThread, pvContextBuffer, 0, NULL ); in vMBuffNetifBackendInit()
286 configASSERT( pxCtx->xRxThread != ( Thread_t ) NULL ); in vMBuffNetifBackendInit()
291 lRslt = pthread_mutex_init( &( pxCtx->xMutex ), NULL ); in vMBuffNetifBackendInit()
294 … lRslt = pthread_create( &( pxCtx->xTxThread ), NULL, vTransmitThread, pvContextBuffer ); in vMBuffNetifBackendInit()
297 … lRslt = pthread_create( &( pxCtx->xRxThread ), NULL, vReceiveThread, pvContextBuffer ); in vMBuffNetifBackendInit()
307 *pxSendMsgBuffer = pxCtx->xSendMsgBuffer; in vMBuffNetifBackendInit()
308 *pxRecvMsgBuffer = pxCtx->xRecvMsgBuffer; in vMBuffNetifBackendInit()
317 static inline void vLockSlirpContext( SlirpBackendContext_t * pxCtx ) in vLockSlirpContext() argument
321 configASSERT( pxCtx != NULL ); in vLockSlirpContext()
324 lRslt = WaitForSingleObject( pxCtx->xMutex, INFINITE ); in vLockSlirpContext()
327 lRslt = pthread_mutex_lock( &( pxCtx->xMutex ) ); in vLockSlirpContext()
336 static inline void vUnlockSlirpContext( SlirpBackendContext_t * pxCtx ) in vUnlockSlirpContext() argument
341 lRslt = ( int ) ReleaseMutex( pxCtx->xMutex ); in vUnlockSlirpContext()
344 lRslt = pthread_mutex_unlock( &( pxCtx->xMutex ) ); in vUnlockSlirpContext()
356 SlirpBackendContext_t * pxCtx = NULL; in vMBuffNetifBackendDeInit() local
360 pxCtx = ( SlirpBackendContext_t * ) pvBackendContext; in vMBuffNetifBackendDeInit()
362 pxCtx->xExitFlag = pdTRUE; in vMBuffNetifBackendDeInit()
365 ( void ) WaitForSingleObject( ( HANDLE ) pxCtx->xTxThread, INFINITE ); in vMBuffNetifBackendDeInit()
366 ( void ) WaitForSingleObject( ( HANDLE ) pxCtx->xRxThread, INFINITE ); in vMBuffNetifBackendDeInit()
368 pthread_join( pxCtx->xTxThread, NULL ); in vMBuffNetifBackendDeInit()
369 pthread_join( pxCtx->xRxThread, NULL ); in vMBuffNetifBackendDeInit()
372 vLockSlirpContext( pxCtx ); in vMBuffNetifBackendDeInit()
375 ( void ) CloseHandle( pxCtx->xMutex ); in vMBuffNetifBackendDeInit()
377 ( void ) pthread_mutex_destroy( &( pxCtx->xMutex ) ); in vMBuffNetifBackendDeInit()
380 slirp_cleanup( pxCtx->pxSlirp ); in vMBuffNetifBackendDeInit()
382 vMessageBufferDelete( pxCtx->xSendMsgBuffer ); in vMBuffNetifBackendDeInit()
383 vMessageBufferDelete( pxCtx->xRecvMsgBuffer ); in vMBuffNetifBackendDeInit()
385 free( ( void * ) ( pxCtx->pxPollFdArray ) ); in vMBuffNetifBackendDeInit()
386 free( ( void * ) pxCtx ); in vMBuffNetifBackendDeInit()
387 pxCtx = NULL; in vMBuffNetifBackendDeInit()
403 SlirpBackendContext_t * pxCtx = ( SlirpBackendContext_t * ) pvOpaque; in xSlirp_WriteCallback() local
414 else if( xMessageBufferSpacesAvailable( pxCtx->xRecvMsgBuffer ) < ( uxLen + 4U ) ) in xSlirp_WriteCallback()
422 uxBytesSent = xMessageBufferSendFromISR( pxCtx->xRecvMsgBuffer, in xSlirp_WriteCallback()
442 static void vEnsurePollfdSize( SlirpBackendContext_t * pxCtx, in vEnsurePollfdSize() argument
445 configASSERT( pxCtx != NULL ); in vEnsurePollfdSize()
447 if( pxCtx->xPollFdArraySize < xDesiredSize ) in vEnsurePollfdSize()
451 if( pxCtx->xPollFdArraySize > 0 ) in vEnsurePollfdSize()
453 xNewSize = 2U * pxCtx->xPollFdArraySize; in vEnsurePollfdSize()
465 if( pxCtx->pxPollFdArray == NULL ) in vEnsurePollfdSize()
467 pxCtx->pxPollFdArray = ( struct pollfd * ) malloc( xNewSize * sizeof( struct pollfd ) ); in vEnsurePollfdSize()
471pxCtx->pxPollFdArray = ( struct pollfd * ) realloc( pxCtx->pxPollFdArray, xNewSize * sizeof( struc… in vEnsurePollfdSize()
474 configASSERT( pxCtx->pxPollFdArray != NULL ); in vEnsurePollfdSize()
476 pxCtx->xPollFdArraySize = xNewSize; in vEnsurePollfdSize()
564 SlirpBackendContext_t * pxCtx = ( SlirpBackendContext_t * ) pvOpaque; in lSlirpAddPollCallback() local
566 configASSERT( pxCtx != NULL ); in lSlirpAddPollCallback()
567 configASSERT( pxCtx->nfds < INT_MAX ); in lSlirpAddPollCallback()
569 vEnsurePollfdSize( pxCtx, pxCtx->nfds + 1U ); in lSlirpAddPollCallback()
571 pxCtx->pxPollFdArray[ pxCtx->nfds ].fd = lFd; in lSlirpAddPollCallback()
572 pxCtx->pxPollFdArray[ pxCtx->nfds ].events = lSlirpEventsToNativePollEvents( lSlirpFlags ); in lSlirpAddPollCallback()
573 pxCtx->pxPollFdArray[ pxCtx->nfds ].revents = 0U; in lSlirpAddPollCallback()
575 pxCtx->nfds++; in lSlirpAddPollCallback()
577 return ( int ) ( pxCtx->nfds - 1U ); in lSlirpAddPollCallback()
589 SlirpBackendContext_t * pxCtx = ( SlirpBackendContext_t * ) pvOpaque; in lSlirpGetREventsCallback() local
593 configASSERT( pxCtx ); in lSlirpGetREventsCallback()
598 configASSERT( xIndex < pxCtx->nfds ); in lSlirpGetREventsCallback()
599 configASSERT( xIndex < pxCtx->xPollFdArraySize ); in lSlirpGetREventsCallback()
601 rEvents = ( pxCtx->pxPollFdArray[ xIndex ].revents ); in lSlirpGetREventsCallback()
613 SlirpBackendContext_t * pxCtx = ( SlirpBackendContext_t * ) pvParameters; in vTransmitThread() local
628 configASSERT( pxCtx != NULL ); in vTransmitThread()
630 while( pxCtx->xExitFlag == pdFALSE ) in vTransmitThread()
634 ( void ) WaitForSingleObject( pxCtx->pvSendEvent, ( DWORD ) xMaxMSToWait ); in vTransmitThread()
636 event_wait_timed( pxCtx->pvSendEvent, xMaxMSToWait ); in vTransmitThread()
639 while( xMessageBufferIsEmpty( pxCtx->xSendMsgBuffer ) == pdFALSE ) in vTransmitThread()
642 …size_t uxFrameLen = xMessageBufferReceiveFromISR( pxCtx->xSendMsgBuffer, ucFrameSendBuffer, sizeof… in vTransmitThread()
644 vLockSlirpContext( pxCtx ); in vTransmitThread()
646 slirp_input( pxCtx->pxSlirp, ucFrameSendBuffer, uxFrameLen ); in vTransmitThread()
648 vUnlockSlirpContext( pxCtx ); in vTransmitThread()
665 SlirpBackendContext_t * pxCtx = ( SlirpBackendContext_t * ) pvParameters; in vReceiveThread() local
678 configASSERT( pxCtx != NULL ); in vReceiveThread()
680 while( pxCtx->xExitFlag == pdFALSE ) in vReceiveThread()
686 vLockSlirpContext( pxCtx ); in vReceiveThread()
688 pxCtx->nfds = 0; in vReceiveThread()
689 slirp_pollfds_fill( pxCtx->pxSlirp, &ulPollerTimeoutMs, lSlirpAddPollCallback, pxCtx ); in vReceiveThread()
691 vUnlockSlirpContext( pxCtx ); in vReceiveThread()
695 lPollRslt = WSAPoll( pxCtx->pxPollFdArray, pxCtx->nfds, ( int ) ulPollerTimeoutMs ); in vReceiveThread()
697 lPollRslt = poll( pxCtx->pxPollFdArray, pxCtx->nfds, ulPollerTimeoutMs ); in vReceiveThread()
705 vLockSlirpContext( pxCtx ); in vReceiveThread()
707 … slirp_pollfds_poll( pxCtx->pxSlirp, lPollRslt, lSlirpGetREventsCallback, ( void * ) pxCtx ); in vReceiveThread()
709 vUnlockSlirpContext( pxCtx ); in vReceiveThread()
856 SlirpBackendContext_t * pxCtx = ( SlirpBackendContext_t * ) pvOpaque; in vSlirp_RegisterPollFd() local
858 configASSERT( pxCtx != NULL ); in vSlirp_RegisterPollFd()
862 vEnsurePollfdSize( pxCtx, pxCtx->nfds + 1 ); in vSlirp_RegisterPollFd()