Lines Matching refs:pxSocket
63 #define socketSET_SOCKET_PORT( pxSocket, usPort ) listSET_LIST_ITEM_VALUE( ( &( ( pxSocket )->xB… argument
65 #define socketGET_SOCKET_PORT( pxSocket ) listGET_LIST_ITEM_VALUE( ( &( ( pxSocket )->xB… argument
70 #define socketSOCKET_IS_BOUND( pxSocket ) ( listLIST_ITEM_CONTAINER( &( pxSocket )->xBou… argument
131 static BaseType_t prvValidSocket( const FreeRTOS_Socket_t * pxSocket,
141 static BaseType_t prvSockopt_so_buffer( FreeRTOS_Socket_t * pxSocket,
155 static BaseType_t prvSocketBindAdd( FreeRTOS_Socket_t * pxSocket,
160 static NetworkBufferDescriptor_t * prvRecvFromWaitForPacket( FreeRTOS_Socket_t const * pxSocket,
164 static int32_t prvSendUDPPacket( const FreeRTOS_Socket_t * pxSocket,
183 static StreamBuffer_t * prvTCPCreateStream( FreeRTOS_Socket_t * pxSocket,
193 static int32_t prvTCPSendCheck( FreeRTOS_Socket_t * pxSocket,
211 static BaseType_t prvTCPConnectStart( FreeRTOS_Socket_t * pxSocket,
221 static BaseType_t bMayConnect( FreeRTOS_Socket_t const * pxSocket );
227 static BaseType_t prvMakeSureSocketIsBound( FreeRTOS_Socket_t * pxSocket );
240 static BaseType_t prvRecvWait( const FreeRTOS_Socket_t * pxSocket,
249 static BaseType_t prvRecvData( FreeRTOS_Socket_t * pxSocket,
260 static BaseType_t prvTCPSendLoop( FreeRTOS_Socket_t * pxSocket,
271 BaseType_t prvSetOptionCallback( FreeRTOS_Socket_t * pxSocket,
281 static BaseType_t prvSetOptionTCPWindows( FreeRTOS_Socket_t * pxSocket,
290 static BaseType_t prvSetOptionLowHighWater( FreeRTOS_Socket_t * pxSocket,
299 static BaseType_t prvSetOptionSetFullSize( FreeRTOS_Socket_t * pxSocket,
307 static BaseType_t prvSetOptionStopRX( FreeRTOS_Socket_t * pxSocket,
315 static void prvSetOptionTimeout( FreeRTOS_Socket_t * pxSocket,
323 static BaseType_t prvSetOptionCloseAfterSend( FreeRTOS_Socket_t * pxSocket,
332 static BaseType_t prvSetOptionReuseListenSocket( FreeRTOS_Socket_t * pxSocket,
335 static void prvInitialiseTCPFields( FreeRTOS_Socket_t * pxSocket,
347 static int32_t prvSendTo_ActualSend( const FreeRTOS_Socket_t * pxSocket,
358 static void vTCPAddRxdata_Callback( FreeRTOS_Socket_t * pxSocket,
364 static void vTCPAddRxdata_Stored( FreeRTOS_Socket_t * pxSocket );
369 static void vTCPNetStat_TCPSocket( const FreeRTOS_Socket_t * pxSocket );
402 static BaseType_t prvValidSocket( const FreeRTOS_Socket_t * pxSocket, in prvValidSocket() argument
408 if( xSocketValid( pxSocket ) == pdFALSE ) in prvValidSocket()
412 else if( ( xIsBound != pdFALSE ) && !socketSOCKET_IS_BOUND( pxSocket ) ) in prvValidSocket()
417 else if( pxSocket->ucProtocol != ( uint8_t ) xProtocol ) in prvValidSocket()
464 FreeRTOS_Socket_t const * pxSocket = NULL; in prvDetermineSocketSize() local
522 … *pxSocketSize = ( sizeof( *pxSocket ) - sizeof( pxSocket->u ) ) + sizeof( pxSocket->u.xUDP ); in prvDetermineSocketSize()
534 … *pxSocketSize = ( sizeof( *pxSocket ) - sizeof( pxSocket->u ) ) + sizeof( pxSocket->u.xTCP ); in prvDetermineSocketSize()
546 ( void ) pxSocket; /* Was only used for sizeof. */ in prvDetermineSocketSize()
560 static void prvInitialiseTCPFields( FreeRTOS_Socket_t * pxSocket, in prvInitialiseTCPFields() argument
565 … iptraceMEM_STATS_CREATE( tcpSOCKET_TCP, pxSocket, uxSocketSize + sizeof( StaticEventGroup_t ) ); in prvInitialiseTCPFields()
568 pxSocket->u.xTCP.usMSS = ( uint16_t ) ipconfigTCP_MSS; in prvInitialiseTCPFields()
571 if( pxSocket->bits.bIsIPv6 != 0U ) in prvInitialiseTCPFields()
575 if( pxSocket->u.xTCP.usMSS > usDifference ) in prvInitialiseTCPFields()
577 pxSocket->u.xTCP.usMSS = ( uint16_t ) ( pxSocket->u.xTCP.usMSS - usDifference ); in prvInitialiseTCPFields()
582 pxSocket->u.xTCP.uxRxStreamSize = ( size_t ) ipconfigTCP_RX_BUFFER_LENGTH; in prvInitialiseTCPFields()
583 …pxSocket->u.xTCP.uxTxStreamSize = ( size_t ) FreeRTOS_round_up( ipconfigTCP_TX_BUFFER_LENGTH, ipco… in prvInitialiseTCPFields()
587 …pxSocket->u.xTCP.uxRxWinSize = FreeRTOS_max_size_t( 1U, ( pxSocket->u.xTCP.uxRxStreamSize / 2U ) /… in prvInitialiseTCPFields()
588 …pxSocket->u.xTCP.uxTxWinSize = FreeRTOS_max_size_t( 1U, ( pxSocket->u.xTCP.uxTxStreamSize / 2U ) /… in prvInitialiseTCPFields()
592 pxSocket->u.xTCP.uxRxWinSize = 1U; in prvInitialiseTCPFields()
593 pxSocket->u.xTCP.uxTxWinSize = 1U; in prvInitialiseTCPFields()
618 FreeRTOS_Socket_t * pxSocket; in FreeRTOS_socket() local
675 pxSocket = ( ( FreeRTOS_Socket_t * ) pvPortMallocSocket( uxSocketSize ) ); in FreeRTOS_socket()
677 if( pxSocket == NULL ) in FreeRTOS_socket()
691 vPortFreeSocket( pxSocket ); in FreeRTOS_socket()
702 ( void ) memset( pxSocket, 0, uxSocketSize ); in FreeRTOS_socket()
704 pxSocket->xEventGroup = xEventGroup; in FreeRTOS_socket()
710 pxSocket->bits.bIsIPv6 = pdTRUE_UNSIGNED; in FreeRTOS_socket()
716 pxSocket->bits.bIsIPv6 = pdFALSE_UNSIGNED; in FreeRTOS_socket()
732 … iptraceMEM_STATS_CREATE( tcpSOCKET_UDP, pxSocket, uxSocketSize + sizeof( StaticEventGroup_t ) ); in FreeRTOS_socket()
734 vListInitialise( &( pxSocket->u.xUDP.xWaitingPacketsList ) ); in FreeRTOS_socket()
738 pxSocket->u.xUDP.uxMaxPackets = ( UBaseType_t ) ipconfigUDP_MAX_RX_PACKETS; in FreeRTOS_socket()
746 prvInitialiseTCPFields( pxSocket, uxSocketSize ); in FreeRTOS_socket()
754 vListInitialiseItem( &( pxSocket->xBoundSocketListItem ) ); in FreeRTOS_socket()
755 listSET_LIST_ITEM_OWNER( &( pxSocket->xBoundSocketListItem ), ( void * ) pxSocket ); in FreeRTOS_socket()
757 pxSocket->xReceiveBlockTime = ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME; in FreeRTOS_socket()
758 pxSocket->xSendBlockTime = ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME; in FreeRTOS_socket()
759 pxSocket->ucSocketOptions = ( uint8_t ) FREERTOS_SO_UDPCKSUM_OUT; in FreeRTOS_socket()
760 pxSocket->ucProtocol = ( uint8_t ) xProtocolCpy; /* protocol: UDP or TCP */ in FreeRTOS_socket()
762 xReturn = pxSocket; in FreeRTOS_socket()
847 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_FD_SET() local
851 configASSERT( pxSocket != NULL ); in FreeRTOS_FD_SET()
856 pxSocket->xSelectBits |= xBitsToSet & ( ( EventBits_t ) eSELECT_ALL ); in FreeRTOS_FD_SET()
858 if( ( pxSocket->xSelectBits & ( ( EventBits_t ) eSELECT_ALL ) ) != ( EventBits_t ) 0U ) in FreeRTOS_FD_SET()
861 pxSocket->pxSocketSet = ( SocketSelect_t * ) xSocketSet; in FreeRTOS_FD_SET()
888 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_FD_CLR() local
890 configASSERT( pxSocket != NULL ); in FreeRTOS_FD_CLR()
893 pxSocket->xSelectBits &= ~( xBitsToClear & ( ( EventBits_t ) eSELECT_ALL ) ); in FreeRTOS_FD_CLR()
895 if( ( pxSocket->xSelectBits & ( ( EventBits_t ) eSELECT_ALL ) ) != ( EventBits_t ) 0U ) in FreeRTOS_FD_CLR()
897 pxSocket->pxSocketSet = ( SocketSelect_t * ) xSocketSet; in FreeRTOS_FD_CLR()
902 pxSocket->pxSocketSet = NULL; in FreeRTOS_FD_CLR()
926 const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_FD_ISSET() local
928 configASSERT( pxSocket != NULL ); in FreeRTOS_FD_ISSET()
931 if( xSocketSet == ( SocketSet_t ) pxSocket->pxSocketSet ) in FreeRTOS_FD_ISSET()
935 xReturn = pxSocket->xSocketBits & ( ( EventBits_t ) eSELECT_ALL ); in FreeRTOS_FD_ISSET()
1091 static NetworkBufferDescriptor_t * prvRecvFromWaitForPacket( FreeRTOS_Socket_t const * pxSocket, in prvRecvFromWaitForPacket() argument
1096 TickType_t xRemainingTime = pxSocket->xReceiveBlockTime; in prvRecvFromWaitForPacket()
1102 …lPacketCount = ( BaseType_t ) listCURRENT_LIST_LENGTH( &( pxSocket->u.xUDP.xWaitingPacketsList ) ); in prvRecvFromWaitForPacket()
1115 … xEventBits = xEventGroupWaitBits( pxSocket->xEventGroup, ( EventBits_t ) eSOCKET_INTR, in prvRecvFromWaitForPacket()
1137 …xEventBits = xEventGroupWaitBits( pxSocket->xEventGroup, ( ( EventBits_t ) eSOCKET_RECEIVE ) | ( (… in prvRecvFromWaitForPacket()
1147 … ( void ) xEventGroupSetBits( pxSocket->xEventGroup, ( EventBits_t ) eSOCKET_RECEIVE ); in prvRecvFromWaitForPacket()
1159 …lPacketCount = ( BaseType_t ) listCURRENT_LIST_LENGTH( &( pxSocket->u.xUDP.xWaitingPacketsList ) ); in prvRecvFromWaitForPacket()
1178 …fer = ( ( NetworkBufferDescriptor_t * ) listGET_OWNER_OF_HEAD_ENTRY( &( pxSocket->u.xUDP.xWaitingP… in prvRecvFromWaitForPacket()
1273 FreeRTOS_Socket_t const * pxSocket = xSocket; in FreeRTOS_recvfrom() local
1280 if( prvValidSocket( pxSocket, FREERTOS_IPPROTO_UDP, pdTRUE ) == pdFALSE ) in FreeRTOS_recvfrom()
1290 pxNetworkBuffer = prvRecvFromWaitForPacket( pxSocket, xFlags, &( xEventBits ) ); in FreeRTOS_recvfrom()
1370 static BaseType_t prvMakeSureSocketIsBound( FreeRTOS_Socket_t * pxSocket ) in prvMakeSureSocketIsBound() argument
1373 BaseType_t xReturn = prvValidSocket( pxSocket, FREERTOS_IPPROTO_UDP, pdFALSE ); in prvMakeSureSocketIsBound()
1375 if( ( xReturn == pdTRUE ) && ( !socketSOCKET_IS_BOUND( pxSocket ) ) ) in prvMakeSureSocketIsBound()
1378 if( FreeRTOS_bind( pxSocket, NULL, 0U ) != 0 ) in prvMakeSureSocketIsBound()
1401 static int32_t prvSendUDPPacket( const FreeRTOS_Socket_t * pxSocket, in prvSendUDPPacket() argument
1433 pxNetworkBuffer->usBoundPort = ( uint16_t ) socketGET_SOCKET_PORT( pxSocket ); in prvSendUDPPacket()
1437 pxNetworkBuffer->pucEthernetBuffer[ ipSOCKET_OPTIONS_OFFSET ] = pxSocket->ucSocketOptions; in prvSendUDPPacket()
1449 if( ipconfigIS_VALID_PROG_ADDRESS( pxSocket->u.xUDP.pxHandleSent ) ) in prvSendUDPPacket()
1451 … pxSocket->u.xUDP.pxHandleSent( ( FreeRTOS_Socket_t * ) pxSocket, uxTotalDataLength ); in prvSendUDPPacket()
1485 static int32_t prvSendTo_ActualSend( const FreeRTOS_Socket_t * pxSocket, in prvSendTo_ActualSend() argument
1493 TickType_t xTicksToWait = pxSocket->xSendBlockTime; in prvSendTo_ActualSend()
1537 pxNetworkBuffer->pxEndPoint = pxSocket->pxEndPoint; in prvSendTo_ActualSend()
1538 lReturn = prvSendUDPPacket( pxSocket, in prvSendTo_ActualSend()
1583 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_sendto() local
1637 if( prvMakeSureSocketIsBound( pxSocket ) == pdTRUE ) in FreeRTOS_sendto()
1639 …lReturn = prvSendTo_ActualSend( pxSocket, pvBuffer, uxTotalDataLength, xFlags, pxDestinationAddres… in FreeRTOS_sendto()
1680 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_bind() local
1701 if( xSocketValid( pxSocket ) == pdFALSE ) in FreeRTOS_bind()
1708 else if( socketSOCKET_IS_BOUND( pxSocket ) ) in FreeRTOS_bind()
1711 … FreeRTOS_debug_printf( ( "vSocketBind: Socket already bound to %d\n", pxSocket->usLocalPort ) ); in FreeRTOS_bind()
1727 …( void ) memcpy( pxSocket->xLocalAddress.xIP_IPv6.ucBytes, pxAddress->sin_address.xIP_IPv6.ucBytes… in FreeRTOS_bind()
1728 pxSocket->bits.bIsIPv6 = pdTRUE_UNSIGNED; in FreeRTOS_bind()
1734 … pxSocket->xLocalAddress.ulIP_IPv4 = FreeRTOS_ntohl( pxAddress->sin_address.ulIP_IPv4 ); in FreeRTOS_bind()
1735 pxSocket->bits.bIsIPv6 = pdFALSE_UNSIGNED; in FreeRTOS_bind()
1744 pxSocket->usLocalPort = FreeRTOS_ntohs( pxAddress->sin_port ); in FreeRTOS_bind()
1749 pxSocket->usLocalPort = 0U; in FreeRTOS_bind()
1750 …( void ) memset( pxSocket->xLocalAddress.xIP_IPv6.ucBytes, 0, sizeof( pxSocket->xLocalAddress.xIP_… in FreeRTOS_bind()
1766 …( void ) xEventGroupWaitBits( pxSocket->xEventGroup, ( EventBits_t ) eSOCKET_BOUND, pdTRUE /*xClea… in FreeRTOS_bind()
1768 if( !socketSOCKET_IS_BOUND( pxSocket ) ) in FreeRTOS_bind()
1788 static BaseType_t prvSocketBindAdd( FreeRTOS_Socket_t * pxSocket, in prvSocketBindAdd() argument
1797 …if( ( ( xInternal == pdFALSE ) || ( pxSocket->ucProtocol != ( uint8_t ) FREERTOS_IPPROTO_TCP ) ) && in prvSocketBindAdd()
1801 … ( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_TCP ) ? "TC" : "UD", in prvSocketBindAdd()
1809 socketSET_SOCKET_PORT( pxSocket, pxAddress->sin_port ); in prvSocketBindAdd()
1813 pxSocket->usLocalPort = FreeRTOS_ntohs( pxAddress->sin_port ); in prvSocketBindAdd()
1818 …( void ) memcpy( pxSocket->xLocalAddress.xIP_IPv6.ucBytes, pxAddress->sin_address.xIP_IPv6.ucBytes… in prvSocketBindAdd()
1826 … pxSocket->pxEndPoint = FreeRTOS_FindEndPointOnIP_IPv4( pxAddress->sin_address.ulIP_IPv4, 7 ); in prvSocketBindAdd()
1835 if( pxSocket->pxEndPoint != NULL ) in prvSocketBindAdd()
1837 …pxSocket->xLocalAddress.ulIP_IPv4 = FreeRTOS_ntohl( pxSocket->pxEndPoint->ipv4_settings.ulIPAddres… in prvSocketBindAdd()
1849 …( void ) memset( pxSocket->xLocalAddress.xIP_IPv6.ucBytes, 0, sizeof( pxSocket->xLocalAddress.xIP_… in prvSocketBindAdd()
1864 vListInsertEnd( pxSocketList, &( pxSocket->xBoundSocketListItem ) ); in prvSocketBindAdd()
1891 BaseType_t vSocketBind( FreeRTOS_Socket_t * pxSocket, in vSocketBind() argument
1904 configASSERT( xSocketValid( pxSocket ) == pdTRUE ); in vSocketBind()
1907 if( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_TCP ) in vSocketBind()
1952 … pxAddress->sin_port = prvGetPrivatePortNumber( ( BaseType_t ) pxSocket->ucProtocol ); in vSocketBind()
1965 xReturn = prvSocketBindAdd( pxSocket, pxAddress, pxSocketList, xInternal ); in vSocketBind()
2006 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_closesocket() local
2021 if( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_TCP ) in FreeRTOS_closesocket()
2024 pxSocket->u.xTCP.pxHandleConnected = NULL; in FreeRTOS_closesocket()
2025 pxSocket->u.xTCP.pxHandleReceive = NULL; in FreeRTOS_closesocket()
2026 pxSocket->u.xTCP.pxHandleSent = NULL; in FreeRTOS_closesocket()
2031 if( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_UDP ) in FreeRTOS_closesocket()
2034 pxSocket->u.xUDP.pxHandleReceive = NULL; in FreeRTOS_closesocket()
2035 pxSocket->u.xUDP.pxHandleSent = NULL; in FreeRTOS_closesocket()
2072 void * vSocketClose( FreeRTOS_Socket_t * pxSocket ) in vSocketClose() argument
2079 if( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_TCP ) in vSocketClose()
2083 if( pxSocket->u.xTCP.pxAckMessage != NULL ) in vSocketClose()
2085 vReleaseNetworkBufferAndDescriptor( pxSocket->u.xTCP.pxAckMessage ); in vSocketClose()
2089 vTCPWindowDestroy( &pxSocket->u.xTCP.xTCPWindow ); in vSocketClose()
2094 if( pxSocket->u.xTCP.rxStream != NULL ) in vSocketClose()
2096 iptraceMEM_STATS_DELETE( pxSocket->u.xTCP.rxStream ); in vSocketClose()
2097 vPortFreeLarge( pxSocket->u.xTCP.rxStream ); in vSocketClose()
2100 if( pxSocket->u.xTCP.txStream != NULL ) in vSocketClose()
2102 iptraceMEM_STATS_DELETE( pxSocket->u.xTCP.txStream ); in vSocketClose()
2103 vPortFreeLarge( pxSocket->u.xTCP.txStream ); in vSocketClose()
2108 prvTCPSetSocketCount( pxSocket ); in vSocketClose()
2115 if( socketSOCKET_IS_BOUND( pxSocket ) ) in vSocketClose()
2126 ( void ) uxListRemove( &( pxSocket->xBoundSocketListItem ) ); in vSocketClose()
2137 if( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_UDP ) in vSocketClose()
2139 while( listCURRENT_LIST_LENGTH( &( pxSocket->u.xUDP.xWaitingPacketsList ) ) > 0U ) in vSocketClose()
2141 …fer = ( ( NetworkBufferDescriptor_t * ) listGET_OWNER_OF_HEAD_ENTRY( &( pxSocket->u.xUDP.xWaitingP… in vSocketClose()
2147 if( pxSocket->xEventGroup != NULL ) in vSocketClose()
2149 vEventGroupDelete( pxSocket->xEventGroup ); in vSocketClose()
2154 if( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_TCP ) in vSocketClose()
2157 prvSocketProps( pxSocket ), in vSocketClose()
2165 iptraceMEM_STATS_DELETE( pxSocket ); in vSocketClose()
2166 vPortFreeSocket( pxSocket ); in vSocketClose()
2173 const char * prvSocketProps( FreeRTOS_Socket_t * pxSocket ) in prvSocketProps() argument
2178 if( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_TCP ) in prvSocketProps()
2180 …switch( pxSocket->bits.bIsIPv6 ) /* LCOV_EXCL_BR_LINE Exclude this line because default case is no… in prvSocketProps()
2192 ( unsigned ) pxSocket->xLocalAddress.ulIP_IPv4, in prvSocketProps()
2193 pxSocket->usLocalPort, in prvSocketProps()
2194 ( unsigned ) pxSocket->u.xTCP.xRemoteIP.ulIP_IPv4, in prvSocketProps()
2195 pxSocket->u.xTCP.usRemotePort ); in prvSocketProps()
2202 ( void * ) pxSocket->xLocalAddress.xIP_IPv6.ucBytes, in prvSocketProps()
2203 pxSocket->usLocalPort, in prvSocketProps()
2204 … ( void * ) pxSocket->u.xTCP.xRemoteIP.xIP_IPv6.ucBytes, in prvSocketProps()
2205 pxSocket->u.xTCP.usRemotePort ); in prvSocketProps()
2217 if( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_UDP ) in prvSocketProps()
2219 …switch( pxSocket->bits.bIsIPv6 ) /* LCOV_EXCL_BR_LINE Exclude this line because default case is no… in prvSocketProps()
2225 ( unsigned ) pxSocket->xLocalAddress.ulIP_IPv4, in prvSocketProps()
2226 pxSocket->usLocalPort ); in prvSocketProps()
2234 ( void * ) pxSocket->xLocalAddress.xIP_IPv6.ucBytes, in prvSocketProps()
2235 pxSocket->usLocalPort ); in prvSocketProps()
2344 static BaseType_t prvSockopt_so_buffer( FreeRTOS_Socket_t * pxSocket, in prvSockopt_so_buffer() argument
2351 if( pxSocket->ucProtocol != ( uint8_t ) FREERTOS_IPPROTO_TCP ) in prvSockopt_so_buffer()
2357 … else if( ( ( lOptionName == FREERTOS_SO_SNDBUF ) && ( pxSocket->u.xTCP.txStream != NULL ) ) || in prvSockopt_so_buffer()
2358 … ( ( lOptionName == FREERTOS_SO_RCVBUF ) && ( pxSocket->u.xTCP.rxStream != NULL ) ) ) in prvSockopt_so_buffer()
2371 ulNewValue = FreeRTOS_round_up( ulNewValue, ( uint32_t ) pxSocket->u.xTCP.usMSS ); in prvSockopt_so_buffer()
2372 pxSocket->u.xTCP.uxTxStreamSize = ulNewValue; in prvSockopt_so_buffer()
2376 pxSocket->u.xTCP.uxRxStreamSize = ulNewValue; in prvSockopt_so_buffer()
2402 BaseType_t prvSetOptionCallback( FreeRTOS_Socket_t * pxSocket, in prvSetOptionCallback() argument
2422 if( pxSocket->ucProtocol != ( uint8_t ) uxProtocol ) in prvSetOptionCallback()
2440 …pxSocket->u.xTCP.pxHandleConnected = ( ( const F_TCP_UDP_Handler_t * ) pvOptionValue )->pxOnTCPCon… in prvSetOptionCallback()
2444 …pxSocket->u.xTCP.pxHandleReceive = ( ( const F_TCP_UDP_Handler_t * ) pvOptionValue )->pxOnTCPRecei… in prvSetOptionCallback()
2448 … pxSocket->u.xTCP.pxHandleSent = ( ( const F_TCP_UDP_Handler_t * ) pvOptionValue )->pxOnTCPSent; in prvSetOptionCallback()
2452 …pxSocket->u.xUDP.pxHandleReceive = ( ( const F_TCP_UDP_Handler_t * ) pvOptionValue )->pxOnUDPRecei… in prvSetOptionCallback()
2456 … pxSocket->u.xUDP.pxHandleSent = ( ( const F_TCP_UDP_Handler_t * ) pvOptionValue )->pxOnUDPSent; in prvSetOptionCallback()
2480 static BaseType_t prvSetOptionTCPWindows( FreeRTOS_Socket_t * pxSocket, in prvSetOptionTCPWindows() argument
2488 IPTCPSocket_t * pxTCP = &( pxSocket->u.xTCP ); in prvSetOptionTCPWindows()
2490 if( pxSocket->ucProtocol != ( uint8_t ) FREERTOS_IPPROTO_TCP ) in prvSetOptionTCPWindows()
2499 … xReturn = prvSockopt_so_buffer( pxSocket, FREERTOS_SO_SNDBUF, &( pxProps->lTxBufSize ) ); in prvSetOptionTCPWindows()
2506 … xReturn = prvSockopt_so_buffer( pxSocket, FREERTOS_SO_RCVBUF, &( pxProps->lRxBufSize ) ); in prvSetOptionTCPWindows()
2550 static BaseType_t prvSetOptionLowHighWater( FreeRTOS_Socket_t * pxSocket, in prvSetOptionLowHighWater() argument
2556 if( pxSocket->ucProtocol != ( uint8_t ) FREERTOS_IPPROTO_TCP ) in prvSetOptionLowHighWater()
2562 ( pxLowHighWater->uxEnoughSpace > pxSocket->u.xTCP.uxRxStreamSize ) ) in prvSetOptionLowHighWater()
2570 pxSocket->u.xTCP.uxLittleSpace = pxLowHighWater->uxLittleSpace; in prvSetOptionLowHighWater()
2572 pxSocket->u.xTCP.uxEnoughSpace = pxLowHighWater->uxEnoughSpace; in prvSetOptionLowHighWater()
2591 static BaseType_t prvSetOptionSetFullSize( FreeRTOS_Socket_t * pxSocket, in prvSetOptionSetFullSize() argument
2596 if( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_TCP ) in prvSetOptionSetFullSize()
2600 pxSocket->u.xTCP.xTCPWindow.u.bits.bSendFullSize = pdTRUE_UNSIGNED; in prvSetOptionSetFullSize()
2604 pxSocket->u.xTCP.xTCPWindow.u.bits.bSendFullSize = pdFALSE_UNSIGNED; in prvSetOptionSetFullSize()
2607 if( ( pxSocket->u.xTCP.eTCPState >= eESTABLISHED ) && in prvSetOptionSetFullSize()
2608 ( FreeRTOS_outstanding( pxSocket ) != 0 ) ) in prvSetOptionSetFullSize()
2612 pxSocket->u.xTCP.usTimeout = 1U; in prvSetOptionSetFullSize()
2634 static BaseType_t prvSetOptionStopRX( FreeRTOS_Socket_t * pxSocket, in prvSetOptionStopRX() argument
2639 if( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_TCP ) in prvSetOptionStopRX()
2643 pxSocket->u.xTCP.bits.bRxStopped = pdTRUE_UNSIGNED; in prvSetOptionStopRX()
2647 pxSocket->u.xTCP.bits.bRxStopped = pdFALSE_UNSIGNED; in prvSetOptionStopRX()
2650 pxSocket->u.xTCP.bits.bWinChange = pdTRUE_UNSIGNED; in prvSetOptionStopRX()
2651 pxSocket->u.xTCP.usTimeout = 1U; /* to set/clear bRxStopped */ in prvSetOptionStopRX()
2673 static void prvSetOptionTimeout( FreeRTOS_Socket_t * pxSocket, in prvSetOptionTimeout() argument
2681 if( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_UDP ) in prvSetOptionTimeout()
2699 pxSocket->xSendBlockTime = xBlockTime; in prvSetOptionTimeout()
2703 pxSocket->xReceiveBlockTime = xBlockTime; in prvSetOptionTimeout()
2718 static BaseType_t prvSetOptionReuseListenSocket( FreeRTOS_Socket_t * pxSocket, in prvSetOptionReuseListenSocket() argument
2723 if( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_TCP ) in prvSetOptionReuseListenSocket()
2727 pxSocket->u.xTCP.bits.bReuseSocket = pdTRUE_UNSIGNED; in prvSetOptionReuseListenSocket()
2731 pxSocket->u.xTCP.bits.bReuseSocket = pdFALSE_UNSIGNED; in prvSetOptionReuseListenSocket()
2753 static BaseType_t prvSetOptionCloseAfterSend( FreeRTOS_Socket_t * pxSocket, in prvSetOptionCloseAfterSend() argument
2758 if( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_TCP ) in prvSetOptionCloseAfterSend()
2762 pxSocket->u.xTCP.bits.bCloseAfterSend = pdTRUE_UNSIGNED; in prvSetOptionCloseAfterSend()
2766 pxSocket->u.xTCP.bits.bCloseAfterSend = pdFALSE_UNSIGNED; in prvSetOptionCloseAfterSend()
2802 FreeRTOS_Socket_t * pxSocket; in FreeRTOS_setsockopt() local
2804 pxSocket = ( FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_setsockopt()
2811 if( xSocketValid( pxSocket ) == pdTRUE ) in FreeRTOS_setsockopt()
2817 prvSetOptionTimeout( pxSocket, pvOptionValue, pdFALSE ); in FreeRTOS_setsockopt()
2822 prvSetOptionTimeout( pxSocket, pvOptionValue, pdTRUE ); in FreeRTOS_setsockopt()
2829 if( pxSocket->ucProtocol != ( uint8_t ) FREERTOS_IPPROTO_UDP ) in FreeRTOS_setsockopt()
2834 pxSocket->u.xUDP.uxMaxPackets = *( ( const UBaseType_t * ) pvOptionValue ); in FreeRTOS_setsockopt()
2846 … pxSocket->ucSocketOptions &= ( ( uint8_t ) ~( ( uint8_t ) FREERTOS_SO_UDPCKSUM_OUT ) ); in FreeRTOS_setsockopt()
2850 pxSocket->ucSocketOptions |= ( uint8_t ) FREERTOS_SO_UDPCKSUM_OUT; in FreeRTOS_setsockopt()
2864 xReturn = prvSetOptionCallback( pxSocket, lOptionName, pvOptionValue ); in FreeRTOS_setsockopt()
2873 pxSocket->pxUserSemaphore = *( ( SemaphoreHandle_t * ) pvOptionValue ); in FreeRTOS_setsockopt()
2896 pxSocket->pxUserWakeCallback = ( SocketWakeupCallback_t ) pvOptionValue; in FreeRTOS_setsockopt()
2903 xReturn = prvSetOptionLowHighWater( pxSocket, pvOptionValue ); in FreeRTOS_setsockopt()
2908 xReturn = prvSockopt_so_buffer( pxSocket, lOptionName, pvOptionValue ); in FreeRTOS_setsockopt()
2912 xReturn = prvSetOptionTCPWindows( pxSocket, pvOptionValue ); in FreeRTOS_setsockopt()
2916 xReturn = prvSetOptionReuseListenSocket( pxSocket, pvOptionValue ); in FreeRTOS_setsockopt()
2920 xReturn = prvSetOptionCloseAfterSend( pxSocket, pvOptionValue ); in FreeRTOS_setsockopt()
2924 xReturn = prvSetOptionSetFullSize( pxSocket, pvOptionValue ); in FreeRTOS_setsockopt()
2928 xReturn = prvSetOptionStopRX( pxSocket, pvOptionValue ); in FreeRTOS_setsockopt()
3066 FreeRTOS_Socket_t * pxSocket = NULL; in pxUDPSocketLookup() local
3077 pxSocket = ( ( FreeRTOS_Socket_t * ) listGET_LIST_ITEM_OWNER( pxListItem ) ); in pxUDPSocketLookup()
3078 configASSERT( pxSocket != NULL ); in pxUDPSocketLookup()
3081 return pxSocket; in pxUDPSocketLookup()
3476 const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_GetLocalAddress() local
3478 …switch( pxSocket->bits.bIsIPv6 ) /* LCOV_EXCL_BR_LINE Exclude this line because default case is no… in FreeRTOS_GetLocalAddress()
3485 … pxAddress->sin_address.ulIP_IPv4 = FreeRTOS_htonl( pxSocket->xLocalAddress.ulIP_IPv4 ); in FreeRTOS_GetLocalAddress()
3488 pxAddress->sin_port = FreeRTOS_htons( pxSocket->usLocalPort ); in FreeRTOS_GetLocalAddress()
3496 …( void ) memcpy( pxAddress->sin_address.xIP_IPv6.ucBytes, pxSocket->xLocalAddress.xIP_IPv6.ucBytes… in FreeRTOS_GetLocalAddress()
3498 pxAddress->sin_port = FreeRTOS_htons( pxSocket->usLocalPort ); in FreeRTOS_GetLocalAddress()
3517 void vSocketWakeUpUser( FreeRTOS_Socket_t * pxSocket ) in vSocketWakeUpUser() argument
3523 if( pxSocket->pxUserSemaphore != NULL ) in vSocketWakeUpUser()
3525 ( void ) xSemaphoreGive( pxSocket->pxUserSemaphore ); in vSocketWakeUpUser()
3532 if( pxSocket->pxUserWakeCallback != NULL ) in vSocketWakeUpUser()
3534 pxSocket->pxUserWakeCallback( pxSocket ); in vSocketWakeUpUser()
3541 if( pxSocket->pxSocketSet != NULL ) in vSocketWakeUpUser()
3543 …EventBits_t xSelectBits = ( pxSocket->xEventBits >> SOCKET_EVENT_BIT_COUNT ) & ( ( EventBits_t ) e… in vSocketWakeUpUser()
3547 pxSocket->xSocketBits |= xSelectBits; in vSocketWakeUpUser()
3548 ( void ) xEventGroupSetBits( pxSocket->pxSocketSet->xSelectGroup, xSelectBits ); in vSocketWakeUpUser()
3552 pxSocket->xEventBits &= ( EventBits_t ) eSOCKET_ALL; in vSocketWakeUpUser()
3556 if( ( pxSocket->xEventGroup != NULL ) && ( pxSocket->xEventBits != 0U ) ) in vSocketWakeUpUser()
3558 ( void ) xEventGroupSetBits( pxSocket->xEventGroup, pxSocket->xEventBits ); in vSocketWakeUpUser()
3561 pxSocket->xEventBits = 0U; in vSocketWakeUpUser()
3607 static BaseType_t bMayConnect( FreeRTOS_Socket_t const * pxSocket ) in bMayConnect() argument
3611 eIPTCPState_t eState = pxSocket->u.xTCP.eTCPState; in bMayConnect()
3656 static BaseType_t prvTCPConnectStart( FreeRTOS_Socket_t * pxSocket, in prvTCPConnectStart() argument
3666 else if( prvValidSocket( pxSocket, FREERTOS_IPPROTO_TCP, pdFALSE ) == pdFALSE ) in prvTCPConnectStart()
3671 else if( FreeRTOS_issocketconnected( pxSocket ) > 0 ) in prvTCPConnectStart()
3676 else if( !socketSOCKET_IS_BOUND( pxSocket ) ) in prvTCPConnectStart()
3680 xResult = FreeRTOS_bind( pxSocket, NULL, 0U ); in prvTCPConnectStart()
3691 xResult = bMayConnect( pxSocket ); /* -EINPROGRESS, -EAGAIN, or 0 for OK */ in prvTCPConnectStart()
3696 pxSocket->u.xTCP.bits.bConnPrepared = pdFALSE; in prvTCPConnectStart()
3697 pxSocket->u.xTCP.ucRepCount = 0U; in prvTCPConnectStart()
3703 pxSocket->bits.bIsIPv6 = pdTRUE_UNSIGNED; in prvTCPConnectStart()
3705 … pxSocket->usLocalPort, ( void * ) pxAddress->sin_address.xIP_IPv6.ucBytes, in prvTCPConnectStart()
3707 …( void ) memcpy( pxSocket->u.xTCP.xRemoteIP.xIP_IPv6.ucBytes, pxAddress->sin_address.xIP_IPv6.ucBy… in prvTCPConnectStart()
3713 pxSocket->bits.bIsIPv6 = pdFALSE_UNSIGNED; in prvTCPConnectStart()
3715 …pxSocket->usLocalPort, ( unsigned int ) FreeRTOS_ntohl( pxAddress->sin_address.ulIP_IPv4 ), FreeRT… in prvTCPConnectStart()
3716 … pxSocket->u.xTCP.xRemoteIP.ulIP_IPv4 = FreeRTOS_ntohl( pxAddress->sin_address.ulIP_IPv4 ); in prvTCPConnectStart()
3726 pxSocket->u.xTCP.usRemotePort = FreeRTOS_ntohs( pxAddress->sin_port ); in prvTCPConnectStart()
3729 vTCPStateChange( pxSocket, eCONNECT_SYN ); in prvTCPConnectStart()
3732 pxSocket->u.xTCP.usTimeout = 1U; in prvTCPConnectStart()
3766 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) xClientSocket; in FreeRTOS_connect() local
3788 xResult = prvTCPConnectStart( pxSocket, pxAddress ); in FreeRTOS_connect()
3800 xRemainingTime = pxSocket->xReceiveBlockTime; in FreeRTOS_connect()
3817 xResult = FreeRTOS_issocketconnected( pxSocket ); in FreeRTOS_connect()
3841 uxEvents = xEventGroupWaitBits( pxSocket->xEventGroup, in FreeRTOS_connect()
3971 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) xServerSocket; in FreeRTOS_accept() local
3978 if( prvValidSocket( pxSocket, FREERTOS_IPPROTO_TCP, pdTRUE ) == pdFALSE ) in FreeRTOS_accept()
3987 else if( ( pxSocket->u.xTCP.bits.bReuseSocket == pdFALSE_UNSIGNED ) && in FreeRTOS_accept()
3988 ( pxSocket->u.xTCP.eTCPState != eTCP_LISTEN ) ) in FreeRTOS_accept()
4002 pxClientSocket = prvAcceptWaitClient( pxSocket, pxAddress, pxAddressLength ); in FreeRTOS_accept()
4006 if( pxSocket->u.xTCP.bits.bReuseSocket == pdFALSE_UNSIGNED ) in FreeRTOS_accept()
4011 xAskEvent.pvData = pxSocket; in FreeRTOS_accept()
4021 xRemainingTime = pxSocket->xReceiveBlockTime; in FreeRTOS_accept()
4042 ( void ) xEventGroupWaitBits( pxSocket->xEventGroup, in FreeRTOS_accept()
4071 static BaseType_t prvRecvData( FreeRTOS_Socket_t * pxSocket, in prvRecvData() argument
4083 uxStreamBufferGet( pxSocket->u.xTCP.rxStream, in prvRecvData()
4089 if( pxSocket->u.xTCP.bits.bLowWater != pdFALSE_UNSIGNED ) in prvRecvData()
4093 size_t uxFrontSpace = uxStreamBufferFrontSpace( pxSocket->u.xTCP.rxStream ); in prvRecvData()
4095 if( uxFrontSpace >= pxSocket->u.xTCP.uxEnoughSpace ) in prvRecvData()
4097 pxSocket->u.xTCP.bits.bLowWater = pdFALSE_UNSIGNED; in prvRecvData()
4098 pxSocket->u.xTCP.bits.bWinChange = pdTRUE_UNSIGNED; in prvRecvData()
4099 pxSocket->u.xTCP.usTimeout = 1U; /* because bLowWater is cleared. */ in prvRecvData()
4107 …xByteCount = ( BaseType_t ) uxStreamBufferGetPtr( pxSocket->u.xTCP.rxStream, ( uint8_t ** ) pvBuff… in prvRecvData()
4127 static BaseType_t prvRecvWait( const FreeRTOS_Socket_t * pxSocket, in prvRecvWait() argument
4137 if( pxSocket->u.xTCP.rxStream != NULL ) in prvRecvWait()
4139 xByteCount = ( BaseType_t ) uxStreamBufferGetSize( pxSocket->u.xTCP.rxStream ); in prvRecvWait()
4144 eIPTCPState_t eType = ( eIPTCPState_t ) pxSocket->u.xTCP.eTCPState; in prvRecvWait()
4153 if( pxSocket->u.xTCP.bits.bMallocError != pdFALSE_UNSIGNED ) in prvRecvWait()
4166 xRemainingTime = pxSocket->xReceiveBlockTime; in prvRecvWait()
4173 … xEventBits = xEventGroupWaitBits( pxSocket->xEventGroup, ( EventBits_t ) eSOCKET_INTR, in prvRecvWait()
4199 xEventBits = xEventGroupWaitBits( pxSocket->xEventGroup, in prvRecvWait()
4215 if( pxSocket->u.xTCP.rxStream != NULL ) in prvRecvWait()
4217 xByteCount = ( BaseType_t ) uxStreamBufferGetSize( pxSocket->u.xTCP.rxStream ); in prvRecvWait()
4250 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_recv() local
4255 if( prvValidSocket( pxSocket, FREERTOS_IPPROTO_TCP, pdTRUE ) == pdFALSE ) in FreeRTOS_recv()
4268 xByteCount = prvRecvWait( pxSocket, &( xEventBits ), xFlags ); in FreeRTOS_recv()
4277 ( void ) xEventGroupSetBits( pxSocket->xEventGroup, xEventBits ); in FreeRTOS_recv()
4289 xByteCount = prvRecvData( pxSocket, pvBuffer, uxBufferLength, xFlags ); in FreeRTOS_recv()
4311 static int32_t prvTCPSendCheck( FreeRTOS_Socket_t * pxSocket, in prvTCPSendCheck() argument
4317 if( prvValidSocket( pxSocket, FREERTOS_IPPROTO_TCP, pdTRUE ) == pdFALSE ) in prvTCPSendCheck()
4321 else if( pxSocket->u.xTCP.bits.bMallocError != pdFALSE_UNSIGNED ) in prvTCPSendCheck()
4325 else if( ( pxSocket->u.xTCP.eTCPState == eCLOSED ) || in prvTCPSendCheck()
4326 ( pxSocket->u.xTCP.eTCPState == eCLOSE_WAIT ) || in prvTCPSendCheck()
4327 ( pxSocket->u.xTCP.eTCPState == eCLOSING ) ) in prvTCPSendCheck()
4331 else if( pxSocket->u.xTCP.bits.bFinSent != pdFALSE_UNSIGNED ) in prvTCPSendCheck()
4343 else if( pxSocket->u.xTCP.txStream == NULL ) in prvTCPSendCheck()
4346 ( void ) prvTCPCreateStream( pxSocket, pdFALSE ); in prvTCPSendCheck()
4348 if( pxSocket->u.xTCP.txStream == NULL ) in prvTCPSendCheck()
4379 const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_get_tx_head() local
4386 if( prvValidSocket( pxSocket, FREERTOS_IPPROTO_TCP, pdFALSE ) == pdTRUE ) in FreeRTOS_get_tx_head()
4388 pxBuffer = pxSocket->u.xTCP.txStream; in FreeRTOS_get_tx_head()
4425 static BaseType_t prvTCPSendLoop( FreeRTOS_Socket_t * pxSocket, in prvTCPSendLoop() argument
4435 BaseType_t xByteCount = ( BaseType_t ) uxStreamBufferGetSpace( pxSocket->u.xTCP.txStream ); in prvTCPSendLoop()
4455 if( ( pxSocket->u.xTCP.bits.bCloseAfterSend != pdFALSE_UNSIGNED ) && in prvTCPSendLoop()
4463 pxSocket->u.xTCP.bits.bCloseRequested = pdTRUE_UNSIGNED; in prvTCPSendLoop()
4475 …xByteCount = ( BaseType_t ) uxStreamBufferAdd( pxSocket->u.xTCP.txStream, 0U, pucSource, ( size_t … in prvTCPSendLoop()
4487 pxSocket->u.xTCP.usTimeout = 1U; in prvTCPSendLoop()
4515 xRemainingTime = pxSocket->xSendBlockTime; in prvTCPSendLoop()
4552 …( void ) xEventGroupWaitBits( pxSocket->xEventGroup, ( EventBits_t ) eSOCKET_SEND | ( EventBits_t … in prvTCPSendLoop()
4555 xByteCount = ( BaseType_t ) prvTCPSendCheck( pxSocket, uxDataLength ); in prvTCPSendLoop()
4564 xByteCount = ( BaseType_t ) uxStreamBufferGetSpace( pxSocket->u.xTCP.txStream ); in prvTCPSendLoop()
4591 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_send() local
4598 xByteCount = ( BaseType_t ) prvTCPSendCheck( pxSocket, uxDataLength ); in FreeRTOS_send()
4605 xByteCount = prvTCPSendLoop( pxSocket, pvBuffer, uxDataLength, xFlags ); in FreeRTOS_send()
4609 if( pxSocket->u.xTCP.eTCPState > eESTABLISHED ) in FreeRTOS_send()
4615 if( ipconfigTCP_MAY_LOG_PORT( pxSocket->usLocalPort ) ) in FreeRTOS_send()
4618 pxSocket->usLocalPort, in FreeRTOS_send()
4619 ( unsigned ) pxSocket->u.xTCP.xRemoteIP.ulIP_IPv4, in FreeRTOS_send()
4620 pxSocket->u.xTCP.usRemotePort ) ); in FreeRTOS_send()
4653 FreeRTOS_Socket_t * pxSocket; in FreeRTOS_listen() local
4656 pxSocket = ( FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_listen()
4660 if( prvValidSocket( pxSocket, FREERTOS_IPPROTO_TCP, pdTRUE ) == pdFALSE ) in FreeRTOS_listen()
4664 …else if( ( pxSocket->u.xTCP.eTCPState != eCLOSED ) && ( pxSocket->u.xTCP.eTCPState != eCLOSE_WAIT … in FreeRTOS_listen()
4673 …pxSocket->u.xTCP.usBacklog = ( uint16_t ) FreeRTOS_min_int32( ( int32_t ) 0xffff, ( int32_t ) xBac… in FreeRTOS_listen()
4677 if( pxSocket->u.xTCP.bits.bReuseSocket != pdFALSE_UNSIGNED ) in FreeRTOS_listen()
4679 if( pxSocket->u.xTCP.rxStream != NULL ) in FreeRTOS_listen()
4681 vStreamBufferClear( pxSocket->u.xTCP.rxStream ); in FreeRTOS_listen()
4684 if( pxSocket->u.xTCP.txStream != NULL ) in FreeRTOS_listen()
4686 vStreamBufferClear( pxSocket->u.xTCP.txStream ); in FreeRTOS_listen()
4689 …( void ) memset( pxSocket->u.xTCP.xPacket.u.ucLastPacket, 0, sizeof( pxSocket->u.xTCP.xPacket.u.uc… in FreeRTOS_listen()
4690 … ( void ) memset( &pxSocket->u.xTCP.xTCPWindow, 0, sizeof( pxSocket->u.xTCP.xTCPWindow ) ); in FreeRTOS_listen()
4691 ( void ) memset( &pxSocket->u.xTCP.bits, 0, sizeof( pxSocket->u.xTCP.bits ) ); in FreeRTOS_listen()
4695 pxSocket->u.xTCP.bits.bReuseSocket = pdTRUE; in FreeRTOS_listen()
4698 vTCPStateChange( pxSocket, eTCP_LISTEN ); in FreeRTOS_listen()
4724 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_shutdown() local
4727 if( prvValidSocket( pxSocket, FREERTOS_IPPROTO_TCP, pdTRUE ) == pdFALSE ) in FreeRTOS_shutdown()
4733 else if( pxSocket->u.xTCP.eTCPState != eESTABLISHED ) in FreeRTOS_shutdown()
4740 pxSocket->u.xTCP.bits.bUserShutdown = pdTRUE_UNSIGNED; in FreeRTOS_shutdown()
4743 pxSocket->u.xTCP.usTimeout = 1U; in FreeRTOS_shutdown()
4773 FreeRTOS_Socket_t * pxSocket; in xTCPTimerCheck() local
4798 pxSocket = ( ( FreeRTOS_Socket_t * ) listGET_LIST_ITEM_OWNER( pxIterator ) ); in xTCPTimerCheck()
4802 if( pxSocket->u.xTCP.usTimeout == 0U ) in xTCPTimerCheck()
4807 if( xDelta < ( TickType_t ) pxSocket->u.xTCP.usTimeout ) in xTCPTimerCheck()
4809 …pxSocket->u.xTCP.usTimeout = ( uint16_t ) ( ( ( TickType_t ) pxSocket->u.xTCP.usTimeout ) - xDelta… in xTCPTimerCheck()
4815 pxSocket->u.xTCP.usTimeout = 0U; in xTCPTimerCheck()
4816 xRc = xTCPSocketCheck( pxSocket ); in xTCPTimerCheck()
4830 if( pxSocket->xEventBits != 0U ) in xTCPTimerCheck()
4836 vSocketWakeUpUser( pxSocket ); in xTCPTimerCheck()
4846 …if( ( pxSocket->u.xTCP.usTimeout != 0U ) && ( xShortest > ( TickType_t ) pxSocket->u.xTCP.usTimeou… in xTCPTimerCheck()
4848 xShortest = ( TickType_t ) pxSocket->u.xTCP.usTimeout; in xTCPTimerCheck()
4895 … FreeRTOS_Socket_t * pxSocket = ( ( FreeRTOS_Socket_t * ) listGET_LIST_ITEM_OWNER( pxIterator ) ); in pxTCPSocketLookup() local
4897 if( pxSocket->usLocalPort == ( uint16_t ) uxLocalPort ) in pxTCPSocketLookup()
4899 if( pxSocket->u.xTCP.eTCPState == eTCP_LISTEN ) in pxTCPSocketLookup()
4903 pxListenSocket = pxSocket; in pxTCPSocketLookup()
4905 else if( pxSocket->u.xTCP.usRemotePort == ( uint16_t ) uxRemotePort ) in pxTCPSocketLookup()
4910 pxResult = pxTCPSocketLookup_IPv6( pxSocket, &xRemoteIP ); in pxTCPSocketLookup()
4915 if( pxSocket->u.xTCP.xRemoteIP.ulIP_IPv4 == xRemoteIP.xIPAddress.ulIP_IPv4 ) in pxTCPSocketLookup()
4919 pxResult = pxSocket; in pxTCPSocketLookup()
4960 const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_get_rx_buf() local
4966 if( prvValidSocket( pxSocket, FREERTOS_IPPROTO_TCP, pdFALSE ) == pdTRUE ) in FreeRTOS_get_rx_buf()
4968 pxReturn = pxSocket->u.xTCP.rxStream; in FreeRTOS_get_rx_buf()
4987 static StreamBuffer_t * prvTCPCreateStream( FreeRTOS_Socket_t * pxSocket, in prvTCPCreateStream() argument
5000 size_t uxSegmentCount = pxSocket->u.xTCP.uxRxStreamSize / pxSocket->u.xTCP.usMSS; in prvTCPCreateStream()
5020 uxLength = pxSocket->u.xTCP.uxRxStreamSize; in prvTCPCreateStream()
5022 if( pxSocket->u.xTCP.uxLittleSpace == 0U ) in prvTCPCreateStream()
5024 …pxSocket->u.xTCP.uxLittleSpace = ( uxLittlePerc * pxSocket->u.xTCP.uxRxStreamSize ) / sock100_PERC… in prvTCPCreateStream()
5027 if( pxSocket->u.xTCP.uxEnoughSpace == 0U ) in prvTCPCreateStream()
5029 …pxSocket->u.xTCP.uxEnoughSpace = ( uxEnoughPerc * pxSocket->u.xTCP.uxRxStreamSize ) / sock100_PERC… in prvTCPCreateStream()
5034 uxLength = pxSocket->u.xTCP.uxTxStreamSize; in prvTCPCreateStream()
5053 pxSocket->u.xTCP.bits.bMallocError = pdTRUE; in prvTCPCreateStream()
5054 vTCPStateChange( pxSocket, eCLOSE_WAIT ); in prvTCPCreateStream()
5070 pxSocket->u.xTCP.rxStream = pxBuffer; in prvTCPCreateStream()
5075 pxSocket->u.xTCP.txStream = pxBuffer; in prvTCPCreateStream()
5095 static void vTCPAddRxdata_Callback( FreeRTOS_Socket_t * pxSocket, in vTCPAddRxdata_Callback() argument
5116 … ulCount = ( uint32_t ) uxStreamBufferGetPtr( pxSocket->u.xTCP.rxStream, &( ucReadPtr ) ); in vTCPAddRxdata_Callback()
5126 ( void ) pxSocket->u.xTCP.pxHandleReceive( pxSocket, ucReadPtr, ( size_t ) ulCount ); in vTCPAddRxdata_Callback()
5128 … ( void ) uxStreamBufferGet( pxSocket->u.xTCP.rxStream, 0U, NULL, ( size_t ) ulCount, pdFALSE ); in vTCPAddRxdata_Callback()
5141 static void vTCPAddRxdata_Stored( FreeRTOS_Socket_t * pxSocket ) in vTCPAddRxdata_Stored() argument
5144 if( pxSocket->u.xTCP.bits.bLowWater == pdFALSE_UNSIGNED ) in vTCPAddRxdata_Stored()
5146 size_t uxFrontSpace = uxStreamBufferFrontSpace( pxSocket->u.xTCP.rxStream ); in vTCPAddRxdata_Stored()
5148 if( uxFrontSpace <= pxSocket->u.xTCP.uxLittleSpace ) in vTCPAddRxdata_Stored()
5150 pxSocket->u.xTCP.bits.bLowWater = pdTRUE_UNSIGNED; in vTCPAddRxdata_Stored()
5151 pxSocket->u.xTCP.bits.bWinChange = pdTRUE_UNSIGNED; in vTCPAddRxdata_Stored()
5154 pxSocket->u.xTCP.usTimeout = 1U; in vTCPAddRxdata_Stored()
5161 pxSocket->xEventBits |= ( EventBits_t ) eSOCKET_RECEIVE; in vTCPAddRxdata_Stored()
5165 if( ( pxSocket->xSelectBits & ( EventBits_t ) eSELECT_READ ) != 0U ) in vTCPAddRxdata_Stored()
5167 … pxSocket->xEventBits |= ( ( ( EventBits_t ) eSELECT_READ ) << SOCKET_EVENT_BIT_COUNT ); in vTCPAddRxdata_Stored()
5188 int32_t lTCPAddRxdata( FreeRTOS_Socket_t * pxSocket, in lTCPAddRxdata() argument
5193 StreamBuffer_t * pxStream = pxSocket->u.xTCP.rxStream; in lTCPAddRxdata()
5197 …BaseType_t bHasHandler = ipconfigIS_VALID_PROG_ADDRESS( pxSocket->u.xTCP.pxHandleReceive ) ? pdTRU… in lTCPAddRxdata()
5208 pxStream = prvTCPCreateStream( pxSocket, pdTRUE ); in lTCPAddRxdata()
5259 vTCPAddRxdata_Callback( pxSocket, pucBuffer, ulByteCount ); in lTCPAddRxdata()
5264 vTCPAddRxdata_Stored( pxSocket ); in lTCPAddRxdata()
5293 const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_GetRemoteAddress() local
5296 if( pxSocket->ucProtocol != ( uint8_t ) FREERTOS_IPPROTO_TCP ) in FreeRTOS_GetRemoteAddress()
5305 …switch( pxSocket->bits.bIsIPv6 ) /* LCOV_EXCL_BR_LINE Exclude this line because default case is no… in FreeRTOS_GetRemoteAddress()
5313 … pxAddress->sin_address.ulIP_IPv4 = FreeRTOS_htonl( pxSocket->u.xTCP.xRemoteIP.ulIP_IPv4 ); in FreeRTOS_GetRemoteAddress()
5316 pxAddress->sin_port = FreeRTOS_htons( pxSocket->u.xTCP.usRemotePort ); in FreeRTOS_GetRemoteAddress()
5325 …( void ) memcpy( pxAddress->sin_address.xIP_IPv6.ucBytes, pxSocket->u.xTCP.xRemoteIP.xIP_IPv6.ucBy… in FreeRTOS_GetRemoteAddress()
5328 pxAddress->sin_port = FreeRTOS_htons( pxSocket->u.xTCP.usRemotePort ); in FreeRTOS_GetRemoteAddress()
5361 const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_GetIPType() local
5364 …switch( pxSocket->bits.bIsIPv6 ) /* LCOV_EXCL_BR_LINE Exclude this line because default case is no… in FreeRTOS_GetIPType()
5396 const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_maywrite() local
5399 if( pxSocket->ucProtocol != ( uint8_t ) FREERTOS_IPPROTO_TCP ) in FreeRTOS_maywrite()
5403 else if( pxSocket->u.xTCP.eTCPState != eESTABLISHED ) in FreeRTOS_maywrite()
5405 …if( ( pxSocket->u.xTCP.eTCPState < eCONNECT_SYN ) || ( pxSocket->u.xTCP.eTCPState > eESTABLISHED )… in FreeRTOS_maywrite()
5410 else if( pxSocket->u.xTCP.txStream == NULL ) in FreeRTOS_maywrite()
5412 xResult = ( BaseType_t ) pxSocket->u.xTCP.uxTxStreamSize; in FreeRTOS_maywrite()
5416 xResult = ( BaseType_t ) uxStreamBufferGetSpace( pxSocket->u.xTCP.txStream ); in FreeRTOS_maywrite()
5438 const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_tx_space() local
5441 if( pxSocket->ucProtocol != ( uint8_t ) FREERTOS_IPPROTO_TCP ) in FreeRTOS_tx_space()
5447 if( pxSocket->u.xTCP.txStream != NULL ) in FreeRTOS_tx_space()
5449 xReturn = ( BaseType_t ) uxStreamBufferGetSpace( pxSocket->u.xTCP.txStream ); in FreeRTOS_tx_space()
5453 xReturn = ( BaseType_t ) pxSocket->u.xTCP.uxTxStreamSize; in FreeRTOS_tx_space()
5476 const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_tx_size() local
5479 if( pxSocket->ucProtocol != ( uint8_t ) FREERTOS_IPPROTO_TCP ) in FreeRTOS_tx_size()
5485 if( pxSocket->u.xTCP.txStream != NULL ) in FreeRTOS_tx_size()
5487 xReturn = ( BaseType_t ) uxStreamBufferGetSize( pxSocket->u.xTCP.txStream ); in FreeRTOS_tx_size()
5513 const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_issocketconnected() local
5516 if( pxSocket->ucProtocol != ( uint8_t ) FREERTOS_IPPROTO_TCP ) in FreeRTOS_issocketconnected()
5522 if( pxSocket->u.xTCP.eTCPState >= eESTABLISHED ) in FreeRTOS_issocketconnected()
5524 if( pxSocket->u.xTCP.eTCPState < eCLOSE_WAIT ) in FreeRTOS_issocketconnected()
5549 const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_mss() local
5552 if( pxSocket->ucProtocol != ( uint8_t ) FREERTOS_IPPROTO_TCP ) in FreeRTOS_mss()
5561 xReturn = ( BaseType_t ) ( pxSocket->u.xTCP.usMSS ); in FreeRTOS_mss()
5585 const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_connstatus() local
5588 if( pxSocket->ucProtocol != ( uint8_t ) FREERTOS_IPPROTO_TCP ) in FreeRTOS_connstatus()
5595 xReturn = ( BaseType_t ) ( pxSocket->u.xTCP.eTCPState ); in FreeRTOS_connstatus()
5617 const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_rx_size() local
5620 if( pxSocket->ucProtocol != ( uint8_t ) FREERTOS_IPPROTO_TCP ) in FreeRTOS_rx_size()
5624 else if( pxSocket->u.xTCP.rxStream != NULL ) in FreeRTOS_rx_size()
5626 xReturn = ( BaseType_t ) uxStreamBufferGetSize( pxSocket->u.xTCP.rxStream ); in FreeRTOS_rx_size()
5683 const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket;
5685 if( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_UDP )
5687 … xReturn = ( BaseType_t ) listCURRENT_LIST_LENGTH( &( pxSocket->u.xUDP.xWaitingPacketsList ) );
5728 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) xSocket; in xSocketSetSocketID() local
5731 if( xSocketValid( pxSocket ) == pdTRUE ) in xSocketSetSocketID()
5734 pxSocket->pvSocketID = pvSocketID; in xSocketSetSocketID()
5750 const FreeRTOS_Socket_t * pxSocket = ( const FreeRTOS_Socket_t * ) xSocket; in pvSocketGetSocketID() local
5753 if( xSocketValid( pxSocket ) == pdTRUE ) in pvSocketGetSocketID()
5755 pvReturn = pxSocket->pvSocketID; in pvSocketGetSocketID()
5769 static void vTCPNetStat_TCPSocket( const FreeRTOS_Socket_t * pxSocket ) in vTCPNetStat_TCPSocket() argument
5775 TickType_t age = xTaskGetTickCount() - pxSocket->u.xTCP.xLastAliveTime; in vTCPNetStat_TCPSocket()
5782 if( pxSocket->u.xTCP.eTCPState == ( uint8_t ) eTCP_LISTEN ) in vTCPNetStat_TCPSocket()
5786 pxSocket->u.xTCP.usChildCount, in vTCPNetStat_TCPSocket()
5787 pxSocket->u.xTCP.usBacklog ); in vTCPNetStat_TCPSocket()
5799 …switch( pxSocket->bits.bIsIPv6 ) /* LCOV_EXCL_BR_LINE Exclude this line because default case is no… in vTCPNetStat_TCPSocket()
5803 …void ) snprintf( pcRemoteIp, sizeof( pcRemoteIp ), "%xip", ( unsigned ) pxSocket->u.xTCP.xRemoteIP… in vTCPNetStat_TCPSocket()
5811 … "%pip", ( void * ) pxSocket->u.xTCP.xRemoteIP.xIP_IPv6.ucBytes ); in vTCPNetStat_TCPSocket()
5821 pxSocket->usLocalPort, /* Local port on this machine */ in vTCPNetStat_TCPSocket()
5824 pxSocket->u.xTCP.usRemotePort, /* Port on remote machine */ in vTCPNetStat_TCPSocket()
5825 ( pxSocket->u.xTCP.rxStream != NULL ) ? 1 : 0, in vTCPNetStat_TCPSocket()
5826 ( pxSocket->u.xTCP.txStream != NULL ) ? 1 : 0, in vTCPNetStat_TCPSocket()
5827 FreeRTOS_GetTCPStateName( pxSocket->u.xTCP.eTCPState ), in vTCPNetStat_TCPSocket()
5829 pxSocket->u.xTCP.usTimeout, in vTCPNetStat_TCPSocket()
5865 …const FreeRTOS_Socket_t * pxSocket = ( ( const FreeRTOS_Socket_t * ) listGET_LIST_ITEM_OWNER( pxIt… in vTCPNetStat() local
5866 vTCPNetStat_TCPSocket( pxSocket ); in vTCPNetStat()
5903 static EventBits_t vSocketSelectTCP( FreeRTOS_Socket_t * pxSocket ) in vSocketSelectTCP() argument
5911 if( pxSocket->u.xTCP.bits.bPassQueued == pdFALSE_UNSIGNED ) in vSocketSelectTCP()
5913 if( pxSocket->u.xTCP.bits.bPassAccept == pdFALSE_UNSIGNED ) in vSocketSelectTCP()
5920 if( ( pxSocket->xSelectBits & ( EventBits_t ) eSELECT_READ ) != ( EventBits_t ) 0U ) in vSocketSelectTCP()
5922 if( pxSocket->u.xTCP.eTCPState == eTCP_LISTEN ) in vSocketSelectTCP()
5924 …if( ( pxSocket->u.xTCP.pxPeerSocket != NULL ) && ( pxSocket->u.xTCP.pxPeerSocket->u.xTCP.bits.bPas… in vSocketSelectTCP()
5929 …else if( ( pxSocket->u.xTCP.bits.bReuseSocket != pdFALSE_UNSIGNED ) && ( pxSocket->u.xTCP.bits.bPa… in vSocketSelectTCP()
5935 else if( ( bAccepted != 0 ) && ( FreeRTOS_recvcount( pxSocket ) > 0 ) ) in vSocketSelectTCP()
5946 if( ( pxSocket->xSelectBits & ( EventBits_t ) eSELECT_EXCEPT ) != 0U ) in vSocketSelectTCP()
5948 … if( ( pxSocket->u.xTCP.eTCPState == eCLOSE_WAIT ) || ( pxSocket->u.xTCP.eTCPState == eCLOSED ) ) in vSocketSelectTCP()
5955 if( ( pxSocket->xSelectBits & ( EventBits_t ) eSELECT_WRITE ) != 0U ) in vSocketSelectTCP()
5961 if( FreeRTOS_tx_space( pxSocket ) > 0 ) in vSocketSelectTCP()
5969 if( ( pxSocket->u.xTCP.bits.bConnPrepared != pdFALSE_UNSIGNED ) && in vSocketSelectTCP()
5970 ( pxSocket->u.xTCP.eTCPState >= eESTABLISHED ) && in vSocketSelectTCP()
5971 ( pxSocket->u.xTCP.bits.bConnPassed == pdFALSE_UNSIGNED ) ) in vSocketSelectTCP()
5973 pxSocket->u.xTCP.bits.bConnPassed = pdTRUE_UNSIGNED; in vSocketSelectTCP()
6038 … FreeRTOS_Socket_t * pxSocket = ( ( FreeRTOS_Socket_t * ) listGET_LIST_ITEM_OWNER( pxIterator ) ); in vSocketSelect() local
6040 if( pxSocket->pxSocketSet != pxSocketSet ) in vSocketSelect()
6049 if( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_TCP ) in vSocketSelect()
6051 xSocketBits |= vSocketSelectTCP( pxSocket ); in vSocketSelect()
6057 if( ( ( pxSocket->xSelectBits & ( EventBits_t ) eSELECT_READ ) != 0U ) && in vSocketSelect()
6058 … ( listCURRENT_LIST_LENGTH( &( pxSocket->u.xUDP.xWaitingPacketsList ) ) > 0U ) ) in vSocketSelect()
6068 pxSocket->xSocketBits = xSocketBits; in vSocketSelect()
6119 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_SignalSocket() local
6122 if( pxSocket == NULL ) in FreeRTOS_SignalSocket()
6128 … if( ( pxSocket->pxSocketSet != NULL ) && ( pxSocket->pxSocketSet->xSelectGroup != NULL ) ) in FreeRTOS_SignalSocket()
6130 … ( void ) xEventGroupSetBits( pxSocket->pxSocketSet->xSelectGroup, ( EventBits_t ) eSELECT_INTR ); in FreeRTOS_SignalSocket()
6135 if( pxSocket->xEventGroup != NULL ) in FreeRTOS_SignalSocket()
6137 ( void ) xEventGroupSetBits( pxSocket->xEventGroup, ( EventBits_t ) eSOCKET_INTR ); in FreeRTOS_SignalSocket()
6164 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) xSocket; in FreeRTOS_SignalSocketFromISR() local
6168 configASSERT( pxSocket != NULL ); in FreeRTOS_SignalSocketFromISR()
6169 configASSERT( pxSocket->ucProtocol == ( uint8_t ) FREERTOS_IPPROTO_TCP ); in FreeRTOS_SignalSocketFromISR()
6170 configASSERT( pxSocket->xEventGroup != NULL ); in FreeRTOS_SignalSocketFromISR()
6173 xEvent.pvData = pxSocket; in FreeRTOS_SignalSocketFromISR()
6209 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) fds[ index ].fd;
6211 if( pxSocket->pxSocketSet != NULL )
6216 pxSocketSet = pxSocket->pxSocketSet;
6219 else if( pxSocketSet == pxSocket->pxSocketSet )
6256 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) fds[ index ].fd;
6259 FreeRTOS_FD_SET( pxSocket, pxSocketSet, xEventBits );
6260 FreeRTOS_FD_CLR( pxSocket, pxSocketSet, ( EventBits_t ) ~xEventBits );
6269 FreeRTOS_Socket_t * pxSocket = ( FreeRTOS_Socket_t * ) fds[ index ].fd;
6271 fds[ index ].revents = pxSocket->xSocketBits & ( ( EventBits_t ) eSELECT_ALL );