176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Copyright (c) 2001-2004 Swedish Institute of Computer Science. 376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * All rights reserved. 476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * 576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Redistribution and use in source and binary forms, with or without modification, 676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * are permitted provided that the following conditions are met: 776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * 876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * 1. Redistributions of source code must retain the above copyright notice, 976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * this list of conditions and the following disclaimer. 1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * 2. Redistributions in binary form must reproduce the above copyright notice, 1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * this list of conditions and the following disclaimer in the documentation 1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * and/or other materials provided with the distribution. 1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * 3. The name of the author may not be used to endorse or promote products 1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * derived from this software without specific prior written permission. 1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * 1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * OF SUCH DAMAGE. 2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * 2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * This file is part of the lwIP TCP/IP stack. 2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * 2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Author: Adam Dunkels <adam@sics.se> 3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * 3176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef __LWIP_ERR_H__ 3376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define __LWIP_ERR_H__ 3476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 3576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include "lwip/opt.h" 3676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include "lwip/arch.h" 3776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 3876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef __cplusplus 3976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanextern "C" { 4076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 4176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/** Define LWIP_ERR_T in cc.h if you want to use 4376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * a different type for your platform (must be signed). */ 4476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef LWIP_ERR_T 4576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef LWIP_ERR_T err_t; 4676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#else /* LWIP_ERR_T */ 4776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef s8_t err_t; 4876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif /* LWIP_ERR_T*/ 4976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 5076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* Definitions for error constants. */ 5176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 5276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_OK 0 /* No error, everything OK. */ 5376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_MEM -1 /* Out of memory error. */ 5476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_BUF -2 /* Buffer error. */ 5576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_TIMEOUT -3 /* Timeout. */ 5676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_RTE -4 /* Routing problem. */ 5776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_INPROGRESS -5 /* Operation in progress */ 5876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_VAL -6 /* Illegal value. */ 5976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_WOULDBLOCK -7 /* Operation would block. */ 6076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_USE -8 /* Address in use. */ 6176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_ISCONN -9 /* Already connected. */ 6276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 6376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_IS_FATAL(e) ((e) < ERR_ISCONN) 6476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 6576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_ABRT -10 /* Connection aborted. */ 6676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_RST -11 /* Connection reset. */ 6776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_CLSD -12 /* Connection closed. */ 6876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_CONN -13 /* Not connected. */ 6976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_ARG -14 /* Illegal argument. */ 7176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define ERR_IF -15 /* Low-level netif error */ 7376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef LWIP_DEBUG 7676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanextern const char *lwip_strerr(err_t err); 7776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#else 7876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lwip_strerr(x) "" 7976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif /* LWIP_DEBUG */ 8076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 8176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifdef __cplusplus 8276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} 8376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 8476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 8576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif /* __LWIP_ERR_H__ */ 86