Statistics
| Branch: | Revision:

root / slirp / slirp.h @ dc5d0b3d

History | View | Annotate | Download (6.1 kB)

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
#include <sys/types.h>
15
#ifdef HAVE_SYS_BITYPES_H
16
# include <sys/bitypes.h>
17
#endif
18

    
19
#include <sys/time.h>
20

    
21
#ifdef NEED_TYPEDEFS
22
typedef char int8_t;
23
typedef unsigned char u_int8_t;
24

    
25
# if SIZEOF_SHORT == 2
26
    typedef short int16_t;
27
    typedef unsigned short u_int16_t;
28
# else
29
#  if SIZEOF_INT == 2
30
    typedef int int16_t;
31
    typedef unsigned int u_int16_t;
32
#  else
33
    #error Cannot find a type with sizeof() == 2
34
#  endif
35
# endif
36

    
37
# if SIZEOF_SHORT == 4
38
   typedef short int32_t;
39
   typedef unsigned short u_int32_t;
40
# else
41
#  if SIZEOF_INT == 4
42
    typedef int int32_t;
43
    typedef unsigned int u_int32_t;
44
#  else
45
    #error Cannot find a type with sizeof() == 4
46
#  endif
47
# endif
48
#endif /* NEED_TYPEDEFS */
49

    
50
#ifdef HAVE_UNISTD_H
51
# include <unistd.h>
52
#endif
53

    
54
#ifdef HAVE_STDLIB_H
55
# include <stdlib.h>
56
#endif
57

    
58
#include <stdio.h>
59
#include <errno.h>
60

    
61
#ifndef HAVE_MEMMOVE
62
#define memmove(x, y, z) bcopy(y, x, z)
63
#endif
64

    
65
#if TIME_WITH_SYS_TIME
66
# include <sys/time.h>
67
# include <time.h>
68
#else
69
# if HAVE_SYS_TIME_H
70
#  include <sys/time.h>
71
# else
72
#  include <time.h>
73
# endif
74
#endif
75

    
76
#ifdef HAVE_STRING_H
77
# include <string.h>
78
#else
79
# include <strings.h>
80
#endif
81

    
82
#include <sys/uio.h>
83

    
84
#ifndef _P
85
#ifndef NO_PROTOTYPES
86
#  define   _P(x)   x
87
#else
88
#  define   _P(x)   ()
89
#endif
90
#endif
91

    
92
#include <netinet/in.h>
93
#include <arpa/inet.h>
94

    
95
#ifdef GETTIMEOFDAY_ONE_ARG
96
#define gettimeofday(x, y) gettimeofday(x)
97
#endif
98

    
99
/* Systems lacking strdup() definition in <string.h>. */
100
#if defined(ultrix)
101
char *strdup _P((const char *));
102
#endif
103

    
104
/* Systems lacking malloc() definition in <stdlib.h>. */
105
#if defined(ultrix) || defined(hcx)
106
void *malloc _P((size_t arg));
107
void free _P((void *ptr));
108
#endif
109

    
110
#ifndef HAVE_INET_ATON
111
int inet_aton _P((const char *cp, struct in_addr *ia));
112
#endif
113

    
114
#include <fcntl.h>
115
#ifndef NO_UNIX_SOCKETS
116
#include <sys/un.h>
117
#endif
118
#include <signal.h>
119
#ifdef HAVE_SYS_SIGNAL_H
120
# include <sys/signal.h>
121
#endif
122
#include <sys/socket.h>
123

    
124
#if defined(WANT_SYS_IOCTL_H) && defined(HAVE_SYS_IOCTL_H)
125
# include <sys/ioctl.h>
126
#else
127
# define WANT_SYS_TERMIOS_H
128
#endif
129

    
130
#ifdef WANT_SYS_TERMIOS_H
131
# ifndef INCLUDED_TERMIOS_H
132
#  ifdef HAVE_TERMIOS_H
133
#   include <termios.h>
134
#  else
135
#   include <termio.h>
136
#  endif
137
#  define INCLUDED_TERMIOS_H
138
# endif
139
#endif
140

    
141

    
142

    
143
#ifdef HAVE_SYS_SELECT_H
144
# include <sys/select.h>
145
#endif
146

    
147
#ifdef HAVE_SYS_WAIT_H
148
# include <sys/wait.h>
149
#endif
150

    
151
#ifdef HAVE_SYS_FILIO_H
152
# include <sys/filio.h>
153
#endif
154

    
155
#ifdef USE_PPP
156
#include <ppp/slirppp.h>
157
#endif
158

    
159
#ifdef __STDC__
160
#include <stdarg.h>
161
#else
162
#include <varargs.h>
163
#endif
164

    
165
#include <sys/stat.h>
166

    
167
/* Avoid conflicting with the libc insque() and remque(), which
168
   have different prototypes. */
169
#define insque slirp_insque
170
#define remque slirp_remque
171

    
172
#ifdef HAVE_SYS_STROPTS_H
173
#include <sys/stropts.h>
174
#endif
175

    
176
#include "debug.h"
177

    
178
#include "ip.h"
179
#include "tcp.h"
180
#include "tcp_timer.h"
181
#include "tcp_var.h"
182
#include "tcpip.h"
183
#include "udp.h"
184
#include "icmp_var.h"
185
#include "mbuf.h"
186
#include "sbuf.h"
187
#include "socket.h"
188
#include "if.h"
189
#include "main.h"
190
#include "misc.h"
191
#include "ctl.h"
192
#ifdef USE_PPP
193
#include "ppp/pppd.h"
194
#include "ppp/ppp.h"
195
#endif
196

    
197
#include "bootp.h"
198
#include "libslirp.h"
199

    
200
extern struct ttys *ttys_unit[MAX_INTERFACES];
201

    
202
#ifndef NULL
203
#define NULL (void *)0
204
#endif
205

    
206
#ifndef FULL_BOLT
207
void if_start _P((void));
208
#else
209
void if_start _P((struct ttys *));
210
#endif
211

    
212
#ifdef BAD_SPRINTF
213
# define vsprintf vsprintf_len
214
# define sprintf sprintf_len
215
 extern int vsprintf_len _P((char *, const char *, va_list));
216
 extern int sprintf_len _P((char *, const char *, ...));
217
#endif
218

    
219
#ifdef DECLARE_SPRINTF
220
# ifndef BAD_SPRINTF
221
 extern int vsprintf _P((char *, const char *, va_list));
222
# endif
223
 extern int vfprintf _P((FILE *, const char *, va_list));
224
#endif
225

    
226
#ifndef HAVE_STRERROR
227
 extern char *strerror _P((int error));
228
#endif
229

    
230
#ifndef HAVE_INDEX
231
 char *index _P((const char *, int));
232
#endif
233

    
234
#ifndef HAVE_GETHOSTID
235
 long gethostid _P((void));
236
#endif
237

    
238
void lprint _P((const char *, ...));
239

    
240
extern int do_echo;
241

    
242
#if SIZEOF_CHAR_P == 4
243
# define insque_32 insque
244
# define remque_32 remque
245
#else
246
 inline void insque_32 _P((void *, void *));
247
 inline void remque_32 _P((void *));
248
#endif
249

    
250
#include <pwd.h>
251
#include <netdb.h>
252

    
253
#define DEFAULT_BAUD 115200
254

    
255
/* cksum.c */
256
int cksum(struct mbuf *m, int len);
257

    
258
/* if.c */
259
void if_init _P((void));
260
void if_output _P((struct socket *, struct mbuf *));
261

    
262
/* ip_input.c */
263
void ip_init _P((void));
264
void ip_input _P((struct mbuf *));
265
struct ip * ip_reass _P((register struct ipasfrag *, register struct ipq *));
266
void ip_freef _P((struct ipq *));
267
void ip_enq _P((register struct ipasfrag *, register struct ipasfrag *));
268
void ip_deq _P((register struct ipasfrag *));
269
void ip_slowtimo _P((void));
270
void ip_stripoptions _P((register struct mbuf *, struct mbuf *));
271

    
272
/* ip_output.c */
273
int ip_output _P((struct socket *, struct mbuf *));
274

    
275
/* tcp_input.c */
276
int tcp_reass _P((register struct tcpcb *, register struct tcpiphdr *, struct mbuf *));
277
void tcp_input _P((register struct mbuf *, int, struct socket *));
278
void tcp_dooptions _P((struct tcpcb *, u_char *, int, struct tcpiphdr *));
279
void tcp_xmit_timer _P((register struct tcpcb *, int));
280
int tcp_mss _P((register struct tcpcb *, u_int));
281

    
282
/* tcp_output.c */
283
int tcp_output _P((register struct tcpcb *));
284
void tcp_setpersist _P((register struct tcpcb *));
285

    
286
/* tcp_subr.c */
287
void tcp_init _P((void));
288
void tcp_template _P((struct tcpcb *));
289
void tcp_respond _P((struct tcpcb *, register struct tcpiphdr *, register struct mbuf *, tcp_seq, tcp_seq, int));
290
struct tcpcb * tcp_newtcpcb _P((struct socket *));
291
struct tcpcb * tcp_close _P((register struct tcpcb *));
292
void tcp_drain _P((void));
293
void tcp_sockclosed _P((struct tcpcb *));
294
int tcp_fconnect _P((struct socket *));
295
void tcp_connect _P((struct socket *));
296
int tcp_attach _P((struct socket *));
297
u_int8_t tcp_tos _P((struct socket *));
298
int tcp_emu _P((struct socket *, struct mbuf *));
299
int tcp_ctl _P((struct socket *));
300
struct tcpcb *tcp_drop(struct tcpcb *tp, int err);
301

    
302
#ifdef USE_PPP
303
#define MIN_MRU MINMRU
304
#define MAX_MRU MAXMRU
305
#else
306
#define MIN_MRU 128
307
#define MAX_MRU 16384
308
#endif
309

    
310
#endif