📄 isdn.h
字号:
#else#define ISDN_MAX_DRIVERS 32#define ISDN_MAX_CHANNELS 64#endif#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#undef CONFIG_ISDN_WITH_ABC_CALLB#undef CONFIG_ISDN_WITH_ABC_UDP_CHECK#undef CONFIG_ISDN_WITH_ABC_UDP_CHECK_HANGUP#undef CONFIG_ISDN_WITH_ABC_UDP_CHECK_DIAL#undef CONFIG_ISDN_WITH_ABC_OUTGOING_EAZ#undef CONFIG_ISDN_WITH_ABC_LCR_SUPPORT#undef CONFIG_ISDN_WITH_ABC_IPV4_TCP_KEEPALIVE#undef CONFIG_ISDN_WITH_ABC_IPV4_DYNADDR#undef CONFIG_ISDN_WITH_ABC_RCV_NO_HUPTIMER#undef CONFIG_ISDN_WITH_ABC_ICALL_BIND/* 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 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_LMSNLEN 255 /* Length of tty's Listen-MSN string */#define ISDN_CMSGLEN 50 /* Length of CONNECT-Message to add for Modem */#define ISDN_MSNLEN 20#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 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;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/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 */#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 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -