Lines Matching refs:pxCtx
176 SlirpBackendContext_t * pxCtx = NULL; in vMBuffNetifBackendInit() local
263 pxCtx = ( SlirpBackendContext_t * ) pvContextBuffer; in vMBuffNetifBackendInit()
265 pxCtx->xSendMsgBuffer = xMessageBufferCreateStatic( xSEND_BUFFER_SIZE, in vMBuffNetifBackendInit()
266 pxCtx->pucTxBuffer, in vMBuffNetifBackendInit()
267 &( pxCtx->xSendMsgBufferStatic ) ); in vMBuffNetifBackendInit()
269 if( pxCtx->xSendMsgBuffer == NULL ) in vMBuffNetifBackendInit()
274 pxCtx->xRecvMsgBuffer = xMessageBufferCreateStatic( xSEND_BUFFER_SIZE, in vMBuffNetifBackendInit()
275 pxCtx->pucRxBuffer, in vMBuffNetifBackendInit()
276 &( pxCtx->xRecvMsgBufferStatic ) ); in vMBuffNetifBackendInit()
278 if( pxCtx->xRecvMsgBuffer == NULL ) in vMBuffNetifBackendInit()
284 pxCtx->pvSendEvent = pvSendEvent; in vMBuffNetifBackendInit()
287 pxCtx->pxSlirp = slirp_new( &xSlirpConfig, &xSlirpCallbacks, pvContextBuffer ); in vMBuffNetifBackendInit()
289 if( pxCtx->pxSlirp ) in vMBuffNetifBackendInit()
292 pxCtx->xMutex = CreateMutex( NULL, FALSE, NULL ); in vMBuffNetifBackendInit()
293 configASSERT( pxCtx->xMutex != ( Mutex_t ) NULL ); in vMBuffNetifBackendInit()
295 … pxCtx->xTxThread = _beginthreadex( NULL, 0, vTransmitThread, pvContextBuffer, 0, NULL ); in vMBuffNetifBackendInit()
296 configASSERT( pxCtx->xTxThread != ( Thread_t ) NULL ); in vMBuffNetifBackendInit()
298 … pxCtx->xRxThread = _beginthreadex( NULL, 0, vReceiveThread, pvContextBuffer, 0, NULL ); in vMBuffNetifBackendInit()
299 configASSERT( pxCtx->xRxThread != ( Thread_t ) NULL ); in vMBuffNetifBackendInit()
304 lRslt = pthread_mutex_init( &( pxCtx->xMutex ), NULL ); in vMBuffNetifBackendInit()
307 … lRslt = pthread_create( &( pxCtx->xTxThread ), NULL, vTransmitThread, pvContextBuffer ); in vMBuffNetifBackendInit()
310 … lRslt = pthread_create( &( pxCtx->xRxThread ), NULL, vReceiveThread, pvContextBuffer ); in vMBuffNetifBackendInit()
320 *pxSendMsgBuffer = pxCtx->xSendMsgBuffer; in vMBuffNetifBackendInit()
321 *pxRecvMsgBuffer = pxCtx->xRecvMsgBuffer; in vMBuffNetifBackendInit()
330 static inline void vLockSlirpContext( SlirpBackendContext_t * pxCtx ) in vLockSlirpContext() argument
334 configASSERT( pxCtx != NULL ); in vLockSlirpContext()
337 lRslt = WaitForSingleObject( pxCtx->xMutex, INFINITE ); in vLockSlirpContext()
340 lRslt = pthread_mutex_lock( &( pxCtx->xMutex ) ); in vLockSlirpContext()
349 static inline void vUnlockSlirpContext( SlirpBackendContext_t * pxCtx ) in vUnlockSlirpContext() argument
354 lRslt = ( int ) ReleaseMutex( pxCtx->xMutex ); in vUnlockSlirpContext()
357 lRslt = pthread_mutex_unlock( &( pxCtx->xMutex ) ); in vUnlockSlirpContext()
369 SlirpBackendContext_t * pxCtx = NULL; in vMBuffNetifBackendDeInit() local
373 pxCtx = ( SlirpBackendContext_t * ) pvBackendContext; in vMBuffNetifBackendDeInit()
375 pxCtx->xExitFlag = pdTRUE; in vMBuffNetifBackendDeInit()
378 ( void ) WaitForSingleObject( ( HANDLE ) pxCtx->xTxThread, INFINITE ); in vMBuffNetifBackendDeInit()
379 ( void ) WaitForSingleObject( ( HANDLE ) pxCtx->xRxThread, INFINITE ); in vMBuffNetifBackendDeInit()
381 pthread_join( pxCtx->xTxThread, NULL ); in vMBuffNetifBackendDeInit()
382 pthread_join( pxCtx->xRxThread, NULL ); in vMBuffNetifBackendDeInit()
385 vLockSlirpContext( pxCtx ); in vMBuffNetifBackendDeInit()
388 ( void ) CloseHandle( pxCtx->xMutex ); in vMBuffNetifBackendDeInit()
390 ( void ) pthread_mutex_destroy( &( pxCtx->xMutex ) ); in vMBuffNetifBackendDeInit()
393 slirp_cleanup( pxCtx->pxSlirp ); in vMBuffNetifBackendDeInit()
395 vMessageBufferDelete( pxCtx->xSendMsgBuffer ); in vMBuffNetifBackendDeInit()
396 vMessageBufferDelete( pxCtx->xRecvMsgBuffer ); in vMBuffNetifBackendDeInit()
398 free( ( void * ) ( pxCtx->pxPollFdArray ) ); in vMBuffNetifBackendDeInit()
399 free( ( void * ) pxCtx ); in vMBuffNetifBackendDeInit()
400 pxCtx = NULL; in vMBuffNetifBackendDeInit()
416 SlirpBackendContext_t * pxCtx = ( SlirpBackendContext_t * ) pvOpaque; in xSlirp_WriteCallback() local
427 else if( xMessageBufferSpacesAvailable( pxCtx->xRecvMsgBuffer ) < ( uxLen + 4U ) ) in xSlirp_WriteCallback()
435 uxBytesSent = xMessageBufferSendFromISR( pxCtx->xRecvMsgBuffer, in xSlirp_WriteCallback()
455 static void vEnsurePollfdSize( SlirpBackendContext_t * pxCtx, in vEnsurePollfdSize() argument
458 configASSERT( pxCtx != NULL ); in vEnsurePollfdSize()
460 if( pxCtx->xPollFdArraySize < xDesiredSize ) in vEnsurePollfdSize()
464 if( pxCtx->xPollFdArraySize > 0 ) in vEnsurePollfdSize()
466 xNewSize = 2U * pxCtx->xPollFdArraySize; in vEnsurePollfdSize()
478 if( pxCtx->pxPollFdArray == NULL ) in vEnsurePollfdSize()
480 pxCtx->pxPollFdArray = ( struct pollfd * ) malloc( xNewSize * sizeof( struct pollfd ) ); in vEnsurePollfdSize()
482 if( pxCtx->pxPollFdArray == NULL ) in vEnsurePollfdSize()
490 …pxCtx->pxPollFdArray = ( struct pollfd * ) realloc( pxCtx->pxPollFdArray, xNewSize * sizeof( struc… in vEnsurePollfdSize()
493 configASSERT( pxCtx->pxPollFdArray != NULL ); in vEnsurePollfdSize()
495 pxCtx->xPollFdArraySize = xNewSize; in vEnsurePollfdSize()
587 SlirpBackendContext_t * pxCtx = ( SlirpBackendContext_t * ) pvOpaque; in lSlirpAddPollCallback() local
589 configASSERT( pxCtx != NULL ); in lSlirpAddPollCallback()
590 configASSERT( pxCtx->nfds < INT_MAX ); in lSlirpAddPollCallback()
592 vEnsurePollfdSize( pxCtx, pxCtx->nfds + 1U ); in lSlirpAddPollCallback()
594 pxCtx->pxPollFdArray[ pxCtx->nfds ].fd = lFd; in lSlirpAddPollCallback()
595 pxCtx->pxPollFdArray[ pxCtx->nfds ].events = lSlirpEventsToNativePollEvents( lSlirpFlags ); in lSlirpAddPollCallback()
596 pxCtx->pxPollFdArray[ pxCtx->nfds ].revents = 0U; in lSlirpAddPollCallback()
598 pxCtx->nfds++; in lSlirpAddPollCallback()
600 return ( int ) ( pxCtx->nfds - 1U ); in lSlirpAddPollCallback()
612 SlirpBackendContext_t * pxCtx = ( SlirpBackendContext_t * ) pvOpaque; in lSlirpGetREventsCallback() local
616 configASSERT( pxCtx ); in lSlirpGetREventsCallback()
621 configASSERT( xIndex < pxCtx->nfds ); in lSlirpGetREventsCallback()
622 configASSERT( xIndex < pxCtx->xPollFdArraySize ); in lSlirpGetREventsCallback()
624 rEvents = ( pxCtx->pxPollFdArray[ xIndex ].revents ); in lSlirpGetREventsCallback()
636 SlirpBackendContext_t * pxCtx = ( SlirpBackendContext_t * ) pvParameters; in vTransmitThread() local
651 configASSERT( pxCtx != NULL ); in vTransmitThread()
653 while( pxCtx->xExitFlag == pdFALSE ) in vTransmitThread()
657 ( void ) WaitForSingleObject( pxCtx->pvSendEvent, ( DWORD ) xMaxMSToWait ); in vTransmitThread()
659 event_wait_timed( pxCtx->pvSendEvent, xMaxMSToWait ); in vTransmitThread()
662 while( xMessageBufferIsEmpty( pxCtx->xSendMsgBuffer ) == pdFALSE ) in vTransmitThread()
665 …size_t uxFrameLen = xMessageBufferReceiveFromISR( pxCtx->xSendMsgBuffer, ucFrameSendBuffer, sizeof… in vTransmitThread()
667 vLockSlirpContext( pxCtx ); in vTransmitThread()
669 slirp_input( pxCtx->pxSlirp, ucFrameSendBuffer, uxFrameLen ); in vTransmitThread()
671 vUnlockSlirpContext( pxCtx ); in vTransmitThread()
688 SlirpBackendContext_t * pxCtx = ( SlirpBackendContext_t * ) pvParameters; in vReceiveThread() local
701 configASSERT( pxCtx != NULL ); in vReceiveThread()
703 while( pxCtx->xExitFlag == pdFALSE ) in vReceiveThread()
709 vLockSlirpContext( pxCtx ); in vReceiveThread()
711 pxCtx->nfds = 0; in vReceiveThread()
712 slirp_pollfds_fill( pxCtx->pxSlirp, &ulPollerTimeoutMs, lSlirpAddPollCallback, pxCtx ); in vReceiveThread()
714 vUnlockSlirpContext( pxCtx ); in vReceiveThread()
718 lPollRslt = WSAPoll( pxCtx->pxPollFdArray, pxCtx->nfds, ( int ) ulPollerTimeoutMs ); in vReceiveThread()
720 lPollRslt = poll( pxCtx->pxPollFdArray, pxCtx->nfds, ulPollerTimeoutMs ); in vReceiveThread()
728 vLockSlirpContext( pxCtx ); in vReceiveThread()
730 … slirp_pollfds_poll( pxCtx->pxSlirp, lPollRslt, lSlirpGetREventsCallback, ( void * ) pxCtx ); in vReceiveThread()
732 vUnlockSlirpContext( pxCtx ); in vReceiveThread()
879 SlirpBackendContext_t * pxCtx = ( SlirpBackendContext_t * ) pvOpaque; in vSlirp_RegisterPollFd() local
881 configASSERT( pxCtx != NULL ); in vSlirp_RegisterPollFd()
885 vEnsurePollfdSize( pxCtx, pxCtx->nfds + 1 ); in vSlirp_RegisterPollFd()