linux/include/uapi/linux/isdn.h
<<
>>
Prefs
   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__ */
 145