blob: 28c39c4c77b17157fdbdd23052cab4e89a7ca27e [file] [log] [blame]
/**
* \addtogroup uip
* @{
*/
/**
* \file
* Configuration options for uIP.
* \author Adam Dunkels <adam@dunkels.com>
*
* This file is used for tweaking various configuration options for
* uIP. You should make a copy of this file into one of your project's
* directories instead of editing this example "uipopt.h" file that
* comes with the uIP distribution.
*/
/*
* Copyright (c) 2001-2003, Adam Dunkels.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote
* products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* This file is part of the uIP TCP/IP stack.
*
* $Id: uipopt.h,v 1.14 2010/12/24 00:39:04 dak664 Exp $
*
*/
#ifndef __UIPOPT_H__
#define __UIPOPT_H__
#include <config.h>
#include <libpayload-config.h>
#include <stdint.h>
#include "net/net.h"
typedef uint32_t uip_stats_t;
#if CONFIG_UIP_MAX_TCP_MSS
#undef CONFIG_UIP_TCP_MSS
#define CONFIG_UIP_TCP_MSS \
(CONFIG_UIP_BUFSIZE - CONFIG_UIP_LLH_LEN - UIP_TCPIP_HLEN)
#endif
#if CONFIG_UIP_DEFAULT_RECEIVE_WINDOW
#undef CONFIG_UIP_RECEIVE_WINDOW
#define CONFIG_UIP_RECEIVE_WINDOW (CONFIG_UIP_TCP_MSS)
#endif
#if CONFIG_UIP_DEFAULT_BUFSIZE
#undef CONFIG_UIP_BUFSIZE
#define CONFIG_UIP_BUFSIZE (CONFIG_UIP_LINK_MTU + CONFIG_UIP_LLH_LEN)
#endif
/**
* Print out a uIP log message.
*
* This function must be implemented by the module that uses uIP, and
* is called by uIP whenever a log message is generated.
*/
void uip_log(char *msg);
#define UIP_LITTLE_ENDIAN 3412
#define UIP_BIG_ENDIAN 1234
#if defined CONFIG_BIG_ENDIAN
#define UIP_BYTE_ORDER (UIP_BIG_ENDIAN)
#else
#define UIP_BYTE_ORDER (UIP_LITTLE_ENDIAN)
#endif
/** @} */
/*------------------------------------------------------------------------------*/
/**
* \defgroup uipoptapp Application specific configurations
* @{
*
* An uIP application is implemented using a single application
* function that is called by uIP whenever a TCP/IP event occurs. The
* name of this function must be registered with uIP at compile time
* using the UIP_APPCALL definition.
*
* uIP applications can store the application state within the
* uip_conn structure by specifying the type of the application
* structure by typedef:ing the type uip_tcp_appstate_t and uip_udp_appstate_t.
*
* The file containing the definitions must be included in the
* uipopt.h file.
*
* The following example illustrates how this can look.
\code
void httpd_appcall(void);
#define UIP_APPCALL httpd_appcall
struct httpd_state {
uint8_t state;
uint16_t count;
char *dataptr;
char *script;
};
typedef struct httpd_state uip_tcp_appstate_t
\endcode
*/
/**
* \var #define UIP_APPCALL
*
* The name of the application function that uIP should call in
* response to TCP/IP events.
*
*/
#define UIP_APPCALL net_call_callback
#define UIP_UDP_APPCALL net_call_callback
/**
* \var typedef uip_tcp_appstate_t
*
* The type of the application state that is to be stored in the
* uip_conn structure. This usually is typedef:ed to a struct holding
* application state information.
*/
typedef struct uip_tcp_appstate_t
{
} uip_tcp_appstate_t;
/**
* \var typedef uip_udp_appstate_t
*
* The type of the application state that is to be stored in the
* uip_conn structure. This usually is typedef:ed to a struct holding
* application state information.
*/
/** @} */
typedef struct uip_udp_appstate_t
{
} uip_udp_appstate_t;
#endif /* __UIPOPT_H__ */
/** @} */
/** @} */