Marco Zecchini
/
Example_RTOS
Rtos API example
Embed:
(wiki syntax)
Show/hide line numbers
lwip_err.c
Go to the documentation of this file.
00001 /** 00002 * @file 00003 * Error Management module 00004 * 00005 */ 00006 00007 /* 00008 * Copyright (c) 2001-2004 Swedish Institute of Computer Science. 00009 * All rights reserved. 00010 * 00011 * Redistribution and use in source and binary forms, with or without modification, 00012 * are permitted provided that the following conditions are met: 00013 * 00014 * 1. Redistributions of source code must retain the above copyright notice, 00015 * this list of conditions and the following disclaimer. 00016 * 2. Redistributions in binary form must reproduce the above copyright notice, 00017 * this list of conditions and the following disclaimer in the documentation 00018 * and/or other materials provided with the distribution. 00019 * 3. The name of the author may not be used to endorse or promote products 00020 * derived from this software without specific prior written permission. 00021 * 00022 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 00023 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 00024 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 00025 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00026 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 00027 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00028 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 00029 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 00030 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 00031 * OF SUCH DAMAGE. 00032 * 00033 * This file is part of the lwIP TCP/IP stack. 00034 * 00035 * Author: Adam Dunkels <adam@sics.se> 00036 * 00037 */ 00038 00039 #include "lwip/err.h" 00040 #include "lwip/def.h" 00041 #include "lwip/sys.h" 00042 00043 #include "lwip/lwip_errno.h" 00044 00045 #if !NO_SYS 00046 /** Table to quickly map an lwIP error (err_t) to a socket error 00047 * by using -err as an index */ 00048 static const int err_to_errno_table[] = { 00049 0, /* ERR_OK 0 No error, everything OK. */ 00050 ENOMEM, /* ERR_MEM -1 Out of memory error. */ 00051 ENOBUFS, /* ERR_BUF -2 Buffer error. */ 00052 EWOULDBLOCK, /* ERR_TIMEOUT -3 Timeout */ 00053 EHOSTUNREACH, /* ERR_RTE -4 Routing problem. */ 00054 EINPROGRESS, /* ERR_INPROGRESS -5 Operation in progress */ 00055 EINVAL, /* ERR_VAL -6 Illegal value. */ 00056 EWOULDBLOCK, /* ERR_WOULDBLOCK -7 Operation would block. */ 00057 EADDRINUSE, /* ERR_USE -8 Address in use. */ 00058 EALREADY, /* ERR_ALREADY -9 Already connecting. */ 00059 EISCONN, /* ERR_ISCONN -10 Conn already established.*/ 00060 ENOTCONN, /* ERR_CONN -11 Not connected. */ 00061 -1, /* ERR_IF -12 Low-level netif error */ 00062 ECONNABORTED, /* ERR_ABRT -13 Connection aborted. */ 00063 ECONNRESET, /* ERR_RST -14 Connection reset. */ 00064 ENOTCONN, /* ERR_CLSD -15 Connection closed. */ 00065 EIO /* ERR_ARG -16 Illegal argument. */ 00066 }; 00067 00068 int 00069 err_to_errno(err_t err) 00070 { 00071 if ((err > 0) || (-err >= (err_t)LWIP_ARRAYSIZE(err_to_errno_table))) { 00072 return EIO; 00073 } 00074 return err_to_errno_table[-err]; 00075 } 00076 #endif /* !NO_SYS */ 00077 00078 #ifdef LWIP_DEBUG 00079 00080 static const char *err_strerr[] = { 00081 "Ok.", /* ERR_OK 0 */ 00082 "Out of memory error.", /* ERR_MEM -1 */ 00083 "Buffer error.", /* ERR_BUF -2 */ 00084 "Timeout.", /* ERR_TIMEOUT -3 */ 00085 "Routing problem.", /* ERR_RTE -4 */ 00086 "Operation in progress.", /* ERR_INPROGRESS -5 */ 00087 "Illegal value.", /* ERR_VAL -6 */ 00088 "Operation would block.", /* ERR_WOULDBLOCK -7 */ 00089 "Address in use.", /* ERR_USE -8 */ 00090 "Already connecting.", /* ERR_ALREADY -9 */ 00091 "Already connected.", /* ERR_ISCONN -10 */ 00092 "Not connected.", /* ERR_CONN -11 */ 00093 "Low-level netif error.", /* ERR_IF -12 */ 00094 "Connection aborted.", /* ERR_ABRT -13 */ 00095 "Connection reset.", /* ERR_RST -14 */ 00096 "Connection closed.", /* ERR_CLSD -15 */ 00097 "Illegal argument." /* ERR_ARG -16 */ 00098 }; 00099 00100 /** 00101 * Convert an lwip internal error to a string representation. 00102 * 00103 * @param err an lwip internal err_t 00104 * @return a string representation for err 00105 */ 00106 const char * 00107 lwip_strerr(err_t err) 00108 { 00109 if ((err > 0) || (-err >= (err_t)LWIP_ARRAYSIZE(err_strerr))) { 00110 return "Unknown error."; 00111 } 00112 return err_strerr[-err]; 00113 } 00114 00115 #endif /* LWIP_DEBUG */
Generated on Sun Jul 17 2022 08:25:24 by 1.7.2