1 /* $OpenBSD: if_stripvar.h,v 1.8 2002/03/14 01:27:09 millert Exp $ */
2 /* $NetBSD: if_stripvar.h,v 1.2.4.1 1996/08/05 20:37:51 jtc Exp $ */
3
4 #ifndef _NET_IF_STRIPVAR_H_
5 #define _NET_IF_STRIPVAR_H_
6 /*
7 * Definitions for SLIP interface data structures
8 *
9 * (This exists so programs like slstats can get at the definition
10 * of sl_softc.)
11 */
12 struct st_softc {
13 struct ifnet sc_if; /* network-visible interface */
14 int sc_unit; /* XXX unit number */
15 struct ifqueue sc_fastq; /* interactive output queue */
16 struct tty *sc_ttyp; /* pointer to tty structure */
17 u_char *sc_mp; /* pointer to next available buf char */
18 u_char *sc_ep; /* pointer to last available buf char */
19 u_char *sc_buf; /* input buffer */
20 u_char *sc_rxbuf; /* input destuffing buffer */
21 u_char *sc_txbuf; /* output stuffing buffer */
22 u_int sc_flags; /* see below */
23 long sc_oqlen; /* previous output queue size */
24 long sc_otimeout; /* number of times output's stalled */
25 #if defined(__NetBSD__) || defined(__OpenBSD__)
26 int sc_oldbufsize; /* previous output buffer size */
27 int sc_oldbufquot; /* previous output buffer quoting */
28 #endif
29 #ifdef INET /* XXX */
30 struct slcompress sc_comp; /* tcp compression data */
31 #endif
32
33 int sc_state; /* Radio reset state-machine */
34 #define ST_ALIVE 0x0 /* answered probe */
35 #define ST_PROBE_SENT 0x1 /* probe sent, answer pending */
36 #define ST_DEAD 0x2 /* no answer to probe; do reset */
37
38 long sc_statetimo; /* When (secs) current state ends */
39
40 caddr_t sc_bpf; /* BPF data */
41 struct timeout sc_timo;
42
43 struct timeval sc_lastpacket; /* for watchdog */
44 };
45
46
47 /* Internal flags */
48 #define SC_ERROR 0x0001 /* Incurred error reading current pkt*/
49
50 #define SC_TIMEOUT 0x00000400 /* timeout is currently pending */
51
52 /* visible flags */
53 #define SC_COMPRESS IFF_LINK0 /* compress TCP traffic */
54 #define SC_NOICMP IFF_LINK1 /* supress ICMP traffic */
55 #define SC_AUTOCOMP IFF_LINK2 /* auto-enable TCP compression */
56
57 #ifdef _KERNEL
58 void stripattach(int n);
59 void stripclose(struct tty *);
60 void stripinput(int, struct tty *);
61 int stripioctl(struct ifnet *, u_long, caddr_t);
62 int stripopen(dev_t, struct tty *);
63 int stripoutput(struct ifnet *,
64 struct mbuf *, struct sockaddr *, struct rtentry *);
65 void stripstart(struct tty *);
66 int striptioctl(struct tty *, u_long, caddr_t, int);
67 #endif /* _KERNEL */
68 #endif /* _NET_IF_STRIPVAR_H_ */