123

Committer:
hudakz
Date:
Mon Sep 15 11:12:30 2014 +0000
Revision:
0:5350a66d5279
rev. 00

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hudakz 0:5350a66d5279 1 /**
hudakz 0:5350a66d5279 2 * UIPEthernet Project-specific configuration options
hudakz 0:5350a66d5279 3 * Copyright (c) 2013 Norbert Truchsess <norbert.truchsess@t-online.de>
hudakz 0:5350a66d5279 4 * @{
hudakz 0:5350a66d5279 5 *
hudakz 0:5350a66d5279 6 * uIP has a number of configuration options that can be overridden
hudakz 0:5350a66d5279 7 * for each project. These are kept in a project-specific uip-conf.h
hudakz 0:5350a66d5279 8 * file and all configuration names have the prefix UIP_CONF.
hudakz 0:5350a66d5279 9 */
hudakz 0:5350a66d5279 10 /*
hudakz 0:5350a66d5279 11 * Copyright (c) 2006, Swedish Institute of Computer Science.
hudakz 0:5350a66d5279 12 * All rights reserved.
hudakz 0:5350a66d5279 13 *
hudakz 0:5350a66d5279 14 * Redistribution and use in source and binary forms, with or without
hudakz 0:5350a66d5279 15 * modification, are permitted provided that the following conditions
hudakz 0:5350a66d5279 16 * are met:
hudakz 0:5350a66d5279 17 * 1. Redistributions of source code must retain the above copyright
hudakz 0:5350a66d5279 18 * notice, this list of conditions and the following disclaimer.
hudakz 0:5350a66d5279 19 * 2. Redistributions in binary form must reproduce the above copyright
hudakz 0:5350a66d5279 20 * notice, this list of conditions and the following disclaimer in the
hudakz 0:5350a66d5279 21 * documentation and/or other materials provided with the distribution.
hudakz 0:5350a66d5279 22 * 3. Neither the name of the Institute nor the names of its contributors
hudakz 0:5350a66d5279 23 * may be used to endorse or promote products derived from this software
hudakz 0:5350a66d5279 24 * without specific prior written permission.
hudakz 0:5350a66d5279 25 *
hudakz 0:5350a66d5279 26 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
hudakz 0:5350a66d5279 27 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
hudakz 0:5350a66d5279 28 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
hudakz 0:5350a66d5279 29 * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
hudakz 0:5350a66d5279 30 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
hudakz 0:5350a66d5279 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
hudakz 0:5350a66d5279 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
hudakz 0:5350a66d5279 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
hudakz 0:5350a66d5279 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
hudakz 0:5350a66d5279 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
hudakz 0:5350a66d5279 36 * SUCH DAMAGE.
hudakz 0:5350a66d5279 37 *
hudakz 0:5350a66d5279 38 * This file is part of the uIP TCP/IP stack
hudakz 0:5350a66d5279 39 *
hudakz 0:5350a66d5279 40 */
hudakz 0:5350a66d5279 41 #ifndef __UIP_CONF_H__
hudakz 0:5350a66d5279 42 #define __UIP_CONF_H__
hudakz 0:5350a66d5279 43
hudakz 0:5350a66d5279 44 #include <inttypes.h>
hudakz 0:5350a66d5279 45 #include "uipethernet-conf.h"
hudakz 0:5350a66d5279 46
hudakz 0:5350a66d5279 47 /**
hudakz 0:5350a66d5279 48 * 8 bit datatype
hudakz 0:5350a66d5279 49 *
hudakz 0:5350a66d5279 50 * This typedef defines the 8-bit type used throughout uIP.
hudakz 0:5350a66d5279 51 *
hudakz 0:5350a66d5279 52 * \hideinitializer
hudakz 0:5350a66d5279 53 */
hudakz 0:5350a66d5279 54 typedef uint8_t u8_t;
hudakz 0:5350a66d5279 55
hudakz 0:5350a66d5279 56 /**
hudakz 0:5350a66d5279 57 * 16 bit datatype
hudakz 0:5350a66d5279 58 *
hudakz 0:5350a66d5279 59 * This typedef defines the 16-bit type used throughout uIP.
hudakz 0:5350a66d5279 60 *
hudakz 0:5350a66d5279 61 * \hideinitializer
hudakz 0:5350a66d5279 62 */
hudakz 0:5350a66d5279 63 typedef uint16_t u16_t;
hudakz 0:5350a66d5279 64
hudakz 0:5350a66d5279 65 /**
hudakz 0:5350a66d5279 66 * Statistics datatype
hudakz 0:5350a66d5279 67 *
hudakz 0:5350a66d5279 68 * This typedef defines the dataype used for keeping statistics in
hudakz 0:5350a66d5279 69 * uIP.
hudakz 0:5350a66d5279 70 *
hudakz 0:5350a66d5279 71 * \hideinitializer
hudakz 0:5350a66d5279 72 */
hudakz 0:5350a66d5279 73 typedef unsigned short uip_stats_t;
hudakz 0:5350a66d5279 74
hudakz 0:5350a66d5279 75 /**
hudakz 0:5350a66d5279 76 * Maximum number of TCP connections.
hudakz 0:5350a66d5279 77 * (see uipethernet-conf.h)
hudakz 0:5350a66d5279 78 * \hideinitializer
hudakz 0:5350a66d5279 79 *
hudakz 0:5350a66d5279 80 * #define UIP_CONF_MAX_CONNECTIONS 4
hudakz 0:5350a66d5279 81 */
hudakz 0:5350a66d5279 82
hudakz 0:5350a66d5279 83 /**
hudakz 0:5350a66d5279 84 * Maximum number of listening TCP ports.
hudakz 0:5350a66d5279 85 *
hudakz 0:5350a66d5279 86 * \hideinitializer
hudakz 0:5350a66d5279 87 */
hudakz 0:5350a66d5279 88 #define UIP_CONF_MAX_LISTENPORTS 4
hudakz 0:5350a66d5279 89
hudakz 0:5350a66d5279 90 /**
hudakz 0:5350a66d5279 91 * uIP buffer size.
hudakz 0:5350a66d5279 92 *
hudakz 0:5350a66d5279 93 * \hideinitializer
hudakz 0:5350a66d5279 94 */
hudakz 0:5350a66d5279 95
hudakz 0:5350a66d5279 96 #define UIP_CONF_BUFFER_SIZE 98
hudakz 0:5350a66d5279 97 //#define UIP_CONF_BUFFER_SIZE 118
hudakz 0:5350a66d5279 98
hudakz 0:5350a66d5279 99 /**
hudakz 0:5350a66d5279 100 * The TCP maximum segment size.
hudakz 0:5350a66d5279 101 *
hudakz 0:5350a66d5279 102 * This is should not be to set to more than
hudakz 0:5350a66d5279 103 * UIP_BUFSIZE - UIP_LLH_LEN - UIP_TCPIP_HLEN.
hudakz 0:5350a66d5279 104 */
hudakz 0:5350a66d5279 105 #define UIP_CONF_TCP_MSS 512
hudakz 0:5350a66d5279 106
hudakz 0:5350a66d5279 107 /**
hudakz 0:5350a66d5279 108 * The size of the advertised receiver's window.
hudakz 0:5350a66d5279 109 *
hudakz 0:5350a66d5279 110 * Should be set low (i.e., to the size of the uip_buf buffer) is the
hudakz 0:5350a66d5279 111 * application is slow to process incoming data, or high (32768 bytes)
hudakz 0:5350a66d5279 112 * if the application processes data quickly.
hudakz 0:5350a66d5279 113 *
hudakz 0:5350a66d5279 114 * \hideinitializer
hudakz 0:5350a66d5279 115 */
hudakz 0:5350a66d5279 116
hudakz 0:5350a66d5279 117 #define UIP_CONF_RECEIVE_WINDOW 512
hudakz 0:5350a66d5279 118
hudakz 0:5350a66d5279 119 /**
hudakz 0:5350a66d5279 120 * CPU byte order.
hudakz 0:5350a66d5279 121 *
hudakz 0:5350a66d5279 122 * \hideinitializer
hudakz 0:5350a66d5279 123 */
hudakz 0:5350a66d5279 124
hudakz 0:5350a66d5279 125 #define UIP_CONF_BYTE_ORDER LITTLE_ENDIAN
hudakz 0:5350a66d5279 126
hudakz 0:5350a66d5279 127 /**
hudakz 0:5350a66d5279 128 * Logging on or off
hudakz 0:5350a66d5279 129 *
hudakz 0:5350a66d5279 130 * \hideinitializer
hudakz 0:5350a66d5279 131 */
hudakz 0:5350a66d5279 132
hudakz 0:5350a66d5279 133 #define UIP_CONF_LOGGING 0
hudakz 0:5350a66d5279 134
hudakz 0:5350a66d5279 135 /**
hudakz 0:5350a66d5279 136 * UDP support on or off
hudakz 0:5350a66d5279 137 * (see uipethernet-conf.h)
hudakz 0:5350a66d5279 138 * \hideinitializer
hudakz 0:5350a66d5279 139 *
hudakz 0:5350a66d5279 140 * #define UIP_CONF_UDP 1
hudakz 0:5350a66d5279 141 *
hudakz 0:5350a66d5279 142 * #define UIP_CONF_UDP_CONNS 4
hudakz 0:5350a66d5279 143 */
hudakz 0:5350a66d5279 144
hudakz 0:5350a66d5279 145 /**
hudakz 0:5350a66d5279 146 * UDP checksums on or off
hudakz 0:5350a66d5279 147 *
hudakz 0:5350a66d5279 148 * \hideinitializer
hudakz 0:5350a66d5279 149 */
hudakz 0:5350a66d5279 150 #define UIP_CONF_UDP_CHECKSUMS 1
hudakz 0:5350a66d5279 151
hudakz 0:5350a66d5279 152 /**
hudakz 0:5350a66d5279 153 * UDP Broadcast (receive) on or off
hudakz 0:5350a66d5279 154 * (see uipethernet-conf.h)
hudakz 0:5350a66d5279 155 * \hideinitializer
hudakz 0:5350a66d5279 156 * #define UIP_CONF_BROADCAST 1
hudakz 0:5350a66d5279 157 */
hudakz 0:5350a66d5279 158
hudakz 0:5350a66d5279 159 /**
hudakz 0:5350a66d5279 160 * uIP statistics on or off
hudakz 0:5350a66d5279 161 *
hudakz 0:5350a66d5279 162 * \hideinitializer
hudakz 0:5350a66d5279 163 */
hudakz 0:5350a66d5279 164 #define UIP_CONF_STATISTICS 0
hudakz 0:5350a66d5279 165
hudakz 0:5350a66d5279 166 // SLIP
hudakz 0:5350a66d5279 167
hudakz 0:5350a66d5279 168 //#define UIP_CONF_LLH_LEN 0
hudakz 0:5350a66d5279 169 typedef struct uipethernet_state
hudakz 0:5350a66d5279 170 {
hudakz 0:5350a66d5279 171 void* user;
hudakz 0:5350a66d5279 172 } uip_tcp_appstate_t;
hudakz 0:5350a66d5279 173
hudakz 0:5350a66d5279 174 void uipethernet_appcall(void);
hudakz 0:5350a66d5279 175
hudakz 0:5350a66d5279 176 #define UIP_APPCALL uipethernet_appcall
hudakz 0:5350a66d5279 177
hudakz 0:5350a66d5279 178 typedef struct uipudp_state
hudakz 0:5350a66d5279 179 {
hudakz 0:5350a66d5279 180 void* user;
hudakz 0:5350a66d5279 181 } uip_udp_appstate_t;
hudakz 0:5350a66d5279 182
hudakz 0:5350a66d5279 183 void uipudp_appcall(void);
hudakz 0:5350a66d5279 184
hudakz 0:5350a66d5279 185 #define UIP_UDP_APPCALL uipudp_appcall
hudakz 0:5350a66d5279 186
hudakz 0:5350a66d5279 187 #define CC_REGISTER_ARG register
hudakz 0:5350a66d5279 188
hudakz 0:5350a66d5279 189 #define UIP_ARCH_CHKSUM 1
hudakz 0:5350a66d5279 190 #endif /* __UIP_CONF_H__ */