📄 isdn.h
字号:
#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 + -