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