ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / drivers / net / hamradio / mkiss.h
1 /****************************************************************************
2  *      Defines for the Multi-KISS driver.
3  ****************************************************************************/
4
5 #define AX25_MAXDEV     16              /* MAX number of AX25 channels;
6                                            This can be overridden with
7                                            insmod -oax25_maxdev=nnn     */
8 #define AX_MTU          236     
9
10 /* SLIP/KISS protocol characters. */
11 #define END             0300            /* indicates end of frame       */
12 #define ESC             0333            /* indicates byte stuffing      */
13 #define ESC_END         0334            /* ESC ESC_END means END 'data' */
14 #define ESC_ESC         0335            /* ESC ESC_ESC means ESC 'data' */
15
16 struct ax_disp {
17         int                magic;
18
19         /* Various fields. */
20         struct tty_struct  *tty;                /* ptr to TTY structure         */
21         struct net_device      *dev;            /* easy for intr handling       */
22
23         /* These are pointers to the malloc()ed frame buffers. */
24         unsigned char      *rbuff;              /* receiver buffer              */
25         int                rcount;              /* received chars counter       */
26         unsigned char      *xbuff;              /* transmitter buffer           */
27         unsigned char      *xhead;              /* pointer to next byte to XMIT */
28         int                xleft;               /* bytes left in XMIT queue     */
29
30         /* SLIP interface statistics. */
31         unsigned long      rx_packets;          /* inbound frames counter       */
32         unsigned long      tx_packets;          /* outbound frames counter      */
33         unsigned long      rx_bytes;            /* inbound bytes counter        */
34         unsigned long      tx_bytes;            /* outbound bytes counter       */
35         unsigned long      rx_errors;           /* Parity, etc. errors          */
36         unsigned long      tx_errors;           /* Planned stuff                */
37         unsigned long      rx_dropped;          /* No memory for skb            */
38         unsigned long      tx_dropped;          /* When MTU change              */
39         unsigned long      rx_over_errors;      /* Frame bigger then SLIP buf.  */
40
41         /* Detailed SLIP statistics. */
42         int                 mtu;                /* Our mtu (to spot changes!)   */
43         int                 buffsize;           /* Max buffers sizes            */
44
45
46         unsigned long   flags;          /* Flag values/ mode etc        */
47                                         /* long req'd: used by set_bit --RR */
48 #define AXF_INUSE       0               /* Channel in use               */
49 #define AXF_ESCAPE      1               /* ESC received                 */
50 #define AXF_ERROR       2               /* Parity, etc. error           */
51 #define AXF_KEEPTEST    3               /* Keepalive test flag          */
52 #define AXF_OUTWAIT     4               /* is outpacket was flag        */
53
54         int                 mode;
55         int                 crcmode;    /* MW: for FlexNet, SMACK etc.  */ 
56 #define CRC_MODE_NONE   0
57 #define CRC_MODE_FLEX   1
58 #define CRC_MODE_SMACK  2
59         spinlock_t          buflock;    /* lock for rbuf and xbuf */
60 };
61
62 #define AX25_MAGIC              0x5316