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