1 /* $Id: isdn_tty.h,v 1.1.4.1 2001/11/20 14:19:34 kai Exp $
2  *
3  * header for Linux ISDN subsystem, tty related functions (linklevel).
4  *
5  * Copyright 1994-1999  by Fritz Elfert (fritz@isdn4linux.de)
6  * Copyright 1995,96    by Thinking Objects Software GmbH Wuerzburg
7  *
8  * This software may be used and distributed according to the terms
9  * of the GNU General Public License, incorporated herein by reference.
10  *
11  */
12 
13 #include <linux/config.h>
14 
15 #define DLE 0x10
16 #define ETX 0x03
17 #define DC4 0x14
18 
19 
20 /*
21  * Definition of some special Registers of AT-Emulator
22  */
23 #define REG_RINGATA   0
24 #define REG_RINGCNT   1  /* ring counter register */
25 #define REG_ESC       2
26 #define REG_CR        3
27 #define REG_LF        4
28 #define REG_BS        5
29 
30 #define REG_WAITC     7
31 
32 #define REG_RESP     12  /* show response messages register */
33 #define BIT_RESP      1  /* show response messages bit      */
34 #define REG_RESPNUM  12  /* show numeric responses register */
35 #define BIT_RESPNUM   2  /* show numeric responses bit      */
36 #define REG_ECHO     12
37 #define BIT_ECHO      4
38 #define REG_DCD      12
39 #define BIT_DCD       8
40 #define REG_CTS      12
41 #define BIT_CTS      16
42 #define REG_DTRR     12
43 #define BIT_DTRR     32
44 #define REG_DSR      12
45 #define BIT_DSR      64
46 #define REG_CPPP     12
47 #define BIT_CPPP    128
48 
49 #define REG_DXMT     13
50 #define BIT_DXMT      1
51 #define REG_T70      13
52 #define BIT_T70       2
53 #define BIT_T70_EXT  32
54 #define REG_DTRHUP   13
55 #define BIT_DTRHUP    4
56 #define REG_RESPXT   13
57 #define BIT_RESPXT    8
58 #define REG_CIDONCE  13
59 #define BIT_CIDONCE  16
60 #define REG_RUNG     13  /* show RUNG message register      */
61 #define BIT_RUNG     64  /* show RUNG message bit           */
62 #define REG_DISPLAY  13
63 #define BIT_DISPLAY 128
64 
65 #define REG_L2PROT   14
66 #define REG_L3PROT   15
67 #define REG_PSIZE    16
68 #define REG_WSIZE    17
69 #define REG_SI1      18
70 #define REG_SI2      19
71 #define REG_SI1I     20
72 #define REG_PLAN     21
73 #define REG_SCREEN   22
74 
75 #define REG_CPN      23
76 #define BIT_CPN       1
77 #define REG_CPNFCON  23
78 #define BIT_CPNFCON   2
79 #define REG_CDN      23
80 #define BIT_CDN       4
81 
82 /* defines for result codes */
83 #define RESULT_OK		0
84 #define RESULT_CONNECT		1
85 #define RESULT_RING		2
86 #define RESULT_NO_CARRIER	3
87 #define RESULT_ERROR		4
88 #define RESULT_CONNECT64000	5
89 #define RESULT_NO_DIALTONE	6
90 #define RESULT_BUSY		7
91 #define RESULT_NO_ANSWER	8
92 #define RESULT_RINGING		9
93 #define RESULT_NO_MSN_EAZ	10
94 #define RESULT_VCON		11
95 #define RESULT_RUNG		12
96 
97 #define TTY_IS_FCLASS1(info) \
98 	((info->emu.mdmreg[REG_L2PROT] == ISDN_PROTO_L2_FAX) && \
99 	 (info->emu.mdmreg[REG_L3PROT] == ISDN_PROTO_L3_FCLASS1))
100 #define TTY_IS_FCLASS2(info) \
101 	((info->emu.mdmreg[REG_L2PROT] == ISDN_PROTO_L2_FAX) && \
102 	 (info->emu.mdmreg[REG_L3PROT] == ISDN_PROTO_L3_FCLASS2))
103 
104 extern void isdn_tty_modem_escape(void);
105 extern void isdn_tty_modem_ring(void);
106 extern void isdn_tty_carrier_timeout(void);
107 extern void isdn_tty_modem_xmit(void);
108 extern int isdn_tty_modem_init(void);
109 extern void isdn_tty_readmodem(void);
110 extern int isdn_tty_find_icall(int, int, setup_parm *);
111 extern void isdn_tty_cleanup_xmit(modem_info *);
112 extern int isdn_tty_stat_callback(int, isdn_ctrl *);
113 extern int isdn_tty_rcv_skb(int, int, int, struct sk_buff *);
114 extern int isdn_tty_capi_facility(capi_msg *cm);
115 extern void isdn_tty_at_cout(char *, modem_info *);
116 extern void isdn_tty_modem_hup(modem_info *, int);
117 #ifdef CONFIG_ISDN_TTY_FAX
118 extern int isdn_tty_cmd_PLUSF_FAX(char **, modem_info *);
119 extern int isdn_tty_fax_command(modem_info *, isdn_ctrl *);
120 extern void isdn_tty_fax_bitorder(modem_info *, struct sk_buff *);
121 #endif
122