hisax_fcpcipnp.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

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