📄 isdn.h
字号:
#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; char name[10]; /* Name of device */ 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 */ 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 */ ulong 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 */ 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 net_device *master; /* Ptr to Master device for slaves */ struct net_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_head super_tx_queue; /* List of supervisory frames to */ /* be transmitted asap */ atomic_t frame_cnt; /* number of frames currently */ /* queued in HL driver */ /* Ptr to orig. hard_header_cache */ spinlock_t xmit_lock; /* used to protect the xmit path of */ /* a particular channel (including */ /* the frame_cnt */ int (*org_hhc)( struct neighbour *neigh, struct hh_cache *hh); /* Ptr to orig. header_cache_update */ void (*org_hcu)(struct hh_cache *, struct net_device *, unsigned char *); int pppbind; /* ippp device for bindings */ int dialtimeout; /* How long shall we try on dialing? (jiffies) */ int dialwait; /* How long shall we wait after failed attempt? (jiffies) */ ulong dialstarted; /* jiffies of first dialing-attempt */ ulong dialwait_timer; /* jiffies of earliest next dialing-attempt */ int huptimeout; /* How long will the connection be up? (seconds) */#ifdef CONFIG_ISDN_X25 struct concap_device_ops *dops; /* callbacks used by encapsulator */#endif /* use an own struct for that in later versions */ ulong cisco_myseq; /* Local keepalive seq. for Cisco */ ulong cisco_mineseen; /* returned keepalive seq. from remote */ ulong cisco_yourseq; /* Remote keepalive seq. for Cisco */ int cisco_keepalive_period; /* keepalive period */ ulong cisco_last_slarp_in; /* jiffie of last keepalive packet we received */ char cisco_line_state; /* state of line according to keepalive packets */ char cisco_debserint; /* debugging flag of cisco hdlc with slarp */ struct timer_list cisco_timer; struct tq_struct tqueue;} isdn_net_local;/* the interface itself */typedef struct isdn_net_dev_s { isdn_net_local *local; isdn_net_local *queue; /* circular list of all bundled channels, which are currently online */ spinlock_t queue_lock; /* lock to protect queue */ void *next; /* Pointer to next isdn-interface */ struct net_device dev; /* interface to upper levels */#ifdef CONFIG_ISDN_PPP ippp_bundle * pb; /* pointer to the common bundle structure * with the per-bundle data */#endif#ifdef CONFIG_ISDN_X25 struct concap_proto *cprot; /* connection oriented encapsulation protocol */#endif} isdn_net_dev;/*===================== End of ip-over-ISDN stuff ===========================*//*======================= Start of ISDN-tty stuff ===========================*/#define ISDN_ASYNC_MAGIC 0x49344C01 /* for paranoia-checking */#define ISDN_ASYNC_INITIALIZED 0x80000000 /* port was initialized */#define ISDN_ASYNC_CALLOUT_ACTIVE 0x40000000 /* Call out device active */#define ISDN_ASYNC_NORMAL_ACTIVE 0x20000000 /* Normal device active */#define ISDN_ASYNC_CLOSING 0x08000000 /* Serial port is closing */#define ISDN_ASYNC_CTS_FLOW 0x04000000 /* Do CTS flow control */#define ISDN_ASYNC_CHECK_CD 0x02000000 /* i.e., CLOCAL */#define ISDN_ASYNC_HUP_NOTIFY 0x0001 /* Notify tty on hangups/closes */#define ISDN_ASYNC_SESSION_LOCKOUT 0x0100 /* Lock cua opens on session */#define ISDN_ASYNC_PGRP_LOCKOUT 0x0200 /* Lock cua opens on pgrp */#define ISDN_ASYNC_CALLOUT_NOHUP 0x0400 /* No hangup for cui */#define ISDN_ASYNC_SPLIT_TERMIOS 0x0008 /* Sep. termios for dialin/out */#define ISDN_SERIAL_XMIT_SIZE 1024 /* Default bufsize for write */#define ISDN_SERIAL_XMIT_MAX 4000 /* Maximum bufsize for write */#define ISDN_SERIAL_TYPE_NORMAL 1#define ISDN_SERIAL_TYPE_CALLOUT 2#ifdef CONFIG_ISDN_AUDIO/* For using sk_buffs with audio we need some private variables * within each sk_buff. For this purpose, we declare a struct here, * and put it always at skb->head. A few macros help accessing the
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -