diff --git a/net/tcp/tcp.h b/net/tcp/tcp.h index a57aa0bd1f..da7bcb33a1 100644 --- a/net/tcp/tcp.h +++ b/net/tcp/tcp.h @@ -130,9 +130,6 @@ struct tcp_poll_s FAR struct socket *psock; /* Needed to handle loss of connection */ struct pollfd *fds; /* Needed to handle poll events */ FAR struct devif_callback_s *cb; /* Needed to teardown the poll */ -#if defined(CONFIG_NET_TCP_WRITE_BUFFERS) && defined(CONFIG_IOB_NOTIFIER) - int16_t key; /* Needed to cancel pending notification */ -#endif }; struct tcp_conn_s @@ -159,10 +156,10 @@ struct tcp_conn_s * TCP_NEWDATA - May be cleared to indicate that the data was consumed * and that no further process of the new data should be * attempted. - * TCP_SNDACK - If TCP_NEWDATA is cleared, then TCP_SNDACK may be set - * to indicate that an ACK should be included in the response. - * (In TCP_NEWDATA is cleared bu TCP_SNDACK is not set, then - * dev->d_len should also be cleared). + * TCP_SNDACK - If TCP_NEWDATA is cleared, then TCP_SNDACK may be set to + * indicate that an ACK should be included in the response. + * (In TCP_NEWDATA is cleared bu TCP_SNDACK is not set, + * then dev->d_len should also be cleared). */ FAR struct devif_callback_s *list; @@ -282,7 +279,8 @@ struct tcp_conn_s */ FAR void *accept_private; - int (*accept)(FAR struct tcp_conn_s *listener, FAR struct tcp_conn_s *conn); + int (*accept)(FAR struct tcp_conn_s *listener, + FAR struct tcp_conn_s *conn); /* The following is a list of poll structures of threads waiting for * socket events. @@ -550,7 +548,8 @@ int tcp_bind(FAR struct tcp_conn_s *conn, FAR const struct sockaddr *addr); * ****************************************************************************/ -int tcp_connect(FAR struct tcp_conn_s *conn, FAR const struct sockaddr *addr); +int tcp_connect(FAR struct tcp_conn_s *conn, + FAR const struct sockaddr *addr); /**************************************************************************** * Name: psock_tcp_connect @@ -559,7 +558,7 @@ int tcp_connect(FAR struct tcp_conn_s *conn, FAR const struct sockaddr *addr); * Perform a TCP connection * * Input Parameters: - * psock - A reference to the socket structure of the socket to be connected + * psock - A reference to the structure of the socket to be connected * addr - The address of the remote server to connect to * * Returned Value: @@ -1251,7 +1250,8 @@ int tcp_backlogdelete(FAR struct tcp_conn_s *conn, * Input Parameters: * psock The listening TCP socket structure * addr Receives the address of the connecting client - * addrlen Input: allocated size of 'addr', Return: returned size of 'addr' + * addrlen Input: allocated size of 'addr' + * Return: returned size of 'addr' * newconn The new, accepted TCP connection structure * * Returned Value: diff --git a/net/tcp/tcp_netpoll.c b/net/tcp/tcp_netpoll.c index dca5ca38cb..431d6acd62 100644 --- a/net/tcp/tcp_netpoll.c +++ b/net/tcp/tcp_netpoll.c @@ -113,7 +113,7 @@ static uint16_t tcp_poll_eventhandler(FAR struct net_driver_s *dev, /* A poll is a sign that we are free to send data. */ - else if ((flags & TCP_POLL) != 0 && psock_tcp_cansend(info->psock) >= 0) + else if (psock_tcp_cansend(info->psock) >= 0) { eventset |= (POLLOUT & info->fds->events); } @@ -136,77 +136,6 @@ static uint16_t tcp_poll_eventhandler(FAR struct net_driver_s *dev, return flags; } -/**************************************************************************** - * Name: tcp_iob_work - * - * Description: - * Work thread callback function execute when an IOB because available. - * - * Input Parameters: - * psock - Socket state structure - * - * Returned Value: - * None - * - ****************************************************************************/ - -#if defined(CONFIG_NET_TCP_WRITE_BUFFERS) && defined(CONFIG_IOB_NOTIFIER) -static inline void tcp_iob_work(FAR void *arg) -{ - FAR struct tcp_poll_s *pinfo; - FAR struct socket *psock; - FAR struct pollfd *fds; - - pinfo = (FAR struct tcp_poll_s *)arg; - DEBUGASSERT(pinfo->psock != NULL && pinfo->fds != NULL); - - psock = pinfo->psock; - fds = pinfo->fds; - - /* Verify that we still have a connection */ - - if (!_SS_ISCONNECTED(psock->s_flags) && !_SS_ISLISTENING(psock->s_flags)) - { - /* Don't report more than once. Might happen in a race condition */ - - if ((fds->revents & (POLLERR | POLLHUP)) == 0) - { - /* We were previously connected but lost the connection either due - * to a graceful shutdown by the remote peer or because of some - * exceptional event. - */ - - fds->revents |= (POLLERR | POLLHUP); - nxsem_post(fds->sem); - } - } - - /* Handle a race condition. Check if we have already posted the POLLOUT - * event. If so, don't do it again and don't setup notification again. - */ - - else if ((fds->events & POLLWRNORM) != 0 && - (fds->revents & POLLWRNORM) == 0) - { - /* Check if we are now able to send */ - - if (psock_tcp_cansend(psock) >= 0) - { - /* Yes.. then signal the poll logic */ - - fds->revents |= POLLWRNORM; - nxsem_post(fds->sem); - } - else - { - /* No.. ask for the IOB free notification again */ - - pinfo->key = iob_notifier_setup(LPWORK, tcp_iob_work, pinfo); - } - } -} -#endif - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -273,9 +202,6 @@ int tcp_pollsetup(FAR struct socket *psock, FAR struct pollfd *fds) info->psock = psock; info->fds = fds; info->cb = cb; -#if defined(CONFIG_NET_TCP_WRITE_BUFFERS) && defined(CONFIG_IOB_NOTIFIER) - info->key = 0; -#endif /* Initialize the callback structure. Save the reference to the info * structure as callback private data so that it will be available during @@ -374,20 +300,6 @@ int tcp_pollsetup(FAR struct socket *psock, FAR struct pollfd *fds) nxsem_post(fds->sem); } -#if defined(CONFIG_NET_TCP_WRITE_BUFFERS) && defined(CONFIG_IOB_NOTIFIER) - /* If (1) revents == 0, (2) write buffering is enabled, and (3) the - * POLLOUT event is needed, then setup to receive a notification when an - * IOB is freed. - */ - - else if ((fds->events & POLLOUT) != 0) - { - /* Ask for the IOB free notification */ - - info->key = iob_notifier_setup(LPWORK, tcp_iob_work, info); - } -#endif - errout_with_lock: net_unlock(); return ret; @@ -429,17 +341,6 @@ int tcp_pollteardown(FAR struct socket *psock, FAR struct pollfd *fds) DEBUGASSERT(info != NULL && info->fds != NULL && info->cb != NULL); if (info != NULL) { -#if defined(CONFIG_NET_TCP_WRITE_BUFFERS) && defined(CONFIG_IOB_NOTIFIER) - /* Cancel any pending IOB free notification */ - - if (info->key > 0) - { - /* Ask for the IOB free notification */ - - iob_notifier_teardown(info->key); - } -#endif - /* Release the callback */ tcp_callback_free(conn, info->cb); diff --git a/net/udp/udp.h b/net/udp/udp.h index 165d0c166d..648cb6ee91 100644 --- a/net/udp/udp.h +++ b/net/udp/udp.h @@ -107,9 +107,6 @@ struct udp_poll_s FAR struct net_driver_s *dev; /* Needed to free the callback structure */ struct pollfd *fds; /* Needed to handle poll events */ FAR struct devif_callback_s *cb; /* Needed to teardown the poll */ -#if defined(CONFIG_NET_UDP_WRITE_BUFFERS) && defined(CONFIG_IOB_NOTIFIER) - int16_t key; /* Needed to cancel pending notification */ -#endif }; struct udp_conn_s @@ -298,7 +295,8 @@ int udp_bind(FAR struct udp_conn_s *conn, FAR const struct sockaddr *addr); * ****************************************************************************/ -int udp_connect(FAR struct udp_conn_s *conn, FAR const struct sockaddr *addr); +int udp_connect(FAR struct udp_conn_s *conn, + FAR const struct sockaddr *addr); /**************************************************************************** * Name: udp_close @@ -688,9 +686,9 @@ ssize_t psock_udp_recvfrom(FAR struct socket *psock, FAR void *buf, * ****************************************************************************/ -ssize_t psock_udp_sendto(FAR struct socket *psock, FAR const void *buf, - size_t len, int flags, FAR const struct sockaddr *to, - socklen_t tolen); +ssize_t psock_udp_sendto(FAR struct socket *psock, + FAR const void *buf, size_t len, int flags, + FAR const struct sockaddr *to, socklen_t tolen); /**************************************************************************** * Name: udp_pollsetup @@ -797,8 +795,8 @@ int udp_writebuffer_notifier_setup(worker_t worker, * * Description: * Eliminate a UDP read-ahead notification previously setup by - * udp_readahead_notifier_setup(). This function should only be called if the - * notification should be aborted prior to the notification. The + * udp_readahead_notifier_setup(). This function should only be called if + * the notification should be aborted prior to the notification. The * notification will automatically be torn down after the notification. * * Input Parameters: @@ -825,7 +823,7 @@ int udp_notifier_teardown(int key); * When read-ahead data becomes available, *all* of the workers waiting * for read-ahead data will be executed. If there are multiple workers * waiting for read-ahead data then only the first to execute will get the - * data. Others will need to call udp_readahead_notifier_setup() once again. + * data. Others will need to call udp_readahead_notifier_setup once again. * * Input Parameters: * conn - The UDP connection where read-ahead data was just buffered. diff --git a/net/udp/udp_netpoll.c b/net/udp/udp_netpoll.c index 076edf5a6d..5d4c0c8767 100644 --- a/net/udp/udp_netpoll.c +++ b/net/udp/udp_netpoll.c @@ -109,7 +109,7 @@ static uint16_t udp_poll_eventhandler(FAR struct net_driver_s *dev, /* A poll is a sign that we are free to send data. */ - else if ((flags & UDP_POLL) != 0 && psock_udp_cansend(info->psock) >= 0) + else if (psock_udp_cansend(info->psock) >= 0) { eventset |= (POLLOUT & info->fds->events); } @@ -126,59 +126,6 @@ static uint16_t udp_poll_eventhandler(FAR struct net_driver_s *dev, return flags; } -/**************************************************************************** - * Name: udp_iob_work - * - * Description: - * Work thread callback function execute when an IOB because available. - * - * Input Parameters: - * psock - Socket state structure - * - * Returned Value: - * None - * - ****************************************************************************/ - -#if defined(CONFIG_NET_UDP_WRITE_BUFFERS) && defined(CONFIG_IOB_NOTIFIER) -static inline void udp_iob_work(FAR void *arg) -{ - FAR struct udp_poll_s *pinfo; - FAR struct socket *psock; - FAR struct pollfd *fds; - - pinfo = (FAR struct udp_poll_s *)arg; - DEBUGASSERT(pinfo->psock != NULL && pinfo->fds != NULL); - - psock = pinfo->psock; - fds = pinfo->fds; - - /* Handle a race condition. Check if we have already posted the POLLOUT - * event. If so, don't do it again. - */ - - if ((fds->events & POLLWRNORM) != 0 && - (fds->revents & POLLWRNORM) == 0) - { - /* Check if we are now able to send */ - - if (psock_udp_cansend(psock) >= 0) - { - /* Yes.. then signal the poll logic */ - - fds->revents |= POLLWRNORM; - nxsem_post(fds->sem); - } - else - { - /* No.. ask for the IOB free notification again */ - - pinfo->key = iob_notifier_setup(LPWORK, udp_iob_work, pinfo); - } - } -} -#endif - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -252,9 +199,6 @@ int udp_pollsetup(FAR struct socket *psock, FAR struct pollfd *fds) info->psock = psock; info->fds = fds; info->cb = cb; -#if defined(CONFIG_NET_UDP_WRITE_BUFFERS) && defined(CONFIG_IOB_NOTIFIER) - info->key = 0; -#endif /* Initialize the callback structure. Save the reference to the info * structure as callback private data so that it will be available during @@ -306,20 +250,6 @@ int udp_pollsetup(FAR struct socket *psock, FAR struct pollfd *fds) nxsem_post(fds->sem); } -#if defined(CONFIG_NET_UDP_WRITE_BUFFERS) && defined(CONFIG_IOB_NOTIFIER) - /* If (1) revents == 0, (2) write buffering is enabled, and (3) the - * POLLOUT event is needed, then setup to receive a notification an IOB - * is freed. - */ - - else if ((fds->events & POLLOUT) != 0) - { - /* Ask for the IOB free notification */ - - info->key = iob_notifier_setup(LPWORK, udp_iob_work, info); - } -#endif - errout_with_lock: net_unlock(); return ret; @@ -361,17 +291,6 @@ int udp_pollteardown(FAR struct socket *psock, FAR struct pollfd *fds) DEBUGASSERT(info != NULL && info->fds != NULL && info->cb != NULL); if (info != NULL) { - #if defined(CONFIG_NET_UDP_WRITE_BUFFERS) && defined(CONFIG_IOB_NOTIFIER) - /* Cancel any pending IOB free notification */ - - if (info->key > 0) - { - /* Ask for the IOB free notification */ - - iob_notifier_teardown(info->key); - } -#endif - /* Release the callback */ udp_callback_free(info->dev, conn, info->cb);