xref: /OK3568_Linux_fs/kernel/drivers/net/wan/x25_asy.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef _LINUX_X25_ASY_H
3*4882a593Smuzhiyun #define _LINUX_X25_ASY_H
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun /* X.25 asy configuration. */
6*4882a593Smuzhiyun #define SL_NRUNIT	256		/* MAX number of X.25 channels;
7*4882a593Smuzhiyun 					   This can be overridden with
8*4882a593Smuzhiyun 					   insmod -ox25_asy_maxdev=nnn	*/
9*4882a593Smuzhiyun #define SL_MTU		256
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun /* X25 async protocol characters. */
12*4882a593Smuzhiyun #define X25_END         0x7E		/* indicates end of frame	*/
13*4882a593Smuzhiyun #define X25_ESC         0x7D		/* indicates byte stuffing	*/
14*4882a593Smuzhiyun #define X25_ESCAPE(x)	((x)^0x20)
15*4882a593Smuzhiyun #define X25_UNESCAPE(x)	((x)^0x20)
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun struct x25_asy {
19*4882a593Smuzhiyun   int			magic;
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun   /* Various fields. */
22*4882a593Smuzhiyun   spinlock_t		lock;
23*4882a593Smuzhiyun   struct tty_struct	*tty;		/* ptr to TTY structure		*/
24*4882a593Smuzhiyun   struct net_device	*dev;		/* easy for intr handling	*/
25*4882a593Smuzhiyun 
26*4882a593Smuzhiyun   /* These are pointers to the malloc()ed frame buffers. */
27*4882a593Smuzhiyun   unsigned char		*rbuff;		/* receiver buffer		*/
28*4882a593Smuzhiyun   int                   rcount;         /* received chars counter       */
29*4882a593Smuzhiyun   unsigned char		*xbuff;		/* transmitter buffer		*/
30*4882a593Smuzhiyun   unsigned char         *xhead;         /* pointer to next byte to XMIT */
31*4882a593Smuzhiyun   int                   xleft;          /* bytes left in XMIT queue     */
32*4882a593Smuzhiyun   int                   buffsize;       /* Max buffers sizes            */
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun   unsigned long		flags;		/* Flag values/ mode etc	*/
35*4882a593Smuzhiyun #define SLF_INUSE	0		/* Channel in use               */
36*4882a593Smuzhiyun #define SLF_ESCAPE	1               /* ESC received                 */
37*4882a593Smuzhiyun #define SLF_ERROR	2               /* Parity, etc. error           */
38*4882a593Smuzhiyun };
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun 
41*4882a593Smuzhiyun 
42*4882a593Smuzhiyun #define X25_ASY_MAGIC 0x5303
43*4882a593Smuzhiyun 
44*4882a593Smuzhiyun int x25_asy_init(struct net_device *dev);
45*4882a593Smuzhiyun 
46*4882a593Smuzhiyun #endif	/* _LINUX_X25_ASY.H */
47