Annotation of previous/src/slirp/slirp.h, revision 1.1

1.1     ! root        1: #ifndef __COMMON_H__
        !             2: #define __COMMON_H__
        !             3: 
        !             4: #define CONFIG_QEMU
        !             5: 
        !             6: #define DEBUG 1
        !             7: 
        !             8: #ifndef CONFIG_QEMU
        !             9: #include "version.h"
        !            10: #endif
        !            11: #include "config.h"
        !            12: #include "slirp_config.h"
        !            13: 
        !            14: #ifdef _WIN32
        !            15: # include <inttypes.h>
        !            16: 
        !            17: typedef uint8_t u_int8_t;
        !            18: typedef uint16_t u_int16_t;
        !            19: typedef uint32_t u_int32_t;
        !            20: typedef uint64_t u_int64_t;
        !            21: typedef char *caddr_t;
        !            22: typedef int socklen_t;
        !            23: typedef unsigned long ioctlsockopt_t;
        !            24: 
        !            25: # include <windows.h>
        !            26: # include <winsock2.h>
        !            27: # include <sys/timeb.h>
        !            28: # include <iphlpapi.h>
        !            29: 
        !            30: # define USE_FIONBIO 1
        !            31: # define EWOULDBLOCK WSAEWOULDBLOCK
        !            32: # define EINPROGRESS WSAEINPROGRESS
        !            33: # define ENOTCONN WSAENOTCONN
        !            34: # define EHOSTUNREACH WSAEHOSTUNREACH
        !            35: # define ENETUNREACH WSAENETUNREACH
        !            36: # define ECONNREFUSED WSAECONNREFUSED
        !            37: 
        !            38: /* Basilisk II Router defines those */
        !            39: # define udp_read_completion slirp_udp_read_completion
        !            40: # define write_udp slirp_write_udp
        !            41: # define init_udp slirp_init_udp
        !            42: # define final_udp slirp_final_udp
        !            43: #else
        !            44: typedef int ioctlsockopt_t;
        !            45: # define ioctlsocket ioctl
        !            46: # define closesocket(s) close(s)
        !            47: # define O_BINARY 0
        !            48: #endif
        !            49: 
        !            50: #include <sys/types.h>
        !            51: #ifdef HAVE_SYS_BITYPES_H
        !            52: # include <sys/bitypes.h>
        !            53: #endif
        !            54: #ifdef HAVE_STDINT_H
        !            55: # include <stdint.h>
        !            56: #endif
        !            57: 
        !            58: #include <sys/time.h>
        !            59: 
        !            60: #ifdef NEED_TYPEDEFS
        !            61: typedef char int8_t;
        !            62: typedef unsigned char u_int8_t;
        !            63: 
        !            64: # if SIZEOF_SHORT == 2
        !            65:     typedef short int16_t;
        !            66:     typedef unsigned short u_int16_t;
        !            67: # else
        !            68: #  if SIZEOF_INT == 2
        !            69:     typedef int int16_t;
        !            70:     typedef unsigned int u_int16_t;
        !            71: #  else
        !            72:     #error Cannot find a type with sizeof() == 2
        !            73: #  endif
        !            74: # endif
        !            75: 
        !            76: # if SIZEOF_SHORT == 4
        !            77:    typedef short int32_t;
        !            78:    typedef unsigned short u_int32_t;
        !            79: # else
        !            80: #  if SIZEOF_INT == 4
        !            81:     typedef int int32_t;
        !            82:     typedef unsigned int u_int32_t;
        !            83: #  else
        !            84:     #error Cannot find a type with sizeof() == 4
        !            85: #  endif
        !            86: # endif
        !            87: #endif /* NEED_TYPEDEFS */
        !            88: 
        !            89: /* Basilisk II types glue */
        !            90: typedef u_int8_t uint8;
        !            91: typedef u_int16_t uint16;
        !            92: typedef u_int32_t uint32;
        !            93: 
        !            94: #ifdef HAVE_UNISTD_H
        !            95: # include <unistd.h>
        !            96: #endif
        !            97: 
        !            98: #ifdef HAVE_STDLIB_H
        !            99: # include <stdlib.h>
        !           100: #endif
        !           101: 
        !           102: #include <stdio.h>
        !           103: #include <errno.h>
        !           104: 
        !           105: #ifndef HAVE_MEMMOVE
        !           106: #define memmove(x, y, z) bcopy(y, x, z)
        !           107: #endif
        !           108: 
        !           109: #if TIME_WITH_SYS_TIME
        !           110: # include <sys/time.h>
        !           111: # include <time.h>
        !           112: #else
        !           113: # if HAVE_SYS_TIME_H
        !           114: #  include <sys/time.h>
        !           115: # else
        !           116: #  include <time.h>
        !           117: # endif
        !           118: #endif
        !           119: 
        !           120: #ifdef HAVE_STRING_H
        !           121: # include <string.h>
        !           122: #else
        !           123: # include <strings.h>
        !           124: #endif
        !           125: 
        !           126: #ifndef _WIN32
        !           127: #include <sys/uio.h>
        !           128: #endif
        !           129: 
        !           130: #ifndef _P
        !           131: #ifndef NO_PROTOTYPES
        !           132: #  define   _P(x)   x
        !           133: #else
        !           134: #  define   _P(x)   ()
        !           135: #endif
        !           136: #endif
        !           137: 
        !           138: #ifndef _WIN32
        !           139: #include <netinet/in.h>
        !           140: #include <arpa/inet.h>
        !           141: #endif
        !           142: 
        !           143: #ifdef GETTIMEOFDAY_ONE_ARG
        !           144: #define gettimeofday(x, y) gettimeofday(x)
        !           145: #endif
        !           146: 
        !           147: /* Systems lacking strdup() definition in <string.h>. */
        !           148: #if defined(ultrix)
        !           149: char *strdup _P((const char *));
        !           150: #endif
        !           151: 
        !           152: /* Systems lacking malloc() definition in <stdlib.h>. */
        !           153: #if defined(ultrix) || defined(hcx)
        !           154: void *malloc _P((size_t arg));
        !           155: void free _P((void *ptr));
        !           156: #endif
        !           157: 
        !           158: #ifndef HAVE_INET_ATON
        !           159: int inet_aton _P((const char *cp, struct in_addr *ia));
        !           160: #endif
        !           161: 
        !           162: #include <fcntl.h>
        !           163: #ifndef NO_UNIX_SOCKETS
        !           164: #include <sys/un.h>
        !           165: #endif
        !           166: #include <signal.h>
        !           167: #ifdef HAVE_SYS_SIGNAL_H
        !           168: # include <sys/signal.h>
        !           169: #endif
        !           170: #ifndef _WIN32
        !           171: #include <sys/socket.h>
        !           172: #endif
        !           173: 
        !           174: #if defined(HAVE_SYS_IOCTL_H)
        !           175: # include <sys/ioctl.h>
        !           176: #endif
        !           177: 
        !           178: #ifdef HAVE_SYS_SELECT_H
        !           179: # include <sys/select.h>
        !           180: #endif
        !           181: 
        !           182: #ifdef HAVE_SYS_WAIT_H
        !           183: # include <sys/wait.h>
        !           184: #endif
        !           185: 
        !           186: #ifdef HAVE_SYS_FILIO_H
        !           187: # include <sys/filio.h>
        !           188: #endif
        !           189: 
        !           190: #ifdef USE_PPP
        !           191: #include <ppp/slirppp.h>
        !           192: #endif
        !           193: 
        !           194: #ifdef __STDC__
        !           195: #include <stdarg.h>
        !           196: #else
        !           197: #include <varargs.h>
        !           198: #endif
        !           199: 
        !           200: #include <sys/stat.h>
        !           201: 
        !           202: /* Avoid conflicting with the libc insque() and remque(), which
        !           203:    have different prototypes. */
        !           204: #define insque slirp_insque
        !           205: #define remque slirp_remque
        !           206: 
        !           207: #ifdef HAVE_SYS_STROPTS_H
        !           208: #include <sys/stropts.h>
        !           209: #endif
        !           210: 
        !           211: #include "slirpdebug.h"
        !           212: 
        !           213: #if defined __GNUC__
        !           214: #define PACKED__ __attribute__ ((packed))
        !           215: #elif defined __sgi
        !           216: #define PRAGMA_PACK_SUPPORTED 1
        !           217: #define PACKED__
        !           218: #else
        !           219: #error "Packed attribute or pragma shall be supported"
        !           220: #endif
        !           221: 
        !           222: #include "ip.h"
        !           223: #include "tcp.h"
        !           224: #include "tcp_timer.h"
        !           225: #include "tcp_var.h"
        !           226: #include "tcpip.h"
        !           227: #include "udp.h"
        !           228: #include "icmp_var.h"
        !           229: #include "mbuf.h"
        !           230: #include "sbuf.h"
        !           231: #include "socket.h"
        !           232: #include "if.h"
        !           233: #include "slirpmain.h"
        !           234: #include "misc.h"
        !           235: #include "ctl.h"
        !           236: #ifdef USE_PPP
        !           237: #include "ppp/pppd.h"
        !           238: #include "ppp/ppp.h"
        !           239: #endif
        !           240: 
        !           241: #include "bootp.h"
        !           242: #include "tftp.h"
        !           243: #include "libslirp.h"
        !           244: 
        !           245: extern struct ttys *ttys_unit[MAX_INTERFACES];
        !           246: 
        !           247: #ifndef NULL
        !           248: #define NULL (void *)0
        !           249: #endif
        !           250: 
        !           251: #ifndef FULL_BOLT
        !           252: void if_start _P((void));
        !           253: #else
        !           254: void if_start _P((struct ttys *));
        !           255: #endif
        !           256: 
        !           257: #ifdef BAD_SPRINTF
        !           258: # define vsprintf vsprintf_len
        !           259: # define sprintf sprintf_len
        !           260:  extern int vsprintf_len _P((char *, const char *, va_list));
        !           261:  extern int sprintf_len _P((char *, const char *, ...));
        !           262: #endif
        !           263: 
        !           264: #ifdef DECLARE_SPRINTF
        !           265: # ifndef BAD_SPRINTF
        !           266:  extern int vsprintf _P((char *, const char *, va_list));
        !           267: # endif
        !           268:  extern int vfprintf _P((FILE *, const char *, va_list));
        !           269: #endif
        !           270: 
        !           271: #ifndef HAVE_STRERROR
        !           272:  extern char *strerror _P((int error));
        !           273: #endif
        !           274: 
        !           275: #ifndef HAVE_INDEX
        !           276:  char *index _P((const char *, int));
        !           277: #endif
        !           278: 
        !           279: #ifndef HAVE_GETHOSTID
        !           280:  long gethostid _P((void));
        !           281: #endif
        !           282: 
        !           283: void lprint _P((const char *, ...));
        !           284: 
        !           285: extern int do_echo;
        !           286: 
        !           287: #ifndef _WIN32
        !           288: #include <netdb.h>
        !           289: #endif
        !           290: 
        !           291: #define DEFAULT_BAUD 115200
        !           292: 
        !           293: /* cksum.c */
        !           294: int cksum(struct mbuf *m, int len);
        !           295: 
        !           296: /* if.c */
        !           297: void if_init _P((void));
        !           298: void if_output _P((struct socket *, struct mbuf *));
        !           299: 
        !           300: /* ip_input.c */
        !           301: void ip_init _P((void));
        !           302: void ip_input _P((struct mbuf *));
        !           303: static struct ip *
        !           304: ip_reass(register struct ip *ip, register struct ipq *);
        !           305: void ip_freef _P((struct ipq *));
        !           306: void ip_enq _P((register struct ipasfrag *, register struct ipasfrag *));
        !           307: void ip_deq _P((register struct ipasfrag *));
        !           308: void ip_slowtimo _P((void));
        !           309: void ip_stripoptions _P((register struct mbuf *, struct mbuf *));
        !           310: 
        !           311: /* ip_output.c */
        !           312: int ip_output _P((struct socket *, struct mbuf *));
        !           313: 
        !           314: /* tcp_input.c */
        !           315: int tcp_reass _P((register struct tcpcb *, register struct tcpiphdr *, struct mbuf *));
        !           316: void tcp_input _P((register struct mbuf *, int, struct socket *));
        !           317: void tcp_dooptions _P((struct tcpcb *, u_char *, int, struct tcpiphdr *));
        !           318: void tcp_xmit_timer _P((register struct tcpcb *, int));
        !           319: int tcp_mss _P((register struct tcpcb *, u_int));
        !           320: 
        !           321: /* tcp_output.c */
        !           322: int tcp_output _P((register struct tcpcb *));
        !           323: void tcp_setpersist _P((register struct tcpcb *));
        !           324: 
        !           325: /* tcp_subr.c */
        !           326: void tcp_init _P((void));
        !           327: void tcp_template _P((struct tcpcb *));
        !           328: void tcp_respond _P((struct tcpcb *, register struct tcpiphdr *, register struct mbuf *, tcp_seq, tcp_seq, int));
        !           329: struct tcpcb * tcp_newtcpcb _P((struct socket *));
        !           330: struct tcpcb * tcp_close _P((register struct tcpcb *));
        !           331: void tcp_drain _P((void));
        !           332: void tcp_sockclosed _P((struct tcpcb *));
        !           333: int tcp_fconnect _P((struct socket *));
        !           334: void tcp_connect _P((struct socket *));
        !           335: int tcp_attach _P((struct socket *));
        !           336: u_int8_t tcp_tos _P((struct socket *));
        !           337: int tcp_emu _P((struct socket *, struct mbuf *));
        !           338: int tcp_ctl _P((struct socket *));
        !           339: struct tcpcb *tcp_drop(struct tcpcb *tp, int err);
        !           340: 
        !           341: #ifdef USE_PPP
        !           342: #define MIN_MRU MINMRU
        !           343: #define MAX_MRU MAXMRU
        !           344: #else
        !           345: #define MIN_MRU 128
        !           346: #define MAX_MRU 16384
        !           347: #endif
        !           348: 
        !           349: #ifndef _WIN32
        !           350: #define min(x,y) ((x) < (y) ? (x) : (y))
        !           351: #define max(x,y) ((x) > (y) ? (x) : (y))
        !           352: #endif
        !           353: 
        !           354: #ifdef _WIN32
        !           355: #undef errno
        !           356: #define errno (WSAGetLastError())
        !           357: #endif
        !           358: 
        !           359: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.