!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/src/linux-2.4.18-xfs-1.1/drivers/isdn/hisax/   drwxr-xr-x
Free 318.32 GB of 458.09 GB (69.49%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     hisax.h (28.45 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* $Id: hisax.h,v 1.1.4.2 2001/12/09 19:15:28 kai Exp $
 *
 * Basic declarations, defines and prototypes
 *
 * This software may be used and distributed according to the terms
 * of the GNU General Public License, incorporated herein by reference.
 *
 */
#include <linux/config.h>
#include <linux/errno.h>
#include <linux/fs.h>
#include <linux/major.h>
#include <asm/segment.h>
#include <asm/io.h>
#include <linux/delay.h>
#include <linux/kernel.h>
#include <linux/signal.h>
#include <linux/slab.h>
#include <linux/mm.h>
#include <linux/mman.h>
#include <linux/ioport.h>
#include <linux/timer.h>
#include <linux/wait.h>
#include <linux/isdnif.h>
#include <linux/tty.h>
#include <linux/serial_reg.h>
#include <linux/netdevice.h>

#define ERROR_STATISTIC

#define REQUEST        0
#define CONFIRM        1
#define INDICATION    2
#define RESPONSE    3

#define HW_ENABLE    0x0000
#define HW_RESET    0x0004
#define HW_POWERUP    0x0008
#define HW_ACTIVATE    0x0010
#define HW_DEACTIVATE    0x0018

#define HW_INFO1    0x0010
#define HW_INFO2    0x0020
#define HW_INFO3    0x0030
#define HW_INFO4    0x0040
#define HW_INFO4_P8    0x0040
#define HW_INFO4_P10    0x0048
#define HW_RSYNC    0x0060
#define HW_TESTLOOP    0x0070
#define CARD_RESET    0x00F0
#define CARD_INIT    0x00F2
#define CARD_RELEASE    0x00F3
#define CARD_TEST    0x00F4
#define CARD_AUX_IND    0x00F5

#define PH_ACTIVATE    0x0100
#define PH_DEACTIVATE    0x0110
#define PH_DATA        0x0120
#define PH_PULL        0x0130
#define PH_TESTLOOP    0x0140
#define PH_PAUSE    0x0150
#define MPH_ACTIVATE    0x0180
#define MPH_DEACTIVATE    0x0190
#define MPH_INFORMATION    0x01A0

#define DL_ESTABLISH    0x0200
#define DL_RELEASE    0x0210
#define DL_DATA        0x0220
#define DL_FLUSH    0x0224
#define DL_UNIT_DATA    0x0230
#define MDL_ASSIGN    0x0280
#define MDL_REMOVE    0x0284
#define MDL_ERROR    0x0288
#define MDL_INFO_SETUP    0x02E0
#define MDL_INFO_CONN    0x02E4
#define MDL_INFO_REL    0x02E8

#define CC_SETUP    0x0300
#define CC_RESUME    0x0304
#define CC_MORE_INFO    0x0310
#define CC_IGNORE    0x0320
#define CC_REJECT    0x0324
#define CC_SETUP_COMPL    0x0330
#define CC_PROCEEDING    0x0340
#define CC_ALERTING    0x0344
#define CC_PROGRESS    0x0348
#define CC_CONNECT    0x0350
#define CC_CHARGE    0x0354
#define CC_NOTIFY    0x0358
#define CC_DISCONNECT    0x0360
#define CC_RELEASE    0x0368
#define CC_SUSPEND    0x0370
#define CC_PROCEED_SEND 0x0374
#define CC_REDIR        0x0378
#define CC_T302        0x0382
#define CC_T303        0x0383
#define CC_T304        0x0384
#define CC_T305        0x0385
#define CC_T308_1    0x0388
#define CC_T308_2    0x038A
#define CC_T309         0x0309
#define CC_T310        0x0390
#define CC_T313        0x0393
#define CC_T318        0x0398
#define CC_T319        0x0399
#define CC_TSPID    0x03A0
#define CC_NOSETUP_RSP    0x03E0
#define CC_SETUP_ERR    0x03E1
#define CC_SUSPEND_ERR    0x03E2
#define CC_RESUME_ERR    0x03E3
#define CC_CONNECT_ERR    0x03E4
#define CC_RELEASE_ERR    0x03E5
#define CC_RESTART    0x03F4
#define CC_TDSS1_IO     0x13F4    /* DSS1 IO user timer */
#define CC_TNI1_IO      0x13F5    /* NI1 IO user timer */

/* define maximum number of possible waiting incoming calls */
#define MAX_WAITING_CALLS 2


#ifdef __KERNEL__

/* include l3dss1 & ni1 specific process structures, but no other defines */
#ifdef CONFIG_HISAX_EURO
  #define l3dss1_process
  #include "l3dss1.h" 
  #undef  l3dss1_process
#endif /* CONFIG_HISAX_EURO */

#ifdef CONFIG_HISAX_NI1
  #define l3ni1_process
  #include "l3ni1.h" 
  #undef  l3ni1_process
#endif /* CONFIG_HISAX_NI1 */

#define MAX_DFRAME_LEN    260
#define MAX_DFRAME_LEN_L1    300
#define HSCX_BUFMAX    4096
#define MAX_DATA_SIZE    (HSCX_BUFMAX - 4)
#define MAX_DATA_MEM    (HSCX_BUFMAX + 64)
#define RAW_BUFMAX    (((HSCX_BUFMAX*6)/5) + 5)
#define MAX_HEADER_LEN    4
#define MAX_WINDOW    8
#define MAX_MON_FRAME    32
#define MAX_DLOG_SPACE    2048
#define MAX_BLOG_SPACE    256

/* #define I4L_IRQ_FLAG SA_INTERRUPT */
#define I4L_IRQ_FLAG    0

/*
 * Statemachine
 */

struct FsmInst;

typedef void (* FSMFNPTR)(struct FsmInst *, int, void *);

struct Fsm {
    FSMFNPTR *jumpmatrix;
    int state_count, event_count;
    char **strEvent, **strState;
};

struct FsmInst {
    struct Fsm *fsm;
    int state;
    int debug;
    void *userdata;
    int userint;
    void (*printdebug) (struct FsmInst *, char *, ...);
};

struct FsmNode {
    int state, event;
    void (*routine) (struct FsmInst *, int, void *);
};

struct FsmTimer {
    struct FsmInst *fi;
    struct timer_list tl;
    int event;
    void *arg;
};

struct L3Timer {
    struct l3_process *pc;
    struct timer_list tl;
    int event;
};

#define FLG_L1_ACTIVATING    1
#define FLG_L1_ACTIVATED    2
#define FLG_L1_DEACTTIMER    3
#define FLG_L1_ACTTIMER        4
#define FLG_L1_T3RUN        5
#define FLG_L1_PULL_REQ        6
#define FLG_L1_UINT        7

struct Layer1 {
    void *hardware;
    struct BCState *bcs;
    struct PStack **stlistp;
    long Flags;
    struct FsmInst l1m;
    struct FsmTimer    timer;
    void (*l1l2) (struct PStack *, int, void *);
    void (*l1hw) (struct PStack *, int, void *);
    void (*l1tei) (struct PStack *, int, void *);
    int mode, bc;
    int delay;
};

#define GROUP_TEI    127
#define TEI_SAPI    63
#define CTRL_SAPI    0
#define PACKET_NOACK    250

/* Layer2 Flags */

#define FLG_LAPB    0
#define FLG_LAPD    1
#define FLG_ORIG    2
#define FLG_MOD128    3
#define FLG_PEND_REL    4
#define FLG_L3_INIT    5
#define FLG_T200_RUN    6
#define FLG_ACK_PEND    7
#define FLG_REJEXC    8
#define FLG_OWN_BUSY    9
#define FLG_PEER_BUSY    10
#define FLG_DCHAN_BUSY    11
#define FLG_L1_ACTIV    12
#define FLG_ESTAB_PEND    13
#define FLG_PTP        14
#define FLG_FIXED_TEI    15
#define FLG_L2BLOCK    16

struct Layer2 {
    int tei;
    int sap;
    int maxlen;
    unsigned long flag;
    unsigned int vs, va, vr;
    int rc;
    unsigned int window;
    unsigned int sow;
    struct sk_buff *windowar[MAX_WINDOW];
    struct sk_buff_head i_queue;
    struct sk_buff_head ui_queue;
    void (*l2l1) (struct PStack *, int, void *);
    void (*l2l3) (struct PStack *, int, void *);
    void (*l2tei) (struct PStack *, int, void *);
    struct FsmInst l2m;
    struct FsmTimer t200, t203;
    int T200, N200, T203;
    int debug;
    char debug_id[16];
};

struct Layer3 {
    void (*l3l4) (struct PStack *, int, void *);
        void (*l3ml3) (struct PStack *, int, void *);
    void (*l3l2) (struct PStack *, int, void *);
    struct FsmInst l3m;
        struct FsmTimer l3m_timer;
    struct sk_buff_head squeue;
    struct l3_process *proc;
    struct l3_process *global;
    int N303;
    int debug;
    char debug_id[8];
};

struct LLInterface {
    void (*l4l3) (struct PStack *, int, void *);
        int  (*l4l3_proto) (struct PStack *, isdn_ctrl *);
    void *userdata;
    void (*l1writewakeup) (struct PStack *, int);
    void (*l2writewakeup) (struct PStack *, int);
};


struct Management {
    int    ri;
    struct FsmInst tei_m;
    struct FsmTimer t202;
    int T202, N202, debug;
    void (*layer) (struct PStack *, int, void *);
};

#define NO_CAUSE 254

struct Param {
    u_char cause;
    u_char loc;
    u_char diag[6];
    int bchannel;
    int chargeinfo;
    int spv;        /* SPV Flag */
    setup_parm setup;    /* from isdnif.h numbers and Serviceindicator */
    u_char moderate;    /* transfer mode and rate (bearer octet 4) */
};


struct PStack {
    struct PStack *next;
    struct Layer1 l1;
    struct Layer2 l2;
    struct Layer3 l3;
    struct LLInterface lli;
    struct Management ma;
    int protocol;        /* EDSS1, 1TR6 or NI1 */

        /* protocol specific data fields */
        union
     { u_char uuuu; /* only as dummy */
#ifdef CONFIG_HISAX_EURO
           dss1_stk_priv dss1; /* private dss1 data */
#endif /* CONFIG_HISAX_EURO */              
#ifdef CONFIG_HISAX_NI1
           ni1_stk_priv ni1; /* private ni1 data */
#endif /* CONFIG_HISAX_NI1 */             
     } prot;
};

struct l3_process {
    int callref;
    int state;
    struct L3Timer timer;
    int N303;
    int debug;
    struct Param para;
    struct Channel *chan;
    struct PStack *st;
    struct l3_process *next;
        ulong redir_result;

        /* protocol specific data fields */
        union 
     { u_char uuuu; /* only when euro not defined, avoiding empty union */
#ifdef CONFIG_HISAX_EURO 
           dss1_proc_priv dss1; /* private dss1 data */
#endif /* CONFIG_HISAX_EURO */            
#ifdef CONFIG_HISAX_NI1
           ni1_proc_priv ni1; /* private ni1 data */
#endif /* CONFIG_HISAX_NI1 */             
     } prot;
};

struct hscx_hw {
    int hscx;
    int rcvidx;
    int count;              /* Current skb sent count */
    u_char *rcvbuf;         /* B-Channel receive Buffer */
    u_char tsaxr0;
    u_char tsaxr1;
};

struct w6692B_hw {
    int bchan;
    int rcvidx;
    int count;              /* Current skb sent count */
    u_char *rcvbuf;         /* B-Channel receive Buffer */
};

struct isar_reg {
    unsigned long Flags;
    volatile u_char bstat;
    volatile u_char iis;
    volatile u_char cmsb;
    volatile u_char clsb;
    volatile u_char par[8];
};

struct isar_hw {
    int dpath;
    int rcvidx;
    int txcnt;
    int mml;
    u_char state;
    u_char cmd;
    u_char mod;
    u_char newcmd;
    u_char newmod;
    char try_mod;
    struct timer_list ftimer;
    u_char *rcvbuf;         /* B-Channel receive Buffer */
    u_char conmsg[16];
    struct isar_reg *reg;
};

struct hdlc_stat_reg {
#ifdef __BIG_ENDIAN
    u_char fill __attribute__((packed));
    u_char mode __attribute__((packed));
    u_char xml  __attribute__((packed));
    u_char cmd  __attribute__((packed));
#else
    u_char cmd  __attribute__((packed));
    u_char xml  __attribute__((packed));
    u_char mode __attribute__((packed));
    u_char fill __attribute__((packed));
#endif
};

struct hdlc_hw {
    union {
        u_int ctrl;
        struct hdlc_stat_reg sr;
    } ctrl;
    u_int stat;
    int rcvidx;
    int count;              /* Current skb sent count */
    u_char *rcvbuf;         /* B-Channel receive Buffer */
};

struct hfcB_hw {
    unsigned int *send;
    int f1;
    int f2;
};

struct tiger_hw {
    u_int *send;
    u_int *s_irq;
    u_int *s_end;
    u_int *sendp;
    u_int *rec;
    int free;
    u_char *rcvbuf;
    u_char *sendbuf;
    u_char *sp;
    int sendcnt;
    u_int s_tot;
    u_int r_bitcnt;
    u_int r_tot;
    u_int r_err;
    u_int r_fcs;
    u_char r_state;
    u_char r_one;
    u_char r_val;
    u_char s_state;
};

struct amd7930_hw {
    u_char *tx_buff;
    u_char *rv_buff;
    int rv_buff_in;
    int rv_buff_out;
    struct sk_buff *rv_skb;
    struct hdlc_state *hdlc_state;
    struct tq_struct tq_rcv;
    struct tq_struct tq_xmt;
};

#define BC_FLG_INIT    1
#define BC_FLG_ACTIV    2
#define BC_FLG_BUSY    3
#define BC_FLG_NOFRAME    4
#define BC_FLG_HALF    5
#define BC_FLG_EMPTY    6
#define BC_FLG_ORIG    7
#define BC_FLG_DLEETX    8
#define BC_FLG_LASTDLE    9
#define BC_FLG_FIRST    10
#define BC_FLG_LASTDATA    11
#define BC_FLG_NMD_DATA    12
#define BC_FLG_FTI_RUN    13
#define BC_FLG_LL_OK    14
#define BC_FLG_LL_CONN    15

#define L1_MODE_NULL    0
#define L1_MODE_TRANS    1
#define L1_MODE_HDLC    2
#define L1_MODE_EXTRN    3
#define L1_MODE_HDLC_56K 4
#define L1_MODE_MODEM    7
#define L1_MODE_V32    8
#define L1_MODE_FAX    9

struct BCState {
    int channel;
    int mode;
    long Flag; /* long req'd for set_bit --RR */
    struct IsdnCardState *cs;
    int tx_cnt;        /* B-Channel transmit counter */
    struct sk_buff *tx_skb; /* B-Channel transmit Buffer */
    struct sk_buff_head rqueue;    /* B-Channel receive Queue */
    struct sk_buff_head squeue;    /* B-Channel send Queue */
    struct PStack *st;
    u_char *blog;
    u_char *conmsg;
    struct timer_list transbusy;
    struct tq_struct tqueue;
    int event;
    int  (*BC_SetStack) (struct PStack *, struct BCState *);
    void (*BC_Close) (struct BCState *);
#ifdef ERROR_STATISTIC
    int err_crc;
    int err_tx;
    int err_rdo;
    int err_inv;
#endif
    union {
        struct hscx_hw hscx;
        struct hdlc_hw hdlc;
        struct isar_hw isar;
        struct hfcB_hw hfc;
        struct tiger_hw tiger;
        struct amd7930_hw  amd7930;
        struct w6692B_hw w6692;
        struct hisax_b_if *b_if;
    } hw;
};

struct Channel {
    struct PStack *b_st, *d_st;
    struct IsdnCardState *cs;
    struct BCState *bcs;
    int chan;
    int incoming;
    struct FsmInst fi;
    struct FsmTimer drel_timer, dial_timer;
    int debug;
    int l2_protocol, l2_active_protocol;
    int l3_protocol;
    int data_open;
    struct l3_process *proc;
    setup_parm setup;    /* from isdnif.h numbers and Serviceindicator */
    long Flags;        /* for remembering action done in l4 */
                /* long req'd for set_bit --RR */
    int leased;
};

struct elsa_hw {
    unsigned long base;
    unsigned int cfg;
    unsigned int ctrl;
    unsigned int ale;
    unsigned int isac;
    unsigned int itac;
    unsigned int hscx;
    unsigned int trig;
    unsigned int timer;
    unsigned int counter;
    unsigned int status;
    struct timer_list tl;
    unsigned int MFlag;
    struct BCState *bcs;
    u_char *transbuf;
    u_char *rcvbuf;
    unsigned int transp;
    unsigned int rcvp;
    unsigned int transcnt;
    unsigned int rcvcnt;
    u_char IER;
    u_char FCR;
    u_char LCR;
    u_char MCR;
    u_char ctrl_reg;
};

struct teles3_hw {
    unsigned int cfg_reg;
    signed   int isac;
    signed   int hscx[2];
    signed   int isacfifo;
    signed   int hscxfifo[2];
};

struct teles0_hw {
    unsigned int cfg_reg;
    unsigned long membase;
    unsigned long phymem;
};

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 long cfg_reg;
    unsigned long pci_cfg;
    unsigned int ctrl;
    unsigned long isac_adr;
    unsigned int isac;
    unsigned long 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 long 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 hfcPCI_hw {
    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 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 */ 
        int last_bfifo_cnt[2]; /* marker saving last b-fifo frame count */
    struct timer_list timer;
};

struct hfcSX_hw {
        unsigned long 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 long base;
    /* A4T stuff */
    unsigned long isac_adr;
    unsigned int isac_ale;
    unsigned long jade_adr;
    unsigned int jade_ale;
    /* Scitel Quadro stuff */
    unsigned long plx_adr;
    unsigned long 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_TESTEMU
struct 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;
};
#endif

struct 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        10

struct 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;
        struct hisax_d_if *hisax_d_if;
    } 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  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_DYNAMIC     40
#define  ISDN_CTYPE_COUNT    40


#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_DEBUG
extern void Logl2Frame(struct IsdnCardState *cs, struct sk_buff *skb, char *buf, int dir);
#endif

struct IsdnCard {
    int typ;
    int protocol;        /* EDSS1, 1TR6 or NI1 */
    unsigned long 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);

int 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);
#ifdef ISDN_CHIP_ISAC
void 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);
int CallcNew(void);
void CallcFree(void);
int CallcNewChan(struct IsdnCardState *cs);
void CallcFreeChan(struct IsdnCardState *cs);
int Isdnl1New(void);
void Isdnl1Free(void);
int Isdnl2New(void);
void Isdnl2Free(void);
int 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);
int TeiNew(void);
void TeiFree(void);
int certification_check(int output);

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0324 ]--