📄 hisax.h
字号:
unsigned char trm; unsigned char stat; unsigned char fifo; unsigned char fifo_en; unsigned char bswapped; unsigned char nt_mode; int nt_timer; unsigned char pci_bus; unsigned char pci_device_fn; unsigned char *pci_io; /* start of PCI IO memory */ void *share_start; /* shared memory for Fifos start */ void *fifos; /* FIFO memory */ struct timer_list timer;};struct hfcSX_hw { unsigned int base; unsigned char cirm; unsigned char ctmt; unsigned char conn; unsigned char mst_m; unsigned char int_m1; unsigned char int_m2; unsigned char int_s1; unsigned char sctrl; unsigned char sctrl_r; unsigned char sctrl_e; unsigned char trm; unsigned char stat; unsigned char fifo; unsigned char bswapped; unsigned char nt_mode; unsigned char chip; int b_fifo_size; unsigned char last_fifo; void *extra; int nt_timer; struct timer_list timer;};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;};struct isurf_hw { unsigned int reset; unsigned long phymem; unsigned long isac; unsigned long isar; struct isar_reg isar_r;};struct saphir_hw { unsigned int cfg_reg; unsigned int ale; unsigned int isac; unsigned int hscx; struct timer_list timer;};struct bkm_hw { unsigned int base; /* A4T stuff */ unsigned int isac_adr; unsigned int isac_ale; unsigned int jade_adr; unsigned int jade_ale; /* Scitel Quadro stuff */ unsigned int plx_adr; unsigned int data_adr;}; struct gazel_hw { unsigned int cfg_reg; unsigned int pciaddr[2]; signed int ipac; signed int isac; signed int hscx[2]; signed int isacfifo; signed int hscxfifo[2]; unsigned char timeslot; unsigned char iom2;};struct w6692_hw { unsigned int iobase; struct timer_list timer;};#ifdef CONFIG_HISAX_TESTEMUstruct te_hw { unsigned char *sfifo; unsigned char *sfifo_w; unsigned char *sfifo_r; unsigned char *sfifo_e; int sfifo_cnt; unsigned int stat; wait_queue_head_t rwaitq; wait_queue_head_t swaitq;};#endifstruct arcofi_msg { struct arcofi_msg *next; u_char receive; u_char len; u_char msg[10];};struct isac_chip { int ph_state; u_char *mon_tx; u_char *mon_rx; int mon_txp; int mon_txc; int mon_rxp; struct arcofi_msg *arcofi_list; struct timer_list arcofitimer; wait_queue_head_t arcofi_wait; u_char arcofi_bc; u_char arcofi_state; u_char mocr; u_char adf2;};struct hfcd_chip { int ph_state;};struct hfcpci_chip { int ph_state;};struct hfcsx_chip { int ph_state;};struct w6692_chip { int ph_state;};struct icc_chip { int ph_state; u_char *mon_tx; u_char *mon_rx; int mon_txp; int mon_txc; int mon_rxp; struct arcofi_msg *arcofi_list; struct timer_list arcofitimer; wait_queue_head_t arcofi_wait; u_char arcofi_bc; u_char arcofi_state; u_char mocr; u_char adf2;};#define HW_IOM1 0#define HW_IPAC 1#define HW_ISAR 2#define HW_ARCOFI 3#define FLG_TWO_DCHAN 4#define FLG_L1_DBUSY 5#define FLG_DBUSY_TIMER 6#define FLG_LOCK_ATOMIC 7#define FLG_ARCOFI_TIMER 8#define FLG_ARCOFI_ERROR 9#define FLG_HW_L1_UINT 10struct IsdnCardState { unsigned char typ; unsigned char subtyp; int protocol; unsigned int irq; unsigned long irq_flags; long HW_Flags; int *busy_flag; int chanlimit; /* limited number of B-chans to use */ int logecho; /* log echo if supported by card */ 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 hfcPCI_hw hfcpci; struct hfcSX_hw hfcsx; struct ix1_hw niccy; struct isurf_hw isurf; struct saphir_hw saphir;#ifdef CONFIG_HISAX_TESTEMU struct te_hw te;#endif struct bkm_hw ax; struct gazel_hw gazel; struct w6692_hw w6692; } 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 *); void (*setstack_d) (struct PStack *, struct IsdnCardState *); void (*DC_Close) (struct IsdnCardState *); void (*irq_func) (int, void *, struct pt_regs *); int (*auxcmd) (struct IsdnCardState *, isdn_ctrl *); struct Channel channel[2+MAX_WAITING_CALLS]; struct BCState bcs[2+MAX_WAITING_CALLS]; struct PStack *stlist; struct sk_buff_head rq, sq; /* D-channel queues */ int cardnr; char *dlog; int debug; union { struct isac_chip isac; struct hfcd_chip hfcd; struct hfcpci_chip hfcpci; struct hfcsx_chip hfcsx; struct w6692_chip w6692; struct icc_chip icc; } dc; u_char *rcvbuf; int rcvidx; struct sk_buff *tx_skb; int tx_cnt; long event; struct tq_struct tqueue; struct timer_list dbusytimer;#ifdef ERROR_STATISTIC int err_crc; int err_tx; int err_rx;#endif};#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_S 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_ISURF 29#define ISDN_CTYPE_ACERP10 30#define ISDN_CTYPE_HSTSAPHIR 31#define ISDN_CTYPE_BKM_A4T 32#define ISDN_CTYPE_SCT_QUADRO 33#define ISDN_CTYPE_GAZEL 34#define ISDN_CTYPE_HFC_PCI 35#define ISDN_CTYPE_W6692 36#define ISDN_CTYPE_HFC_SX 37#define ISDN_CTYPE_NETJET_U 38#define ISDN_CTYPE_HFC_SP_PCMCIA 39#define ISDN_CTYPE_COUNT 39#ifdef ISDN_CHIP_ISAC#undef ISDN_CHIP_ISAC#endif#ifdef CONFIG_HISAX_16_0#define CARD_TELES0 1#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#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_TELES3 0#endif#ifdef CONFIG_HISAX_TELESPCI#define CARD_TELESPCI 1#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#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#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#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_FRITZPCI 0#endif#ifdef CONFIG_HISAX_ELSA#define CARD_ELSA 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_ELSA 0#endif#ifdef CONFIG_HISAX_IX1MICROR2#define CARD_IX1MICROR2 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_IX1MICROR2 0#endif#ifdef CONFIG_HISAX_DIEHLDIVA#define CARD_DIEHLDIVA 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_DIEHLDIVA 0#endif#ifdef CONFIG_HISAX_ASUSCOM#define CARD_ASUSCOM 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_ASUSCOM 0#endif#ifdef CONFIG_HISAX_TELEINT#define CARD_TELEINT 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_TELEINT 0#endif#ifdef CONFIG_HISAX_SEDLBAUER#define CARD_SEDLBAUER 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_SEDLBAUER 0#endif#ifdef CONFIG_HISAX_SPORTSTER#define CARD_SPORTSTER 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_SPORTSTER 0#endif#ifdef CONFIG_HISAX_MIC#define CARD_MIC 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_MIC 0#endif#ifdef CONFIG_HISAX_NETJET#define CARD_NETJET_S 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_NETJET_S 0#endif#ifdef CONFIG_HISAX_HFCS#define CARD_HFCS 1#else#define CARD_HFCS 0#endif#ifdef CONFIG_HISAX_HFC_PCI#define CARD_HFC_PCI 1#else#define CARD_HFC_PCI 0#endif#ifdef CONFIG_HISAX_HFC_SX#define CARD_HFC_SX 1#else#define CARD_HFC_SX 0#endif#ifdef CONFIG_HISAX_AMD7930#define CARD_AMD7930 1#else#define CARD_AMD7930 0#endif#ifdef CONFIG_HISAX_NICCY#define CARD_NICCY 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_NICCY 0#endif#ifdef CONFIG_HISAX_ISURF#define CARD_ISURF 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_ISURF 0#endif#ifdef CONFIG_HISAX_S0BOX#define CARD_S0BOX 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_S0BOX 0#endif#ifdef CONFIG_HISAX_HSTSAPHIR#define CARD_HSTSAPHIR 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_HSTSAPHIR 0#endif#ifdef CONFIG_HISAX_TESTEMU#define CARD_TESTEMU 1#define ISDN_CTYPE_TESTEMU 99#undef ISDN_CTYPE_COUNT#define ISDN_CTYPE_COUNT ISDN_CTYPE_TESTEMU#else#define CARD_TESTEMU 0#endif#ifdef CONFIG_HISAX_BKM_A4T#define CARD_BKM_A4T 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_BKM_A4T 0#endif#ifdef CONFIG_HISAX_SCT_QUADRO#define CARD_SCT_QUADRO 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_SCT_QUADRO 0#endif#ifdef CONFIG_HISAX_GAZEL#define CARD_GAZEL 1#ifndef ISDN_CHIP_ISAC#define ISDN_CHIP_ISAC 1#endif#else#define CARD_GAZEL 0#endif#ifdef CONFIG_HISAX_W6692#define CARD_W6692 1#ifndef ISDN_CHIP_W6692#define ISDN_CHIP_W6692 1#endif#else#define CARD_W6692 0#endif#ifdef CONFIG_HISAX_NETJET_U#define CARD_NETJET_U 1#ifndef ISDN_CHIP_ICC#define ISDN_CHIP_ICC 1#endif#ifndef HISAX_UINTERFACE#define HISAX_UINTERFACE 1#endif#else#define CARD_NETJET_U 0#endif#define TEI_PER_CARD 1/* 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, 1TR6 or NI1 */ 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, int ack, 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 sel);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, int addfeatures);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 + -