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 Ziegelmeier <d...@ziegelmeier.net>
wrote:

> 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
>
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to