Re: [lwip-users] Issue in err.c for lwIP 2.0.0
Thanks Dirk. I added the same to the lwipopts.h and it works. Regards Amit On Thu, Dec 1, 2016 at 1:57 AM, Dirk Ziegelmeierwrote: > No, the solution is in errno.h: > > Choose one of: > > - #define LWIP_PROVIDE_ERRNO 1 > - #define LWIP_ERRNO_INCLUDE "path/my_header_file_containing_errno.h" > > HTH > Dirk > > > > On Wed, Nov 30, 2016 at 7:45 PM, Amit Ashara > wrote: > >> Hello All, >> >> When integrating FreeRTOS with lwIP 2.0.0 the following gives an error >> for missing defines. >> >> #if !NO_SYS >> /** Table to quickly map an lwIP error (err_t) to a socket error >> * by using -err as an index */ >> static const int err_to_errno_table[] = { >> 0, /* ERR_OK 0 No error, everything OK. */ >> ENOMEM,/* ERR_MEM-1 Out of memory error. */ >> ENOBUFS, /* ERR_BUF-2 Buffer error.*/ >> EWOULDBLOCK, /* ERR_TIMEOUT-3 Timeout */ >> EHOSTUNREACH, /* ERR_RTE-4 Routing problem. */ >> EINPROGRESS, /* ERR_INPROGRESS -5 Operation in progress*/ >> EINVAL,/* ERR_VAL-6 Illegal value. */ >> EWOULDBLOCK, /* ERR_WOULDBLOCK -7 Operation would block. */ >> EADDRINUSE,/* ERR_USE-8 Address in use. */ >> EALREADY, /* ERR_ALREADY-9 Already connecting. */ >> EISCONN, /* ERR_ISCONN -10 Conn already established.*/ >> ENOTCONN, /* ERR_CONN -11 Not connected. */ >> -1,/* ERR_IF -12 Low-level netif error*/ >> ECONNABORTED, /* ERR_ABRT -13 Connection aborted. */ >> ECONNRESET,/* ERR_RST-14 Connection reset.*/ >> ENOTCONN, /* ERR_CLSD -15 Connection closed. */ >> EIO/* ERR_ARG-16 Illegal argument.*/ >> }; >> #endif /* !NO_SYS */ >> >> #if !NO_SYS >> int >> err_to_errno(err_t err) >> { >> if ((err > 0) || (-err >= (err_t)LWIP_ARRAYSIZE(err_to_errno_table))) { >> return EIO; >> } >> return err_to_errno_table[-err]; >> } >> #endif /* !NO_SYS */ >> >> The assumption is that if NO_SYS is 0, or an RTOS is used, the socket >> model will be used. However when not using the socket model this is not >> true. Instead the following should be done (in my opinion) >> >> #if !NO_SYS >> #if LWIP_SOCKET >> /** Table to quickly map an lwIP error (err_t) to a socket error >> * by using -err as an index */ >> static const int err_to_errno_table[] = { >> 0, /* ERR_OK 0 No error, everything OK. */ >> ENOMEM,/* ERR_MEM-1 Out of memory error. */ >> ENOBUFS, /* ERR_BUF-2 Buffer error.*/ >> EWOULDBLOCK, /* ERR_TIMEOUT-3 Timeout */ >> EHOSTUNREACH, /* ERR_RTE-4 Routing problem. */ >> EINPROGRESS, /* ERR_INPROGRESS -5 Operation in progress*/ >> EINVAL,/* ERR_VAL-6 Illegal value. */ >> EWOULDBLOCK, /* ERR_WOULDBLOCK -7 Operation would block. */ >> EADDRINUSE,/* ERR_USE-8 Address in use. */ >> EALREADY, /* ERR_ALREADY-9 Already connecting. */ >> EISCONN, /* ERR_ISCONN -10 Conn already established.*/ >> ENOTCONN, /* ERR_CONN -11 Not connected. */ >> -1,/* ERR_IF -12 Low-level netif error*/ >> ECONNABORTED, /* ERR_ABRT -13 Connection aborted. */ >> ECONNRESET,/* ERR_RST-14 Connection reset.*/ >> ENOTCONN, /* ERR_CLSD -15 Connection closed. */ >> EIO/* ERR_ARG-16 Illegal argument.*/ >> }; >> #endif /* LWIP_SOCKET */ >> #endif /* !NO_SYS */ >> >> #if !NO_SYS >> #if LWIP_SOCKET >> int >> err_to_errno(err_t err) >> { >> if ((err > 0) || (-err >= (err_t)LWIP_ARRAYSIZE(err_to_errno_table))) { >> return EIO; >> } >> return err_to_errno_table[-err]; >> } >> #endif /* LWIP_SOCKET */ >> #endif /* !NO_SYS */ >> >> Regards >> Amit Ashara >> >> ___ >> lwip-users mailing list >> lwip-users@nongnu.org >> https://lists.nongnu.org/mailman/listinfo/lwip-users >> > > > ___ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users > ___ lwip-users mailing list lwip-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/lwip-users
Re: [lwip-users] Issue in err.c for lwIP 2.0.0
No, the solution is in errno.h: Choose one of: - #define LWIP_PROVIDE_ERRNO 1 - #define LWIP_ERRNO_INCLUDE "path/my_header_file_containing_errno.h" HTH Dirk On Wed, Nov 30, 2016 at 7:45 PM, Amit Asharawrote: > Hello All, > > When integrating FreeRTOS with lwIP 2.0.0 the following gives an error for > missing defines. > > #if !NO_SYS > /** Table to quickly map an lwIP error (err_t) to a socket error > * by using -err as an index */ > static const int err_to_errno_table[] = { > 0, /* ERR_OK 0 No error, everything OK. */ > ENOMEM,/* ERR_MEM-1 Out of memory error. */ > ENOBUFS, /* ERR_BUF-2 Buffer error.*/ > EWOULDBLOCK, /* ERR_TIMEOUT-3 Timeout */ > EHOSTUNREACH, /* ERR_RTE-4 Routing problem. */ > EINPROGRESS, /* ERR_INPROGRESS -5 Operation in progress*/ > EINVAL,/* ERR_VAL-6 Illegal value. */ > EWOULDBLOCK, /* ERR_WOULDBLOCK -7 Operation would block. */ > EADDRINUSE,/* ERR_USE-8 Address in use. */ > EALREADY, /* ERR_ALREADY-9 Already connecting. */ > EISCONN, /* ERR_ISCONN -10 Conn already established.*/ > ENOTCONN, /* ERR_CONN -11 Not connected. */ > -1,/* ERR_IF -12 Low-level netif error*/ > ECONNABORTED, /* ERR_ABRT -13 Connection aborted. */ > ECONNRESET,/* ERR_RST-14 Connection reset.*/ > ENOTCONN, /* ERR_CLSD -15 Connection closed. */ > EIO/* ERR_ARG-16 Illegal argument.*/ > }; > #endif /* !NO_SYS */ > > #if !NO_SYS > int > err_to_errno(err_t err) > { > if ((err > 0) || (-err >= (err_t)LWIP_ARRAYSIZE(err_to_errno_table))) { > return EIO; > } > return err_to_errno_table[-err]; > } > #endif /* !NO_SYS */ > > The assumption is that if NO_SYS is 0, or an RTOS is used, the socket > model will be used. However when not using the socket model this is not > true. Instead the following should be done (in my opinion) > > #if !NO_SYS > #if LWIP_SOCKET > /** Table to quickly map an lwIP error (err_t) to a socket error > * by using -err as an index */ > static const int err_to_errno_table[] = { > 0, /* ERR_OK 0 No error, everything OK. */ > ENOMEM,/* ERR_MEM-1 Out of memory error. */ > ENOBUFS, /* ERR_BUF-2 Buffer error.*/ > EWOULDBLOCK, /* ERR_TIMEOUT-3 Timeout */ > EHOSTUNREACH, /* ERR_RTE-4 Routing problem. */ > EINPROGRESS, /* ERR_INPROGRESS -5 Operation in progress*/ > EINVAL,/* ERR_VAL-6 Illegal value. */ > EWOULDBLOCK, /* ERR_WOULDBLOCK -7 Operation would block. */ > EADDRINUSE,/* ERR_USE-8 Address in use. */ > EALREADY, /* ERR_ALREADY-9 Already connecting. */ > EISCONN, /* ERR_ISCONN -10 Conn already established.*/ > ENOTCONN, /* ERR_CONN -11 Not connected. */ > -1,/* ERR_IF -12 Low-level netif error*/ > ECONNABORTED, /* ERR_ABRT -13 Connection aborted. */ > ECONNRESET,/* ERR_RST-14 Connection reset.*/ > ENOTCONN, /* ERR_CLSD -15 Connection closed. */ > EIO/* ERR_ARG-16 Illegal argument.*/ > }; > #endif /* LWIP_SOCKET */ > #endif /* !NO_SYS */ > > #if !NO_SYS > #if LWIP_SOCKET > int > err_to_errno(err_t err) > { > if ((err > 0) || (-err >= (err_t)LWIP_ARRAYSIZE(err_to_errno_table))) { > return EIO; > } > return err_to_errno_table[-err]; > } > #endif /* LWIP_SOCKET */ > #endif /* !NO_SYS */ > > Regards > Amit Ashara > > ___ > lwip-users mailing list > lwip-users@nongnu.org > https://lists.nongnu.org/mailman/listinfo/lwip-users > ___ lwip-users mailing list lwip-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/lwip-users
[lwip-users] Issue in err.c for lwIP 2.0.0
Hello All, When integrating FreeRTOS with lwIP 2.0.0 the following gives an error for missing defines. #if !NO_SYS /** Table to quickly map an lwIP error (err_t) to a socket error * by using -err as an index */ static const int err_to_errno_table[] = { 0, /* ERR_OK 0 No error, everything OK. */ ENOMEM,/* ERR_MEM-1 Out of memory error. */ ENOBUFS, /* ERR_BUF-2 Buffer error.*/ EWOULDBLOCK, /* ERR_TIMEOUT-3 Timeout */ EHOSTUNREACH, /* ERR_RTE-4 Routing problem. */ EINPROGRESS, /* ERR_INPROGRESS -5 Operation in progress*/ EINVAL,/* ERR_VAL-6 Illegal value. */ EWOULDBLOCK, /* ERR_WOULDBLOCK -7 Operation would block. */ EADDRINUSE,/* ERR_USE-8 Address in use. */ EALREADY, /* ERR_ALREADY-9 Already connecting. */ EISCONN, /* ERR_ISCONN -10 Conn already established.*/ ENOTCONN, /* ERR_CONN -11 Not connected. */ -1,/* ERR_IF -12 Low-level netif error*/ ECONNABORTED, /* ERR_ABRT -13 Connection aborted. */ ECONNRESET,/* ERR_RST-14 Connection reset.*/ ENOTCONN, /* ERR_CLSD -15 Connection closed. */ EIO/* ERR_ARG-16 Illegal argument.*/ }; #endif /* !NO_SYS */ #if !NO_SYS int err_to_errno(err_t err) { if ((err > 0) || (-err >= (err_t)LWIP_ARRAYSIZE(err_to_errno_table))) { return EIO; } return err_to_errno_table[-err]; } #endif /* !NO_SYS */ The assumption is that if NO_SYS is 0, or an RTOS is used, the socket model will be used. However when not using the socket model this is not true. Instead the following should be done (in my opinion) #if !NO_SYS #if LWIP_SOCKET /** Table to quickly map an lwIP error (err_t) to a socket error * by using -err as an index */ static const int err_to_errno_table[] = { 0, /* ERR_OK 0 No error, everything OK. */ ENOMEM,/* ERR_MEM-1 Out of memory error. */ ENOBUFS, /* ERR_BUF-2 Buffer error.*/ EWOULDBLOCK, /* ERR_TIMEOUT-3 Timeout */ EHOSTUNREACH, /* ERR_RTE-4 Routing problem. */ EINPROGRESS, /* ERR_INPROGRESS -5 Operation in progress*/ EINVAL,/* ERR_VAL-6 Illegal value. */ EWOULDBLOCK, /* ERR_WOULDBLOCK -7 Operation would block. */ EADDRINUSE,/* ERR_USE-8 Address in use. */ EALREADY, /* ERR_ALREADY-9 Already connecting. */ EISCONN, /* ERR_ISCONN -10 Conn already established.*/ ENOTCONN, /* ERR_CONN -11 Not connected. */ -1,/* ERR_IF -12 Low-level netif error*/ ECONNABORTED, /* ERR_ABRT -13 Connection aborted. */ ECONNRESET,/* ERR_RST-14 Connection reset.*/ ENOTCONN, /* ERR_CLSD -15 Connection closed. */ EIO/* ERR_ARG-16 Illegal argument.*/ }; #endif /* LWIP_SOCKET */ #endif /* !NO_SYS */ #if !NO_SYS #if LWIP_SOCKET int err_to_errno(err_t err) { if ((err > 0) || (-err >= (err_t)LWIP_ARRAYSIZE(err_to_errno_table))) { return EIO; } return err_to_errno_table[-err]; } #endif /* LWIP_SOCKET */ #endif /* !NO_SYS */ Regards Amit Ashara ___ lwip-users mailing list lwip-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/lwip-users