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

📄 isdn.h

📁 基于组件方式开发操作系统的OSKIT源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
#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)/* 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_ANZREG    24        /* Number of Modem-Registers        */#define ISDN_MSNLEN          20#define ISDN_LMSNLEN         255 /* Length of tty's Listen-MSN string */#define ISDN_CMSGLEN	     50	 /* Length of CONNECT-Message to add for Modem */typedef struct {  char drvid[25];  unsigned long arg;} isdn_ioctl_struct;typedef struct {  unsigned long isdndev;  unsigned long atmodem[ISDN_MAX_CHANNELS];  unsigned long info[ISDN_MAX_CHANNELS];} debugvar_addr;typedef struct {  char name[10];  char phone[ISDN_MSNLEN];  int  outgoing;} isdn_net_ioctl_phone;#define NET_DV 0x05  /* Data version for isdn_net_ioctl_cfg   */#define TTY_DV 0x05  /* Data version for iprofd etc.          */#define INF_DV 0x01  /* Data version for /dev/isdninfo        */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__#ifndef STANDALONE#include <linux/config.h>#endif#include <linux/errno.h>#include <linux/fs.h>#include <linux/major.h>#include <asm/segment.h>#include <asm/io.h>#include <linux/kernel.h>#include <linux/signal.h>#include <linux/malloc.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>#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/if_pppvar.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         3                         /* Main Timer-Resolution   */#define ISDN_TIMER_02SEC       (HZ/(ISDN_TIMER_RES+1)/5) /* Slow-Timer1 .2 sec      */#define ISDN_TIMER_1SEC        (HZ/(ISDN_TIMER_RES+1))   /* 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_IPPP       64 #define ISDN_TIMER_KEEPALIVE 128 /* Cisco-Keepalive */#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_KEEPALIVE | \                              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      */#if 0/* Unused??? */#define ISDN_NET_CLONE      0x08       /* clone a tmp interface when called */#define ISDN_NET_TMP        0x10       /* tmp interface until getting an IP */#define ISDN_NET_DYNAMIC    0x20       /* this link is dynamically allocated */#endif#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;  char                   name[10];     /* Name of device                   */  struct enet_statistics 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                       */  u_char                 l3_proto;     /* Layer-3-protocol                 */				       /* See ISDN_PROTO_L3..-constants in */                                       /* isdnif.h                         */                                       /*   0 = Transparent                */  int                    huptimer;     /* Timeout-counter for auto-hangup  */  int                    charge;       /* Counter for charging units       */  int                    chargetime;   /* Timer for Charging info          */  int                    hupflags;     /* Flags for charge-unit-hangup:    */				       /* bit0: chargeint is invalid       */				       /* bit1: Getting charge-interval    */                                       /* bit2: Do charge-unit-hangup      */                                       /* bit3: Do hangup even on incoming */  int                    outgoing;     /* Flag: outgoing call              */  int                    onhtime;      /* Time to keep link up             */  int                    chargeint;    /* Interval between charge-infos    */  int                    onum;         /* Flag: at least 1 outgoing number */  int                    cps;          /* current speed of this interface  */  int                    transcount;   /* byte-counter for cps-calculation */  int                    sqfull;       /* Flag: netdev-queue overloaded    */  ulong                  sqfull_stamp; /* Start-Time of overload           */  ulong                  slavedelay;   /* Dynamic bundling delaytime       */  int                    triggercps;   /* BogoCPS needed for trigger slave */  struct device          *srobin;      /* Ptr to Master device for slaves  */  isdn_net_phone         *phone[2];    /* List of remote-phonenumbers      */				       /* phone[0] = Incoming Numbers      */				       /* phone[1] = Outgoing Numbers      */  isdn_net_phone         *dial;        /* Pointer to dialed number         */  struct device          *master;      /* Ptr to Master device for slaves  */  struct device          *slave;       /* Ptr to Slave device for masters  */  struct isdn_net_local_s *next;       /* Ptr to next link in bundle       */  struct isdn_net_local_s *last;       /* Ptr to last link in bundle       */  struct isdn_net_dev_s  *netdev;      /* Ptr to netdev                    */  struct sk_buff         *first_skb;   /* Ptr to skb that triggers dialing */  struct sk_buff         *sav_skb;     /* Ptr to skb, rejected by LL-driver*/                                       /* Ptr to orig. hard_header_cache   */  int                    (*org_hhc)(				    struct neighbour *neigh,				    struct hh_cache *hh);                                       /* Ptr to orig. header_cache_update */  void                   (*org_hcu)(struct hh_cache *,				    struct device *,                                    unsigned char *);

⌨️ 快捷键说明

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