130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* $Id: isdn.h,v 1.125.2.3 2004/02/10 01:07:14 keil Exp $ 230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Main header for the Linux ISDN subsystem (linklevel). 430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Copyright 1994,95,96 by Fritz Elfert (fritz@isdn4linux.de) 630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Copyright 1995,96 by Thinking Objects Software GmbH Wuerzburg 730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Copyright 1995,96 by Michael Hipp (Michael.Hipp@student.uni-tuebingen.de) 830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * This software may be used and distributed according to the terms 1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * of the GNU General Public License, incorporated herein by reference. 1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _UAPI__ISDN_H__ 1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _UAPI__ISDN_H__ 1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/ioctl.h> 1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/tty.h> 1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_MAX_DRIVERS 32 2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_MAX_CHANNELS 64 2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* New ioctl-codes */ 2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCNETAIF _IO('I',1) 2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCNETDIF _IO('I',2) 2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCNETSCF _IO('I',3) 2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCNETGCF _IO('I',4) 2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCNETANM _IO('I',5) 2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCNETDNM _IO('I',6) 3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCNETGNM _IO('I',7) 3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCGETSET _IO('I',8) /* no longer supported */ 3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCSETSET _IO('I',9) /* no longer supported */ 3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCSETVER _IO('I',10) 3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCNETHUP _IO('I',11) 3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCSETGST _IO('I',12) 3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCSETBRJ _IO('I',13) 3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCSIGPRF _IO('I',14) 3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCGETPRF _IO('I',15) 3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCSETPRF _IO('I',16) 4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCGETMAP _IO('I',17) 4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCSETMAP _IO('I',18) 4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCNETASL _IO('I',19) 4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCNETDIL _IO('I',20) 4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCGETCPS _IO('I',21) 4530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCGETDVR _IO('I',22) 4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCNETLCR _IO('I',23) /* dwabc ioctl for LCR from isdnlog */ 4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCNETDWRSET _IO('I',24) /* dwabc ioctl to reset abc-values to default on a net-interface */ 4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCNETALN _IO('I',32) 5030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCNETDLN _IO('I',33) 5130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 5230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCNETGPN _IO('I',34) 5330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 5430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCDBGVAR _IO('I',127) 5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 5630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IIOCDRVCTL _IO('I',128) 5730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 5830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* cisco hdlck device private ioctls */ 5930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SIOCGKEEPPERIOD (SIOCDEVPRIVATE + 0) 6030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SIOCSKEEPPERIOD (SIOCDEVPRIVATE + 1) 6130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SIOCGDEBSERINT (SIOCDEVPRIVATE + 2) 6230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SIOCSDEBSERINT (SIOCDEVPRIVATE + 3) 6330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Packet encapsulations for net-interfaces */ 6530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_NET_ENCAP_ETHER 0 6630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_NET_ENCAP_RAWIP 1 6730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_NET_ENCAP_IPTYP 2 6830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_NET_ENCAP_CISCOHDLC 3 /* Without SLARP and keepalive */ 6930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_NET_ENCAP_SYNCPPP 4 7030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_NET_ENCAP_UIHDLC 5 7130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_NET_ENCAP_CISCOHDLCK 6 /* With SLARP and keepalive */ 7230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_NET_ENCAP_X25IFACE 7 /* Documentation/networking/x25-iface.txt */ 7330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_NET_ENCAP_MAX_ENCAP ISDN_NET_ENCAP_X25IFACE 7430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 7530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Facility which currently uses an ISDN-channel */ 7630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_USAGE_NONE 0 7730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_USAGE_RAW 1 7830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_USAGE_MODEM 2 7930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_USAGE_NET 3 8030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_USAGE_VOICE 4 8130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_USAGE_FAX 5 8230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_USAGE_MASK 7 /* Mask to get plain usage */ 8330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_USAGE_DISABLED 32 /* This bit is set, if channel is disabled */ 8430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_USAGE_EXCLUSIVE 64 /* This bit is set, if channel is exclusive */ 8530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_USAGE_OUTGOING 128 /* This bit is set, if channel is outgoing */ 8630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 8730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_MODEM_NUMREG 24 /* Number of Modem-Registers */ 8830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_LMSNLEN 255 /* Length of tty's Listen-MSN string */ 8930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_CMSGLEN 50 /* Length of CONNECT-Message to add for Modem */ 9030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 9130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_MSNLEN 32 9230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NET_DV 0x06 /* Data version for isdn_net_ioctl_cfg */ 9330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define TTY_DV 0x06 /* Data version for iprofd etc. */ 9430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 9530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define INF_DV 0x01 /* Data version for /dev/isdninfo */ 9630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 9730692c65c4174412c90e79489e98ab85c1a7412fBen Chengtypedef struct { 9830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char drvid[25]; 9930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned long arg; 10030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng} isdn_ioctl_struct; 10130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 10230692c65c4174412c90e79489e98ab85c1a7412fBen Chengtypedef struct { 10330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char name[10]; 10430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char phone[ISDN_MSNLEN]; 10530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int outgoing; 10630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng} isdn_net_ioctl_phone; 10730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 10830692c65c4174412c90e79489e98ab85c1a7412fBen Chengtypedef struct { 10930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char name[10]; /* Name of interface */ 11030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char master[10]; /* Name of Master for Bundling */ 11130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char slave[10]; /* Name of Slave for Bundling */ 11230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char eaz[256]; /* EAZ/MSN */ 11330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char drvid[25]; /* DriverId for Bindings */ 11430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int onhtime; /* Hangup-Timeout */ 11530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int charge; /* Charge-Units */ 11630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int l2_proto; /* Layer-2 protocol */ 11730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int l3_proto; /* Layer-3 protocol */ 11830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int p_encap; /* Encapsulation */ 11930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int exclusive; /* Channel, if bound exclusive */ 12030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int dialmax; /* Dial Retry-Counter */ 12130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int slavedelay; /* Delay until slave starts up */ 12230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int cbdelay; /* Delay before Callback */ 12330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int chargehup; /* Flag: Charge-Hangup */ 12430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int ihup; /* Flag: Hangup-Timeout on incoming line */ 12530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int secure; /* Flag: Secure */ 12630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int callback; /* Flag: Callback */ 12730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int cbhup; /* Flag: Reject Call before Callback */ 12830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int pppbind; /* ippp device for bindings */ 12930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int chargeint; /* Use fixed charge interval length */ 13030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int triggercps; /* BogoCPS needed for triggering slave */ 13130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int dialtimeout; /* Dial-Timeout */ 13230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int dialwait; /* Time to wait after failed dial */ 13330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int dialmode; /* Flag: off / on / auto */ 13430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng} isdn_net_ioctl_cfg; 13530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 13630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_NET_DIALMODE_MASK 0xC0 /* bits for status */ 13730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_NET_DM_OFF 0x00 /* this interface is stopped */ 13830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_NET_DM_MANUAL 0x40 /* this interface is on (manual) */ 13930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_NET_DM_AUTO 0x80 /* this interface is autodial */ 14030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISDN_NET_DIALMODE(x) ((&(x))->flags & ISDN_NET_DIALMODE_MASK) 14130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 14230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 14330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* _UAPI__ISDN_H__ */ 144