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