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 <ashara.a...@gmail.com> 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

Reply via email to