isdn.h 5.6 KB

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