1/* $Id: isdn_tty.h,v 1.1.1.1 2008/10/15 03:26:33 james26_jang 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
104extern void isdn_tty_modem_escape(void);
105extern void isdn_tty_modem_ring(void);
106extern void isdn_tty_carrier_timeout(void);
107extern void isdn_tty_modem_xmit(void);
108extern int isdn_tty_modem_init(void);
109extern void isdn_tty_readmodem(void);
110extern int isdn_tty_find_icall(int, int, setup_parm *);
111extern void isdn_tty_cleanup_xmit(modem_info *);
112extern int isdn_tty_stat_callback(int, isdn_ctrl *);
113extern int isdn_tty_rcv_skb(int, int, int, struct sk_buff *);
114extern int isdn_tty_capi_facility(capi_msg *cm);
115extern void isdn_tty_at_cout(char *, modem_info *);
116extern void isdn_tty_modem_hup(modem_info *, int);
117#ifdef CONFIG_ISDN_TTY_FAX
118extern int isdn_tty_cmd_PLUSF_FAX(char **, modem_info *);
119extern int isdn_tty_fax_command(modem_info *, isdn_ctrl *);
120extern void isdn_tty_fax_bitorder(modem_info *, struct sk_buff *);
121#endif
122