slirp.h revision cc330d4169441727fecf1da08aee806fc021c4e2
18b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef __COMMON_H__ 28b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define __COMMON_H__ 38b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 48b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CONFIG_QEMU 58b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 65d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner//#define DEBUG 1 75d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 85d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner// Uncomment the following line to enable SLIRP statistics printing in Qemu 95d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner//#define LOG_ENABLED 105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#ifdef LOG_ENABLED 125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define STAT(expr) expr 135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#else 145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define STAT(expr) do { } while(0) 155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#endif 168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef CONFIG_QEMU 188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "version.h" 198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#include "config-host.h" 218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "slirp_config.h" 228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include <stddef.h> 24cc330d4169441727fecf1da08aee806fc021c4e2David 'Digit' Turner#include "android/sockets.h" 258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef _WIN32 278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# include <inttypes.h> 288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef uint8_t u_int8_t; 308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef uint16_t u_int16_t; 318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef uint32_t u_int32_t; 328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef uint64_t u_int64_t; 338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef char *caddr_t; 348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# include <windows.h> 368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# include <sys/timeb.h> 378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# include <iphlpapi.h> 388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define O_BINARY 0 408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include <sys/types.h> 438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef HAVE_SYS_BITYPES_H 448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# include <sys/bitypes.h> 458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include <sys/time.h> 488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef NEED_TYPEDEFS 508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef char int8_t; 518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef unsigned char u_int8_t; 528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# if SIZEOF_SHORT == 2 548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project typedef short int16_t; 558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project typedef unsigned short u_int16_t; 568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# else 578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# if SIZEOF_INT == 2 588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project typedef int int16_t; 598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project typedef unsigned int u_int16_t; 608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# else 618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project #error Cannot find a type with sizeof() == 2 628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# endif 638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# endif 648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# if SIZEOF_SHORT == 4 668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project typedef short int32_t; 678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project typedef unsigned short u_int32_t; 688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# else 698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# if SIZEOF_INT == 4 708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project typedef int int32_t; 718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project typedef unsigned int u_int32_t; 728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# else 738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project #error Cannot find a type with sizeof() == 4 748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# endif 758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# endif 768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* NEED_TYPEDEFS */ 778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef HAVE_UNISTD_H 798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# include <unistd.h> 808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef HAVE_STDLIB_H 838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# include <stdlib.h> 848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include <stdio.h> 878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include <errno.h> 888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef HAVE_MEMMOVE 908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define memmove(x, y, z) bcopy(y, x, z) 918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if TIME_WITH_SYS_TIME 948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# include <sys/time.h> 958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# include <time.h> 968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner# ifdef HAVE_SYS_TIME_H 988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# include <sys/time.h> 998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# else 1008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# include <time.h> 1018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# endif 1028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef HAVE_STRING_H 1058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# include <string.h> 1068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 1078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# include <strings.h> 1088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef _WIN32 1118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include <sys/uio.h> 1128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#undef _P 1158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef NO_PROTOTYPES 1168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define _P(x) x 1178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 1188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define _P(x) () 1198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef _WIN32 1228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include <arpa/inet.h> 1238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef GETTIMEOFDAY_ONE_ARG 1268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define gettimeofday(x, y) gettimeofday(x) 1278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Systems lacking strdup() definition in <string.h>. */ 1308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(ultrix) 1318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectchar *strdup _P((const char *)); 1328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Systems lacking malloc() definition in <stdlib.h>. */ 1358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(ultrix) || defined(hcx) 1368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid *malloc _P((size_t arg)); 1378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid free _P((void *ptr)); 1388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef __STDC__ 1418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include <stdarg.h> 1428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 1438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include <varargs.h> 1448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Avoid conflicting with the libc insque() and remque(), which 1478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project have different prototypes. */ 1488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define insque slirp_insque 1498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define remque slirp_remque 1508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef HAVE_SYS_STROPTS_H 1528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include <sys/stropts.h> 1538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "debug.h" 1568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "ip.h" 1588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "tcp.h" 1598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "tcp_timer.h" 1608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "tcp_var.h" 1618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "tcpip.h" 1628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "udp.h" 1638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "icmp_var.h" 1648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "mbuf.h" 1658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "sbuf.h" 1668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "socket.h" 1678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "if.h" 1688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "main.h" 1698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "misc.h" 1708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "ctl.h" 1718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef USE_PPP 1728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "ppp/pppd.h" 1738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "ppp/ppp.h" 1748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "bootp.h" 1778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "tftp.h" 1788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "libslirp.h" 1798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern struct ttys *ttys_unit[MAX_INTERFACES]; 1818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef NULL 1838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define NULL (void *)0 1848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef FULL_BOLT 1878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid if_start _P((void)); 1888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 1898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid if_start _P((struct ttys *)); 1908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef BAD_SPRINTF 1938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define vsprintf vsprintf_len 1948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define sprintf sprintf_len 1958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project extern int vsprintf_len _P((char *, const char *, va_list)); 1968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project extern int sprintf_len _P((char *, const char *, ...)); 1978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef DECLARE_SPRINTF 2008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# ifndef BAD_SPRINTF 2018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project extern int vsprintf _P((char *, const char *, va_list)); 2028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# endif 2038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project extern int vfprintf _P((FILE *, const char *, va_list)); 2048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 2058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef HAVE_STRERROR 2078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project extern char *strerror _P((int error)); 2088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 2098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef HAVE_INDEX 2118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project char *index _P((const char *, int)); 2128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 2138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef HAVE_GETHOSTID 2158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project long gethostid _P((void)); 2168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 2178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid lprint _P((const char *, ...)); 2198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define DEFAULT_BAUD 115200 2228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SO_OPTIONS DO_KEEPALIVE 2245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define TCP_MAXIDLE (TCPTV_KEEPCNT * TCPTV_KEEPINTVL) 2255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 2268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* cksum.c */ 2275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerint cksum(struct mbuf *m, int len); 2288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* if.c */ 2308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid if_init _P((void)); 2315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid if_output _P((struct socket *, struct mbuf *)); 2328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* ip_input.c */ 2348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid ip_init _P((void)); 2355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid ip_input _P((struct mbuf *)); 2368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid ip_slowtimo _P((void)); 2375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid ip_stripoptions _P((register struct mbuf *, struct mbuf *)); 2388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* ip_output.c */ 2405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerint ip_output _P((struct socket *, struct mbuf *)); 2418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* tcp_input.c */ 2435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid tcp_input _P((register struct mbuf *, int, struct socket *)); 2448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint tcp_mss _P((register struct tcpcb *, u_int)); 2458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* tcp_output.c */ 2478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint tcp_output _P((register struct tcpcb *)); 2488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid tcp_setpersist _P((register struct tcpcb *)); 2498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* tcp_subr.c */ 2518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid tcp_init _P((void)); 2528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid tcp_template _P((struct tcpcb *)); 2535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid tcp_respond _P((struct tcpcb *, register struct tcpiphdr *, register struct mbuf *, tcp_seq, tcp_seq, int)); 2548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstruct tcpcb * tcp_newtcpcb _P((struct socket *)); 2558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstruct tcpcb * tcp_close _P((register struct tcpcb *)); 2568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid tcp_sockclosed _P((struct tcpcb *)); 2578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint tcp_fconnect _P((struct socket *)); 2588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectvoid tcp_connect _P((struct socket *)); 2598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint tcp_attach _P((struct socket *)); 2608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectu_int8_t tcp_tos _P((struct socket *)); 2615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerint tcp_emu _P((struct socket *, struct mbuf *)); 2628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint tcp_ctl _P((struct socket *)); 2638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstruct tcpcb *tcp_drop(struct tcpcb *tp, int err); 2648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef USE_PPP 2668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define MIN_MRU MINMRU 2678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define MAX_MRU MAXMRU 2688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 2698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define MIN_MRU 128 2708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define MAX_MRU 16384 2718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 2728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef _WIN32 2748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define min(x,y) ((x) < (y) ? (x) : (y)) 2758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define max(x,y) ((x) > (y) ? (x) : (y)) 2768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 2778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 279