linux/drivers/isdn/hisax/hisax_fcpcipnp.h
<<
>>
Prefs
   1#include "hisax_if.h"
   2#include "hisax_isac.h"
   3#include <linux/pci.h>
   4
   5#define HSCX_BUFMAX     4096
   6
   7enum {
   8        AVM_FRITZ_PCI,
   9        AVM_FRITZ_PNP,
  10        AVM_FRITZ_PCIV2,
  11};
  12
  13struct hdlc_stat_reg {
  14#ifdef __BIG_ENDIAN
  15        u_char fill;
  16        u_char mode;
  17        u_char xml;
  18        u_char cmd;
  19#else
  20        u_char cmd;
  21        u_char xml;
  22        u_char mode;
  23        u_char fill;
  24#endif
  25} __attribute__((packed));
  26
  27struct fritz_bcs {
  28        struct hisax_b_if b_if;
  29        struct fritz_adapter *adapter;
  30        int mode;
  31        int channel;
  32
  33        union {
  34                u_int ctrl;
  35                struct hdlc_stat_reg sr;
  36        } ctrl;
  37        u_int stat;
  38        int rcvidx;
  39        int fifo_size;
  40        u_char rcvbuf[HSCX_BUFMAX]; /* B-Channel receive Buffer */
  41        
  42        int tx_cnt;                 /* B-Channel transmit counter */
  43        struct sk_buff *tx_skb;     /* B-Channel transmit Buffer */
  44};
  45
  46struct fritz_adapter {
  47        int type;
  48        spinlock_t hw_lock;
  49        unsigned int io;
  50        unsigned int irq;
  51        struct isac isac;
  52
  53        struct fritz_bcs bcs[2];
  54
  55        u32  (*read_hdlc_status) (struct fritz_adapter *adapter, int nr);
  56        void (*write_ctrl) (struct fritz_bcs *bcs, int which);
  57};
  58
  59