Home | History | Annotate | Download | only in slirp
      1 /*
      2  * Copyright (c) 1995 Danny Gasparovski.
      3  *
      4  * Please read the file COPYRIGHT for the
      5  * terms and conditions of the copyright.
      6  */
      7 
      8 #ifndef _MISC_H_
      9 #define _MISC_H_
     10 
     11 struct ex_list {
     12 	int ex_pty;			/* Do we want a pty? */
     13 	int ex_addr;			/* The last byte of the address */
     14 	int ex_fport;                   /* Port to telnet to */
     15 	const char *ex_exec;            /* Command line of what to exec */
     16 	struct ex_list *ex_next;
     17 };
     18 
     19 extern struct ex_list *exec_list;
     20 extern u_int time_fasttimo, last_slowtimo;
     21 
     22 extern int (*lprint_print) _P((void *, const char *, va_list));
     23 extern char *lprint_ptr, *lprint_ptr2, **lprint_arg;
     24 extern struct sbuf *lprint_sb;
     25 
     26 #ifndef HAVE_STRDUP
     27 char *strdup _P((const char *));
     28 #endif
     29 
     30 void do_wait _P((int));
     31 
     32 #define EMU_NONE 0x0
     33 
     34 /* TCP emulations */
     35 #define EMU_CTL 0x1
     36 #define EMU_FTP 0x2
     37 #define EMU_KSH 0x3
     38 #define EMU_IRC 0x4
     39 #define EMU_REALAUDIO 0x5
     40 #define EMU_RLOGIN 0x6
     41 #define EMU_IDENT 0x7
     42 #define EMU_RSH 0x8
     43 
     44 #define EMU_NOCONNECT 0x10	/* Don't connect */
     45 
     46 /* UDP emulations */
     47 #define EMU_TALK	0x1
     48 #define EMU_NTALK	0x2
     49 #define EMU_CUSEEME	0x3
     50 
     51 struct tos_t {
     52 	u_int16_t lport;
     53 	u_int16_t fport;
     54 	u_int8_t tos;
     55 	u_int8_t emu;
     56 };
     57 
     58 struct emu_t {
     59 	u_int16_t lport;
     60 	u_int16_t fport;
     61 	u_int8_t tos;
     62 	u_int8_t emu;
     63 	struct emu_t *next;
     64 };
     65 
     66 #ifndef CONFIG_QEMU
     67 extern struct emu_t *tcpemu;
     68 #endif
     69 
     70 extern int x_port, x_server, x_display;
     71 
     72 int show_x _P((char *, struct socket *));
     73 void redir_x _P((u_int32_t, int, int, int));
     74 void getouraddr _P((void));
     75 void slirp_insque _P((void *, void *));
     76 void slirp_remque _P((void *));
     77 int add_exec _P((struct ex_list **, int, char *, int, int));
     78 int slirp_openpty _P((int *, int *));
     79 int fork_exec(struct socket *so, const char *ex, int do_pty);
     80 void snooze_hup _P((int));
     81 void snooze _P((void));
     82 void relay _P((int));
     83 void add_emu _P((char *));
     84 void u_sleep _P((int));
     85 void fd_nonblock _P((int));
     86 void fd_block _P((int));
     87 int rsh_exec _P((struct socket *, struct socket *, char *, char *, char *));
     88 
     89 #endif
     90