⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 isdn.h

📁 linux 内核源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* $Id: isdn.h,v 1.125.2.3 2004/02/10 01:07:14 keil Exp $ * * Main header for the Linux ISDN subsystem (linklevel). * * Copyright 1994,95,96 by Fritz Elfert (fritz@isdn4linux.de) * Copyright 1995,96    by Thinking Objects Software GmbH Wuerzburg * Copyright 1995,96    by Michael Hipp (Michael.Hipp@student.uni-tuebingen.de) *  * This software may be used and distributed according to the terms * of the GNU General Public License, incorporated herein by reference. * */#ifndef __ISDN_H__#define __ISDN_H__#include <linux/ioctl.h>#ifdef CONFIG_COBALT_MICRO_SERVER/* Save memory */#define ISDN_MAX_DRIVERS    2#define ISDN_MAX_CHANNELS   8#else#define ISDN_MAX_DRIVERS    32#define ISDN_MAX_CHANNELS   64#endif/* New ioctl-codes */#define IIOCNETAIF  _IO('I',1)#define IIOCNETDIF  _IO('I',2)#define IIOCNETSCF  _IO('I',3)#define IIOCNETGCF  _IO('I',4)#define IIOCNETANM  _IO('I',5)#define IIOCNETDNM  _IO('I',6)#define IIOCNETGNM  _IO('I',7)#define IIOCGETSET  _IO('I',8) /* no longer supported */#define IIOCSETSET  _IO('I',9) /* no longer supported */#define IIOCSETVER  _IO('I',10)#define IIOCNETHUP  _IO('I',11)#define IIOCSETGST  _IO('I',12)#define IIOCSETBRJ  _IO('I',13)#define IIOCSIGPRF  _IO('I',14)#define IIOCGETPRF  _IO('I',15)#define IIOCSETPRF  _IO('I',16)#define IIOCGETMAP  _IO('I',17)#define IIOCSETMAP  _IO('I',18)#define IIOCNETASL  _IO('I',19)#define IIOCNETDIL  _IO('I',20)#define IIOCGETCPS  _IO('I',21)#define IIOCGETDVR  _IO('I',22)#define IIOCNETLCR  _IO('I',23) /* dwabc ioctl for LCR from isdnlog */#define IIOCNETDWRSET  _IO('I',24) /* dwabc ioctl to reset abc-values to default on a net-interface */#define IIOCNETALN  _IO('I',32)#define IIOCNETDLN  _IO('I',33)#define IIOCNETGPN  _IO('I',34)#define IIOCDBGVAR  _IO('I',127)#define IIOCDRVCTL  _IO('I',128)/* cisco hdlck device private ioctls */#define SIOCGKEEPPERIOD	(SIOCDEVPRIVATE + 0)#define SIOCSKEEPPERIOD	(SIOCDEVPRIVATE + 1)#define SIOCGDEBSERINT	(SIOCDEVPRIVATE + 2)#define SIOCSDEBSERINT	(SIOCDEVPRIVATE + 3)/* Packet encapsulations for net-interfaces */#define ISDN_NET_ENCAP_ETHER      0#define ISDN_NET_ENCAP_RAWIP      1#define ISDN_NET_ENCAP_IPTYP      2#define ISDN_NET_ENCAP_CISCOHDLC  3 /* Without SLARP and keepalive */#define ISDN_NET_ENCAP_SYNCPPP    4#define ISDN_NET_ENCAP_UIHDLC     5#define ISDN_NET_ENCAP_CISCOHDLCK 6 /* With SLARP and keepalive    */#define ISDN_NET_ENCAP_X25IFACE   7 /* Documentation/networking/x25-iface.txt*/#define ISDN_NET_ENCAP_MAX_ENCAP  ISDN_NET_ENCAP_X25IFACE/* Facility which currently uses an ISDN-channel */#define ISDN_USAGE_NONE       0#define ISDN_USAGE_RAW        1#define ISDN_USAGE_MODEM      2#define ISDN_USAGE_NET        3#define ISDN_USAGE_VOICE      4#define ISDN_USAGE_FAX        5#define ISDN_USAGE_MASK       7 /* Mask to get plain usage */#define ISDN_USAGE_DISABLED  32 /* This bit is set, if channel is disabled */#define ISDN_USAGE_EXCLUSIVE 64 /* This bit is set, if channel is exclusive */#define ISDN_USAGE_OUTGOING 128 /* This bit is set, if channel is outgoing  */#define ISDN_MODEM_NUMREG    24        /* Number of Modem-Registers        */#define ISDN_LMSNLEN         255 /* Length of tty's Listen-MSN string */#define ISDN_CMSGLEN	     50	 /* Length of CONNECT-Message to add for Modem */#define ISDN_MSNLEN          32#define NET_DV 0x06  /* Data version for isdn_net_ioctl_cfg   */#define TTY_DV 0x06  /* Data version for iprofd etc.          */#define INF_DV 0x01  /* Data version for /dev/isdninfo        */typedef struct {  char drvid[25];  unsigned long arg;} isdn_ioctl_struct;typedef struct {  char name[10];  char phone[ISDN_MSNLEN];  int  outgoing;} isdn_net_ioctl_phone;typedef struct {  char name[10];     /* Name of interface                     */  char master[10];   /* Name of Master for Bundling           */  char slave[10];    /* Name of Slave for Bundling            */  char eaz[256];     /* EAZ/MSN                               */  char drvid[25];    /* DriverId for Bindings                 */  int  onhtime;      /* Hangup-Timeout                        */  int  charge;       /* Charge-Units                          */  int  l2_proto;     /* Layer-2 protocol                      */  int  l3_proto;     /* Layer-3 protocol                      */  int  p_encap;      /* Encapsulation                         */  int  exclusive;    /* Channel, if bound exclusive           */  int  dialmax;      /* Dial Retry-Counter                    */  int  slavedelay;   /* Delay until slave starts up           */  int  cbdelay;      /* Delay before Callback                 */  int  chargehup;    /* Flag: Charge-Hangup                   */  int  ihup;         /* Flag: Hangup-Timeout on incoming line */  int  secure;       /* Flag: Secure                          */  int  callback;     /* Flag: Callback                        */  int  cbhup;        /* Flag: Reject Call before Callback     */  int  pppbind;      /* ippp device for bindings              */  int  chargeint;    /* Use fixed charge interval length      */  int  triggercps;   /* BogoCPS needed for triggering slave   */  int  dialtimeout;  /* Dial-Timeout                          */  int  dialwait;     /* Time to wait after failed dial        */  int  dialmode;     /* Flag: off / on / auto                 */} isdn_net_ioctl_cfg;#define ISDN_NET_DIALMODE_MASK  0xC0    /* bits for status                */#define ISDN_NET_DM_OFF	        0x00    /* this interface is stopped      */#define ISDN_NET_DM_MANUAL	0x40    /* this interface is on (manual)  */#define ISDN_NET_DM_AUTO	0x80    /* this interface is autodial     */#define ISDN_NET_DIALMODE(x) ((&(x))->flags & ISDN_NET_DIALMODE_MASK)#ifdef __KERNEL__#include <linux/errno.h>#include <linux/fs.h>#include <linux/major.h>#include <asm/io.h>#include <linux/kernel.h>#include <linux/signal.h>#include <linux/slab.h>#include <linux/timer.h>#include <linux/wait.h>#include <linux/tty.h>#include <linux/tty_flip.h>#include <linux/serial_reg.h>#include <linux/fcntl.h>#include <linux/types.h>#include <linux/interrupt.h>#include <linux/ip.h>#include <linux/in.h>#include <linux/netdevice.h>#include <linux/etherdevice.h>#include <linux/skbuff.h>#include <linux/tcp.h>#include <linux/mutex.h>#define ISDN_TTY_MAJOR    43#define ISDN_TTYAUX_MAJOR 44#define ISDN_MAJOR        45/* The minor-devicenumbers for Channel 0 and 1 are used as arguments for * physical Channel-Mapping, so they MUST NOT be changed without changing * the correspondent code in isdn.c */#define ISDN_MINOR_B        0#define ISDN_MINOR_BMAX     (ISDN_MAX_CHANNELS-1)#define ISDN_MINOR_CTRL     64#define ISDN_MINOR_CTRLMAX  (64 + (ISDN_MAX_CHANNELS-1))#define ISDN_MINOR_PPP      128#define ISDN_MINOR_PPPMAX   (128 + (ISDN_MAX_CHANNELS-1))#define ISDN_MINOR_STATUS   255#ifdef CONFIG_ISDN_PPP#ifdef CONFIG_ISDN_PPP_VJ#  include <net/slhc_vj.h>#endif#include <linux/ppp_defs.h>#include <linux/if_ppp.h>#include <linux/isdn_ppp.h>#endif#ifdef CONFIG_ISDN_X25#  include <linux/concap.h>#endif#include <linux/isdnif.h>#define ISDN_DRVIOCTL_MASK       0x7f  /* Mask for Device-ioctl *//* Until now unused */#define ISDN_SERVICE_VOICE 1#define ISDN_SERVICE_AB    1<<1 #define ISDN_SERVICE_X21   1<<2#define ISDN_SERVICE_G4    1<<3#define ISDN_SERVICE_BTX   1<<4#define ISDN_SERVICE_DFUE  1<<5#define ISDN_SERVICE_X25   1<<6#define ISDN_SERVICE_TTX   1<<7#define ISDN_SERVICE_MIXED 1<<8#define ISDN_SERVICE_FW    1<<9#define ISDN_SERVICE_GTEL  1<<10#define ISDN_SERVICE_BTXN  1<<11#define ISDN_SERVICE_BTEL  1<<12/* Macros checking plain usage */#define USG_NONE(x)         ((x & ISDN_USAGE_MASK)==ISDN_USAGE_NONE)#define USG_RAW(x)          ((x & ISDN_USAGE_MASK)==ISDN_USAGE_RAW)#define USG_MODEM(x)        ((x & ISDN_USAGE_MASK)==ISDN_USAGE_MODEM)#define USG_VOICE(x)        ((x & ISDN_USAGE_MASK)==ISDN_USAGE_VOICE)#define USG_NET(x)          ((x & ISDN_USAGE_MASK)==ISDN_USAGE_NET)#define USG_FAX(x)          ((x & ISDN_USAGE_MASK)==ISDN_USAGE_FAX)#define USG_OUTGOING(x)     ((x & ISDN_USAGE_OUTGOING)==ISDN_USAGE_OUTGOING)#define USG_MODEMORVOICE(x) (((x & ISDN_USAGE_MASK)==ISDN_USAGE_MODEM) || \                             ((x & ISDN_USAGE_MASK)==ISDN_USAGE_VOICE)     )/* Timer-delays and scheduling-flags */#define ISDN_TIMER_RES         4                         /* Main Timer-Resolution   */#define ISDN_TIMER_02SEC       (HZ/ISDN_TIMER_RES/5)     /* Slow-Timer1 .2 sec      */#define ISDN_TIMER_1SEC        (HZ/ISDN_TIMER_RES)       /* Slow-Timer2 1 sec       */#define ISDN_TIMER_RINGING     5 /* tty RINGs = ISDN_TIMER_1SEC * this factor       */#define ISDN_TIMER_KEEPINT    10 /* Cisco-Keepalive = ISDN_TIMER_1SEC * this factor */#define ISDN_TIMER_MODEMREAD   1#define ISDN_TIMER_MODEMPLUS   2#define ISDN_TIMER_MODEMRING   4#define ISDN_TIMER_MODEMXMIT   8#define ISDN_TIMER_NETDIAL    16 #define ISDN_TIMER_NETHANGUP  32#define ISDN_TIMER_CARRIER   256 /* Wait for Carrier */#define ISDN_TIMER_FAST      (ISDN_TIMER_MODEMREAD | ISDN_TIMER_MODEMPLUS | \                              ISDN_TIMER_MODEMXMIT)#define ISDN_TIMER_SLOW      (ISDN_TIMER_MODEMRING | ISDN_TIMER_NETHANGUP | \                              ISDN_TIMER_NETDIAL | ISDN_TIMER_CARRIER)/* Timeout-Values for isdn_net_dial() */#define ISDN_TIMER_DTIMEOUT10 (10*HZ/(ISDN_TIMER_02SEC*(ISDN_TIMER_RES+1)))#define ISDN_TIMER_DTIMEOUT15 (15*HZ/(ISDN_TIMER_02SEC*(ISDN_TIMER_RES+1)))#define ISDN_TIMER_DTIMEOUT60 (60*HZ/(ISDN_TIMER_02SEC*(ISDN_TIMER_RES+1)))/* GLOBAL_FLAGS */#define ISDN_GLOBAL_STOPPED 1/*=================== Start of ip-over-ISDN stuff =========================*//* Feature- and status-flags for a net-interface */#define ISDN_NET_CONNECTED  0x01       /* Bound to ISDN-Channel             */#define ISDN_NET_SECURE     0x02       /* Accept calls from phonelist only  */#define ISDN_NET_CALLBACK   0x04       /* activate callback                 */#define ISDN_NET_CBHUP      0x08       /* hangup before callback            */#define ISDN_NET_CBOUT      0x10       /* remote machine does callback      */#define ISDN_NET_MAGIC      0x49344C02 /* for paranoia-checking             *//* Phone-list-element */typedef struct {  void *next;  char num[ISDN_MSNLEN];} isdn_net_phone;/*   Principles when extending structures for generic encapsulation protocol   ("concap") support:   - Stuff which is hardware specific (here i4l-specific) goes in      the netdev -> local structure (here: isdn_net_local)   - Stuff which is encapsulation protocol specific goes in the structure     which holds the linux device structure (here: isdn_net_device)*//* Local interface-data */typedef struct isdn_net_local_s {  ulong                  magic;  struct net_device_stats stats;       /* Ethernet Statistics              */  int                    isdn_device;  /* Index to isdn-device             */  int                    isdn_channel; /* Index to isdn-channel            */  int			 ppp_slot;     /* PPPD device slot number          */  int                    pre_device;   /* Preselected isdn-device          */  int                    pre_channel;  /* Preselected isdn-channel         */  int                    exclusive;    /* If non-zero idx to reserved chan.*/  int                    flags;        /* Connection-flags                 */  int                    dialretry;    /* Counter for Dialout-retries      */  int                    dialmax;      /* Max. Number of Dial-retries      */  int                    cbdelay;      /* Delay before Callback starts     */  int                    dtimer;       /* Timeout-counter for dialing      */  char                   msn[ISDN_MSNLEN]; /* MSNs/EAZs for this interface */  u_char                 cbhup;        /* Flag: Reject Call before Callback*/  u_char                 dialstate;    /* State for dialing                */  u_char                 p_encap;      /* Packet encapsulation             */                                       /*   0 = Ethernet over ISDN         */				       /*   1 = RAW-IP                     */                                       /*   2 = IP with type field         */  u_char                 l2_proto;     /* Layer-2-protocol                 */				       /* See ISDN_PROTO_L2..-constants in */                                       /* isdnif.h                         */                                       /*   0 = X75/LAPB with I-Frames     */				       /*   1 = X75/LAPB with UI-Frames    */				       /*   2 = X75/LAPB with BUI-Frames   */				       /*   3 = HDLC                       */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -