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

Linux/Unix编程

开发平台:

Unix_Linux

  1. /* orinoco.h
  2.  * 
  3.  * Common definitions to all pieces of the various orinoco
  4.  * drivers
  5.  */
  6. #ifndef _ORINOCO_H
  7. #define _ORINOCO_H
  8. /* To enable debug messages */
  9. //#define ORINOCO_DEBUG 3
  10. #if (! defined (WIRELESS_EXT)) || (WIRELESS_EXT < 10)
  11. #error "orinoco driver requires Wireless extensions v10 or later."
  12. #endif /* (! defined (WIRELESS_EXT)) || (WIRELESS_EXT < 10) */
  13. #define WIRELESS_SPY // enable iwspy support
  14. #define ORINOCO_MAX_KEY_SIZE 14
  15. #define ORINOCO_MAX_KEYS 4
  16. typedef struct orinoco_key {
  17. u16 len; /* always store little-endian */
  18. char data[ORINOCO_MAX_KEY_SIZE];
  19. } __attribute__ ((packed)) orinoco_key_t;
  20. typedef orinoco_key_t orinoco_keys_t[ORINOCO_MAX_KEYS];
  21. /*====================================================================*/
  22. struct orinoco_private {
  23. void *card; /* Pointer to card dependant structure */
  24. /* card dependant extra reset code (i.e. bus/interface specific */
  25. int (*hard_reset)(struct orinoco_private *);
  26. spinlock_t lock;
  27. long state;
  28. #define ORINOCO_STATE_INIRQ 0
  29. #define ORINOCO_STATE_DOIRQ 1
  30. /* Net device stuff */
  31. struct net_device *ndev;
  32. struct net_device_stats stats;
  33. struct iw_statistics wstats;
  34. /* Hardware control variables */
  35. hermes_t hw;
  36. u16 txfid;
  37. /* Capabilities of the hardware/firmware */
  38. int firmware_type;
  39. #define FIRMWARE_TYPE_AGERE 1
  40. #define FIRMWARE_TYPE_INTERSIL 2
  41. #define FIRMWARE_TYPE_SYMBOL 3
  42. int has_ibss, has_port3, has_ibss_any, ibss_port;
  43. int has_wep, has_big_wep;
  44. int has_mwo;
  45. int has_pm;
  46. int has_preamble;
  47. int has_sensitivity;
  48. int nicbuf_size;
  49. int broken_cor_reset;
  50. u16 channel_mask;
  51. /* Configuration paramaters */
  52. u32 iw_mode;
  53. int prefer_port3;
  54. u16 wep_on, wep_restrict, tx_key;
  55. orinoco_keys_t keys;
  56. int bitratemode;
  57.   char nick[IW_ESSID_MAX_SIZE+1];
  58. char desired_essid[IW_ESSID_MAX_SIZE+1];
  59. u16 frag_thresh, mwo_robust;
  60. u16 channel;
  61. u16 ap_density, rts_thresh;
  62. u16 pm_on, pm_mcast, pm_period, pm_timeout;
  63. u16 preamble;
  64. #ifdef WIRELESS_SPY
  65. int spy_number;
  66. u_char spy_address[IW_MAX_SPY][ETH_ALEN];
  67. struct iw_quality spy_stat[IW_MAX_SPY];
  68. #endif
  69. /* Configuration dependent variables */
  70. int port_type, allow_ibss;
  71. int promiscuous, mc_count;
  72. /* /proc based debugging stuff */
  73. struct proc_dir_entry *dir_dev;
  74. };
  75. /*====================================================================*/
  76. extern struct list_head orinoco_instances;
  77. #ifdef ORINOCO_DEBUG
  78. extern int orinoco_debug;
  79. #define DEBUG(n, args...) do { if (orinoco_debug>(n)) printk(KERN_DEBUG args); } while(0)
  80. #define DEBUGMORE(n, args...) do { if (orinoco_debug>(n)) printk(args); } while (0)
  81. #else
  82. #define DEBUG(n, args...) do { } while (0)
  83. #define DEBUGMORE(n, args...) do { } while (0)
  84. #endif /* ORINOCO_DEBUG */
  85. #define TRACE_ENTER(devname) DEBUG(2, "%s: -> " __FUNCTION__ "()n", devname);
  86. #define TRACE_EXIT(devname)  DEBUG(2, "%s: <- " __FUNCTION__ "()n", devname);
  87. #define RUP_EVEN(a) ( (a) % 2 ? (a) + 1 : (a) )
  88. /* utility routines */
  89. struct net_device *alloc_orinocodev(int sizeof_card);
  90. extern void orinoco_shutdown(struct orinoco_private *dev);
  91. extern int orinoco_reset(struct orinoco_private *dev);
  92. extern int orinoco_proc_dev_init(struct orinoco_private *dev);
  93. extern void orinoco_proc_dev_cleanup(struct orinoco_private *priv);
  94. extern void orinoco_interrupt(int irq, void * dev_id, struct pt_regs *regs);
  95. #endif /* _ORINOCO_H */