• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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  
98  typedef struct {
99    char drvid[25];
100    unsigned long arg;
101  } isdn_ioctl_struct;
102  
103  typedef struct {
104    char name[10];
105    char phone[ISDN_MSNLEN];
106    int  outgoing;
107  } isdn_net_ioctl_phone;
108  
109  typedef 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__ */
145