xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/linux/isdn.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi /* $Id: isdn.h,v 1.125.2.3 2004/02/10 01:07:14 keil Exp $
2*53ee8cc1Swenshuai.xi  *
3*53ee8cc1Swenshuai.xi  * Main header for the Linux ISDN subsystem (linklevel).
4*53ee8cc1Swenshuai.xi  *
5*53ee8cc1Swenshuai.xi  * Copyright 1994,95,96 by Fritz Elfert (fritz@isdn4linux.de)
6*53ee8cc1Swenshuai.xi  * Copyright 1995,96    by Thinking Objects Software GmbH Wuerzburg
7*53ee8cc1Swenshuai.xi  * Copyright 1995,96    by Michael Hipp (Michael.Hipp@student.uni-tuebingen.de)
8*53ee8cc1Swenshuai.xi  *
9*53ee8cc1Swenshuai.xi  * This software may be used and distributed according to the terms
10*53ee8cc1Swenshuai.xi  * of the GNU General Public License, incorporated herein by reference.
11*53ee8cc1Swenshuai.xi  *
12*53ee8cc1Swenshuai.xi  */
13*53ee8cc1Swenshuai.xi 
14*53ee8cc1Swenshuai.xi #ifndef __ISDN_H__
15*53ee8cc1Swenshuai.xi #define __ISDN_H__
16*53ee8cc1Swenshuai.xi 
17*53ee8cc1Swenshuai.xi #include <linux/ioctl.h>
18*53ee8cc1Swenshuai.xi 
19*53ee8cc1Swenshuai.xi #define ISDN_MAX_DRIVERS    32
20*53ee8cc1Swenshuai.xi #define ISDN_MAX_CHANNELS   64
21*53ee8cc1Swenshuai.xi 
22*53ee8cc1Swenshuai.xi /* New ioctl-codes */
23*53ee8cc1Swenshuai.xi #define IIOCNETAIF  _IO('I',1)
24*53ee8cc1Swenshuai.xi #define IIOCNETDIF  _IO('I',2)
25*53ee8cc1Swenshuai.xi #define IIOCNETSCF  _IO('I',3)
26*53ee8cc1Swenshuai.xi #define IIOCNETGCF  _IO('I',4)
27*53ee8cc1Swenshuai.xi #define IIOCNETANM  _IO('I',5)
28*53ee8cc1Swenshuai.xi #define IIOCNETDNM  _IO('I',6)
29*53ee8cc1Swenshuai.xi #define IIOCNETGNM  _IO('I',7)
30*53ee8cc1Swenshuai.xi #define IIOCGETSET  _IO('I',8) /* no longer supported */
31*53ee8cc1Swenshuai.xi #define IIOCSETSET  _IO('I',9) /* no longer supported */
32*53ee8cc1Swenshuai.xi #define IIOCSETVER  _IO('I',10)
33*53ee8cc1Swenshuai.xi #define IIOCNETHUP  _IO('I',11)
34*53ee8cc1Swenshuai.xi #define IIOCSETGST  _IO('I',12)
35*53ee8cc1Swenshuai.xi #define IIOCSETBRJ  _IO('I',13)
36*53ee8cc1Swenshuai.xi #define IIOCSIGPRF  _IO('I',14)
37*53ee8cc1Swenshuai.xi #define IIOCGETPRF  _IO('I',15)
38*53ee8cc1Swenshuai.xi #define IIOCSETPRF  _IO('I',16)
39*53ee8cc1Swenshuai.xi #define IIOCGETMAP  _IO('I',17)
40*53ee8cc1Swenshuai.xi #define IIOCSETMAP  _IO('I',18)
41*53ee8cc1Swenshuai.xi #define IIOCNETASL  _IO('I',19)
42*53ee8cc1Swenshuai.xi #define IIOCNETDIL  _IO('I',20)
43*53ee8cc1Swenshuai.xi #define IIOCGETCPS  _IO('I',21)
44*53ee8cc1Swenshuai.xi #define IIOCGETDVR  _IO('I',22)
45*53ee8cc1Swenshuai.xi #define IIOCNETLCR  _IO('I',23) /* dwabc ioctl for LCR from isdnlog */
46*53ee8cc1Swenshuai.xi #define IIOCNETDWRSET  _IO('I',24) /* dwabc ioctl to reset abc-values to default on a net-interface */
47*53ee8cc1Swenshuai.xi 
48*53ee8cc1Swenshuai.xi #define IIOCNETALN  _IO('I',32)
49*53ee8cc1Swenshuai.xi #define IIOCNETDLN  _IO('I',33)
50*53ee8cc1Swenshuai.xi 
51*53ee8cc1Swenshuai.xi #define IIOCNETGPN  _IO('I',34)
52*53ee8cc1Swenshuai.xi 
53*53ee8cc1Swenshuai.xi #define IIOCDBGVAR  _IO('I',127)
54*53ee8cc1Swenshuai.xi 
55*53ee8cc1Swenshuai.xi #define IIOCDRVCTL  _IO('I',128)
56*53ee8cc1Swenshuai.xi 
57*53ee8cc1Swenshuai.xi /* cisco hdlck device private ioctls */
58*53ee8cc1Swenshuai.xi #define SIOCGKEEPPERIOD	(SIOCDEVPRIVATE + 0)
59*53ee8cc1Swenshuai.xi #define SIOCSKEEPPERIOD	(SIOCDEVPRIVATE + 1)
60*53ee8cc1Swenshuai.xi #define SIOCGDEBSERINT	(SIOCDEVPRIVATE + 2)
61*53ee8cc1Swenshuai.xi #define SIOCSDEBSERINT	(SIOCDEVPRIVATE + 3)
62*53ee8cc1Swenshuai.xi 
63*53ee8cc1Swenshuai.xi /* Packet encapsulations for net-interfaces */
64*53ee8cc1Swenshuai.xi #define ISDN_NET_ENCAP_ETHER      0
65*53ee8cc1Swenshuai.xi #define ISDN_NET_ENCAP_RAWIP      1
66*53ee8cc1Swenshuai.xi #define ISDN_NET_ENCAP_IPTYP      2
67*53ee8cc1Swenshuai.xi #define ISDN_NET_ENCAP_CISCOHDLC  3 /* Without SLARP and keepalive */
68*53ee8cc1Swenshuai.xi #define ISDN_NET_ENCAP_SYNCPPP    4
69*53ee8cc1Swenshuai.xi #define ISDN_NET_ENCAP_UIHDLC     5
70*53ee8cc1Swenshuai.xi #define ISDN_NET_ENCAP_CISCOHDLCK 6 /* With SLARP and keepalive    */
71*53ee8cc1Swenshuai.xi #define ISDN_NET_ENCAP_X25IFACE   7 /* Documentation/networking/x25-iface.txt*/
72*53ee8cc1Swenshuai.xi #define ISDN_NET_ENCAP_MAX_ENCAP  ISDN_NET_ENCAP_X25IFACE
73*53ee8cc1Swenshuai.xi 
74*53ee8cc1Swenshuai.xi /* Facility which currently uses an ISDN-channel */
75*53ee8cc1Swenshuai.xi #define ISDN_USAGE_NONE       0
76*53ee8cc1Swenshuai.xi #define ISDN_USAGE_RAW        1
77*53ee8cc1Swenshuai.xi #define ISDN_USAGE_MODEM      2
78*53ee8cc1Swenshuai.xi #define ISDN_USAGE_NET        3
79*53ee8cc1Swenshuai.xi #define ISDN_USAGE_VOICE      4
80*53ee8cc1Swenshuai.xi #define ISDN_USAGE_FAX        5
81*53ee8cc1Swenshuai.xi #define ISDN_USAGE_MASK       7 /* Mask to get plain usage */
82*53ee8cc1Swenshuai.xi #define ISDN_USAGE_DISABLED  32 /* This bit is set, if channel is disabled */
83*53ee8cc1Swenshuai.xi #define ISDN_USAGE_EXCLUSIVE 64 /* This bit is set, if channel is exclusive */
84*53ee8cc1Swenshuai.xi #define ISDN_USAGE_OUTGOING 128 /* This bit is set, if channel is outgoing  */
85*53ee8cc1Swenshuai.xi 
86*53ee8cc1Swenshuai.xi #define ISDN_MODEM_NUMREG    24        /* Number of Modem-Registers        */
87*53ee8cc1Swenshuai.xi #define ISDN_LMSNLEN         255 /* Length of tty's Listen-MSN string */
88*53ee8cc1Swenshuai.xi #define ISDN_CMSGLEN	     50	 /* Length of CONNECT-Message to add for Modem */
89*53ee8cc1Swenshuai.xi 
90*53ee8cc1Swenshuai.xi #define ISDN_MSNLEN          32
91*53ee8cc1Swenshuai.xi #define NET_DV 0x06  /* Data version for isdn_net_ioctl_cfg   */
92*53ee8cc1Swenshuai.xi #define TTY_DV 0x06  /* Data version for iprofd etc.          */
93*53ee8cc1Swenshuai.xi 
94*53ee8cc1Swenshuai.xi #define INF_DV 0x01  /* Data version for /dev/isdninfo        */
95*53ee8cc1Swenshuai.xi 
96*53ee8cc1Swenshuai.xi typedef struct {
97*53ee8cc1Swenshuai.xi   char drvid[25];
98*53ee8cc1Swenshuai.xi   unsigned long arg;
99*53ee8cc1Swenshuai.xi } isdn_ioctl_struct;
100*53ee8cc1Swenshuai.xi 
101*53ee8cc1Swenshuai.xi typedef struct {
102*53ee8cc1Swenshuai.xi   char name[10];
103*53ee8cc1Swenshuai.xi   char phone[ISDN_MSNLEN];
104*53ee8cc1Swenshuai.xi   int  outgoing;
105*53ee8cc1Swenshuai.xi } isdn_net_ioctl_phone;
106*53ee8cc1Swenshuai.xi 
107*53ee8cc1Swenshuai.xi typedef struct {
108*53ee8cc1Swenshuai.xi   char name[10];     /* Name of interface                     */
109*53ee8cc1Swenshuai.xi   char master[10];   /* Name of Master for Bundling           */
110*53ee8cc1Swenshuai.xi   char slave[10];    /* Name of Slave for Bundling            */
111*53ee8cc1Swenshuai.xi   char eaz[256];     /* EAZ/MSN                               */
112*53ee8cc1Swenshuai.xi   char drvid[25];    /* DriverId for Bindings                 */
113*53ee8cc1Swenshuai.xi   int  onhtime;      /* Hangup-Timeout                        */
114*53ee8cc1Swenshuai.xi   int  charge;       /* Charge-Units                          */
115*53ee8cc1Swenshuai.xi   int  l2_proto;     /* Layer-2 protocol                      */
116*53ee8cc1Swenshuai.xi   int  l3_proto;     /* Layer-3 protocol                      */
117*53ee8cc1Swenshuai.xi   int  p_encap;      /* Encapsulation                         */
118*53ee8cc1Swenshuai.xi   int  exclusive;    /* Channel, if bound exclusive           */
119*53ee8cc1Swenshuai.xi   int  dialmax;      /* Dial Retry-Counter                    */
120*53ee8cc1Swenshuai.xi   int  slavedelay;   /* Delay until slave starts up           */
121*53ee8cc1Swenshuai.xi   int  cbdelay;      /* Delay before Callback                 */
122*53ee8cc1Swenshuai.xi   int  chargehup;    /* Flag: Charge-Hangup                   */
123*53ee8cc1Swenshuai.xi   int  ihup;         /* Flag: Hangup-Timeout on incoming line */
124*53ee8cc1Swenshuai.xi   int  secure;       /* Flag: Secure                          */
125*53ee8cc1Swenshuai.xi   int  callback;     /* Flag: Callback                        */
126*53ee8cc1Swenshuai.xi   int  cbhup;        /* Flag: Reject Call before Callback     */
127*53ee8cc1Swenshuai.xi   int  pppbind;      /* ippp device for bindings              */
128*53ee8cc1Swenshuai.xi   int  chargeint;    /* Use fixed charge interval length      */
129*53ee8cc1Swenshuai.xi   int  triggercps;   /* BogoCPS needed for triggering slave   */
130*53ee8cc1Swenshuai.xi   int  dialtimeout;  /* Dial-Timeout                          */
131*53ee8cc1Swenshuai.xi   int  dialwait;     /* Time to wait after failed dial        */
132*53ee8cc1Swenshuai.xi   int  dialmode;     /* Flag: off / on / auto                 */
133*53ee8cc1Swenshuai.xi } isdn_net_ioctl_cfg;
134*53ee8cc1Swenshuai.xi 
135*53ee8cc1Swenshuai.xi #define ISDN_NET_DIALMODE_MASK  0xC0    /* bits for status                */
136*53ee8cc1Swenshuai.xi #define ISDN_NET_DM_OFF	        0x00    /* this interface is stopped      */
137*53ee8cc1Swenshuai.xi #define ISDN_NET_DM_MANUAL	0x40    /* this interface is on (manual)  */
138*53ee8cc1Swenshuai.xi #define ISDN_NET_DM_AUTO	0x80    /* this interface is autodial     */
139*53ee8cc1Swenshuai.xi #define ISDN_NET_DIALMODE(x) ((&(x))->flags & ISDN_NET_DIALMODE_MASK)
140*53ee8cc1Swenshuai.xi 
141*53ee8cc1Swenshuai.xi 
142*53ee8cc1Swenshuai.xi #endif /* __ISDN_H__ */
143