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