📄 hisax.h
字号:
signed int isac; signed int hscx[2]; signed int isacfifo; signed int hscxfifo[2];};struct teles0_hw { unsigned int cfg_reg; unsigned int membase;};struct avm_hw { unsigned int cfg_reg; unsigned int isac; unsigned int hscx[2]; unsigned int isacfifo; unsigned int hscxfifo[2]; unsigned int counter;};struct ix1_hw { unsigned int cfg_reg; unsigned int isac_ale; unsigned int isac; unsigned int hscx_ale; unsigned int hscx;};struct diva_hw { unsigned int cfg_reg; unsigned int ctrl; unsigned int isac_adr; unsigned int isac; unsigned int hscx_adr; unsigned int hscx; unsigned int status; struct timer_list tl; u_char ctrl_reg;};struct asus_hw { unsigned int cfg_reg; unsigned int adr; unsigned int isac; unsigned int hscx; unsigned int u7; unsigned int pots;};struct hfc_hw { unsigned int addr; unsigned int fifosize; unsigned char cirm; unsigned char ctmt; unsigned char cip; u_char isac_spcr; struct timer_list timer;};struct sedl_hw { unsigned int cfg_reg; unsigned int adr; unsigned int isac; unsigned int hscx; unsigned int reset_on; unsigned int reset_off; struct isar_reg isar; unsigned int chip; unsigned int bus;};struct spt_hw { unsigned int cfg_reg; unsigned int isac; unsigned int hscx[2]; unsigned char res_irq;};struct mic_hw { unsigned int cfg_reg; unsigned int adr; unsigned int isac; unsigned int hscx;};struct njet_hw { unsigned int base; unsigned int isac; unsigned int auxa; unsigned char auxd; unsigned char dmactrl; unsigned char ctrl_reg; unsigned char irqmask0; unsigned char irqstat0; unsigned char last_is0;};struct hfcD_hw { unsigned int addr; unsigned int bfifosize; unsigned int dfifosize; unsigned char cirm; unsigned char ctmt; unsigned char cip; unsigned char conn; unsigned char mst_m; unsigned char int_m1; unsigned char int_m2; unsigned char int_s1; unsigned char sctrl; unsigned char stat; unsigned char fifo; unsigned char f1; unsigned char f2; unsigned int *send; struct timer_list timer;};#define HW_IOM1 0#define HW_IPAC 1#define HW_ISAR 2#define FLG_TWO_DCHAN 4#define FLG_L1_DBUSY 5#define FLG_DBUSY_TIMER 6#define FLG_LOCK_ATOMIC 7#define HW_MON0_RX_END 8#define HW_MON1_RX_END 9#define HW_MON0_TX_END 10#define HW_MON1_TX_END 11struct IsdnCardState { unsigned char typ; unsigned char subtyp; int protocol; unsigned int irq; int HW_Flags; int *busy_flag; union { struct elsa_hw elsa; struct teles0_hw teles0; struct teles3_hw teles3; struct avm_hw avm; struct ix1_hw ix1; struct diva_hw diva; struct asus_hw asus; struct hfc_hw hfc; struct sedl_hw sedl; struct spt_hw spt; struct mic_hw mic; struct njet_hw njet; struct hfcD_hw hfcD; struct ix1_hw niccy; } hw; int myid; isdn_if iif; u_char *status_buf; u_char *status_read; u_char *status_write; u_char *status_end; u_char (*readisac) (struct IsdnCardState *, u_char); void (*writeisac) (struct IsdnCardState *, u_char, u_char); void (*readisacfifo) (struct IsdnCardState *, u_char *, int); void (*writeisacfifo) (struct IsdnCardState *, u_char *, int); u_char (*BC_Read_Reg) (struct IsdnCardState *, int, u_char); void (*BC_Write_Reg) (struct IsdnCardState *, int, u_char, u_char); void (*BC_Send_Data) (struct BCState *); int (*cardmsg) (struct IsdnCardState *, int, void *); struct Channel channel[2]; struct BCState bcs[2]; struct PStack *stlist; u_char *rcvbuf; int rcvidx; struct sk_buff *tx_skb; int tx_cnt; int event; struct tq_struct tqueue; struct timer_list dbusytimer; struct sk_buff_head rq, sq; /* D-channel queues */ int ph_state; int cardnr; char *dlog; int debug; u_char *mon_tx; u_char *mon_rx; int mon_txp; int mon_txc; int mon_rxp; u_char mocr; void (*setstack_d) (struct PStack *, struct IsdnCardState *);};#define MON0_RX 1#define MON1_RX 2#define MON0_TX 4#define MON1_TX 8#define HISAX_MAX_CARDS 8#define ISDN_CTYPE_16_0 1#define ISDN_CTYPE_8_0 2#define ISDN_CTYPE_16_3 3#define ISDN_CTYPE_PNP 4#define ISDN_CTYPE_A1 5#define ISDN_CTYPE_ELSA 6#define ISDN_CTYPE_ELSA_PNP 7#define ISDN_CTYPE_TELESPCMCIA 8#define ISDN_CTYPE_IX1MICROR2 9#define ISDN_CTYPE_ELSA_PCMCIA 10#define ISDN_CTYPE_DIEHLDIVA 11#define ISDN_CTYPE_ASUSCOM 12#define ISDN_CTYPE_TELEINT 13#define ISDN_CTYPE_TELES3C 14#define ISDN_CTYPE_SEDLBAUER 15#define ISDN_CTYPE_SPORTSTER 16#define ISDN_CTYPE_MIC 17#define ISDN_CTYPE_ELSA_PCI 18#define ISDN_CTYPE_COMPAQ_ISA 19#define ISDN_CTYPE_NETJET 20#define ISDN_CTYPE_TELESPCI 21#define ISDN_CTYPE_SEDLBAUER_PCMCIA 22#define ISDN_CTYPE_AMD7930 23#define ISDN_CTYPE_NICCY 24#define ISDN_CTYPE_S0BOX 25#define ISDN_CTYPE_A1_PCMCIA 26#define ISDN_CTYPE_FRITZPCI 27#define ISDN_CTYPE_SEDLBAUER_FAX 28#define ISDN_CTYPE_COUNT 28#ifdef ISDN_CHIP_ISAC#undef ISDN_CHIP_ISAC#endif#ifndef __initfunc#define __initfunc(__arginit) __arginit#endif#ifndef __initdata#define __initdata#endif#define HISAX_INITFUNC(__arginit) __initfunc(__arginit)#define HISAX_INITDATA __initdata#ifdef CONFIG_HISAX_16_0#define CARD_TELES0 (1<< ISDN_CTYPE_16_0) | (1<< ISDN_CTYPE_8_0)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_TELES0 0#endif#ifdef CONFIG_HISAX_16_3#define CARD_TELES3 (1<< ISDN_CTYPE_16_3) | (1<< ISDN_CTYPE_PNP) | \ (1<< ISDN_CTYPE_TELESPCMCIA) | (1<< ISDN_CTYPE_COMPAQ_ISA)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_TELES3 0#endif#ifdef CONFIG_HISAX_TELESPCI#define CARD_TELESPCI (1<< ISDN_CTYPE_TELESPCI)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_TELESPCI 0#endif#ifdef CONFIG_HISAX_AVM_A1#define CARD_AVM_A1 (1<< ISDN_CTYPE_A1)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_AVM_A1 0#endif#ifdef CONFIG_HISAX_AVM_A1_PCMCIA#define CARD_AVM_A1_PCMCIA (1<< ISDN_CTYPE_A1_PCMCIA)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_AVM_A1_PCMCIA 0#endif#ifdef CONFIG_HISAX_FRITZPCI#define CARD_FRITZPCI (1<< ISDN_CTYPE_FRITZPCI)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_FRITZPCI 0#endif#ifdef CONFIG_HISAX_ELSA#define CARD_ELSA (1<< ISDN_CTYPE_ELSA) | (1<< ISDN_CTYPE_ELSA_PNP) | \ (1<< ISDN_CTYPE_ELSA_PCMCIA) | (1<< ISDN_CTYPE_ELSA_PCI)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#undef HISAX_INITFUNC#define HISAX_INITFUNC(__arginit) __arginit#undef HISAX_INITDATA#define HISAX_INITDATA#else#define CARD_ELSA 0#endif#ifdef CONFIG_HISAX_IX1MICROR2#define CARD_IX1MICROR2 (1 << ISDN_CTYPE_IX1MICROR2)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_IX1MICROR2 0#endif#ifdef CONFIG_HISAX_DIEHLDIVA#define CARD_DIEHLDIVA (1 << ISDN_CTYPE_DIEHLDIVA)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_DIEHLDIVA 0#endif#ifdef CONFIG_HISAX_ASUSCOM#define CARD_ASUSCOM (1 << ISDN_CTYPE_ASUSCOM)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_ASUSCOM 0#endif#ifdef CONFIG_HISAX_TELEINT#define CARD_TELEINT (1 << ISDN_CTYPE_TELEINT)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_TELEINT 0#endif#ifdef CONFIG_HISAX_SEDLBAUER#define CARD_SEDLBAUER (1 << ISDN_CTYPE_SEDLBAUER) | (1 << ISDN_CTYPE_SEDLBAUER_PCMCIA) | ( 1 << ISDN_CTYPE_SEDLBAUER_FAX)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_SEDLBAUER 0#endif#ifdef CONFIG_HISAX_SPORTSTER#define CARD_SPORTSTER (1 << ISDN_CTYPE_SPORTSTER)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_SPORTSTER 0#endif#ifdef CONFIG_HISAX_MIC#define CARD_MIC (1 << ISDN_CTYPE_MIC)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_MIC 0#endif#ifdef CONFIG_HISAX_NETJET#define CARD_NETJET (1 << ISDN_CTYPE_NETJET)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_NETJET 0#endif#ifdef CONFIG_HISAX_TELES3C#define CARD_TELES3C (1<< ISDN_CTYPE_TELES3C)#else#define CARD_TELES3C 0#endif#ifdef CONFIG_HISAX_AMD7930#define CARD_AMD7930 (1 << ISDN_CTYPE_AMD7930)#else#define CARD_AMD7930 0#endif#ifdef CONFIG_HISAX_NICCY#define CARD_NICCY (1 << ISDN_CTYPE_NICCY)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_NICCY 0#endif#ifdef CONFIG_HISAX_S0BOX#define CARD_S0BOX (1 << ISDN_CTYPE_S0BOX)#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_S0BOX 0#endif#define SUPORTED_CARDS (CARD_TELES0 | CARD_TELES3 | CARD_AVM_A1 | CARD_ELSA \ | CARD_IX1MICROR2 | CARD_DIEHLDIVA | CARD_ASUSCOM \ | CARD_TELEINT | CARD_SEDLBAUER | CARD_SPORTSTER \ | CARD_MIC | CARD_NETJET | CARD_TELES3C | CARD_AMD7930 \ | CARD_AVM_A1_PCMCIA | CARD_FRITZPCI\ | CARD_NICCY | CARD_S0BOX | CARD_TELESPCI)#define TEI_PER_CARD 0#ifdef CONFIG_HISAX_1TR6#undef TEI_PER_CARD#define TEI_PER_CARD 1#endif#ifdef CONFIG_HISAX_EURO#undef TEI_PER_CARD#define TEI_PER_CARD 1#define HISAX_EURO_SENDCOMPLETE 1#define EXT_BEARER_CAPS 1#define HISAX_SEND_STD_LLC_IE 1#ifdef CONFIG_HISAX_NO_SENDCOMPLETE#undef HISAX_EURO_SENDCOMPLETE#endif#ifdef CONFIG_HISAX_NO_LLC#undef HISAX_SEND_STD_LLC_IE#endif#undef HISAX_DE_AOC#ifdef CONFIG_DE_AOC#define HISAX_DE_AOC 1#endif#endif/* L1 Debug */#define L1_DEB_WARN 0x01#define L1_DEB_INTSTAT 0x02#define L1_DEB_ISAC 0x04#define L1_DEB_ISAC_FIFO 0x08#define L1_DEB_HSCX 0x10#define L1_DEB_HSCX_FIFO 0x20#define L1_DEB_LAPD 0x40#define L1_DEB_IPAC 0x80#define L1_DEB_RECEIVE_FRAME 0x100#define L1_DEB_MONITOR 0x200#define DEB_DLOG_HEX 0x400#define DEB_DLOG_VERBOSE 0x800#define L2FRAME_DEBUG#ifdef L2FRAME_DEBUGextern void Logl2Frame(struct IsdnCardState *cs, struct sk_buff *skb, char *buf, int dir);#endifstruct IsdnCard { int typ; int protocol; /* EDSS1 or 1TR6 */ unsigned int para[4]; struct IsdnCardState *cs;};void init_bcstate(struct IsdnCardState *cs, int bc);void setstack_HiSax(struct PStack *st, struct IsdnCardState *cs);unsigned int random_ri(void);void HiSax_addlist(struct IsdnCardState *sp, struct PStack *st);void HiSax_rmlist(struct IsdnCardState *sp, struct PStack *st);void setstack_l1_B(struct PStack *st);void setstack_tei(struct PStack *st);void setstack_manager(struct PStack *st);void setstack_isdnl2(struct PStack *st, char *debug_id);void releasestack_isdnl2(struct PStack *st);void setstack_transl2(struct PStack *st);void releasestack_transl2(struct PStack *st);void setstack_l3dc(struct PStack *st, struct Channel *chanp);void setstack_l3bc(struct PStack *st, struct Channel *chanp);void releasestack_isdnl3(struct PStack *st);u_char *findie(u_char * p, int size, u_char ie, int wanted_set);int getcallref(u_char * p);int newcallref(void);void FsmNew(struct Fsm *fsm, struct FsmNode *fnlist, int fncount);void FsmFree(struct Fsm *fsm);int FsmEvent(struct FsmInst *fi, int event, void *arg);void FsmChangeState(struct FsmInst *fi, int newstate);void FsmInitTimer(struct FsmInst *fi, struct FsmTimer *ft);int FsmAddTimer(struct FsmTimer *ft, int millisec, int event, void *arg, int where);void FsmRestartTimer(struct FsmTimer *ft, int millisec, int event, void *arg, int where);void FsmDelTimer(struct FsmTimer *ft, int where);int jiftime(char *s, long mark);int HiSax_command(isdn_ctrl * ic);int HiSax_writebuf_skb(int id, int chan, struct sk_buff *skb);void HiSax_putstatus(struct IsdnCardState *cs, char *head, char *fmt, ...);void VHiSax_putstatus(struct IsdnCardState *cs, char *head, char *fmt, va_list args);void HiSax_reportcard(int cardnr);int QuickHex(char *txt, u_char * p, int cnt);void LogFrame(struct IsdnCardState *cs, u_char * p, int size);void dlogframe(struct IsdnCardState *cs, struct sk_buff *skb, int dir);void iecpy(u_char * dest, u_char * iestart, int ieoffset);int discard_queue(struct sk_buff_head *q);#ifdef ISDN_CHIP_ISACvoid setstack_isac(struct PStack *st, struct IsdnCardState *cs);#endif /* ISDN_CHIP_ISAC */#endif /* __KERNEL__ */#define HZDELAY(jiffs) {int tout = jiffs; while (tout--) udelay(1000000/HZ);}int ll_run(struct IsdnCardState *cs);void ll_stop(struct IsdnCardState *cs);void CallcNew(void);void CallcFree(void);int CallcNewChan(struct IsdnCardState *cs);void CallcFreeChan(struct IsdnCardState *cs);void Isdnl1New(void);void Isdnl1Free(void);void Isdnl2New(void);void Isdnl2Free(void);void Isdnl3New(void);void Isdnl3Free(void);void init_tei(struct IsdnCardState *cs, int protocol);void release_tei(struct IsdnCardState *cs);char *HiSax_getrev(const char *revision);void TeiNew(void);void TeiFree(void);int certification_check(int output);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -