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