Annotation of previous/src/slirp/slirp.h, revision 1.1.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.