fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / net / wireless / prism54 / islpci_dev.h
index 65f696c..a9aa166 100644 (file)
@@ -1,8 +1,8 @@
-/*  $Header: /var/lib/cvs/prism54-ng/ksrc/islpci_dev.h,v 1.53 2004/02/28 03:06:07 mcgrof Exp $
- *  
- *  Copyright (C) 2002 Intersil Americas Inc. 
+/*
+ *  Copyright (C) 2002 Intersil Americas Inc.
  *  Copyright (C) 2003 Herbert Valerio Riedel <hvr@gnu.org>
  *  Copyright (C) 2003 Luis R. Rodriguez <mcgrof@ruslug.rutgers.edu>
+ *  Copyright (C) 2003 Aurelien Alleaume <slts@free.fr>
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
 #ifndef _ISLPCI_DEV_H
 #define _ISLPCI_DEV_H
 
-#include <linux/version.h>
 #include <linux/netdevice.h>
 #include <linux/wireless.h>
+#include <net/iw_handler.h>
 #include <linux/list.h>
 
-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,41)
-# include <linux/workqueue.h>
-#else
-# include <linux/tqueue.h>
-# define work_struct tq_struct
-# define INIT_WORK INIT_TQUEUE
-# define schedule_work schedule_task
-#endif
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23)
-#define free_netdev(x) kfree(x) 
-#define pci_name(x) x->slot_name 
-#endif
-
 #include "isl_38xx.h"
 #include "isl_oid.h"
 #include "islpci_mgt.h"
@@ -85,12 +71,12 @@ struct islpci_bss_wpa_ie {
        u8 bssid[ETH_ALEN];
        u8 wpa_ie[MAX_WPA_IE_LEN];
        size_t wpa_ie_len;
-       
+
 };
 
 typedef struct {
        spinlock_t slock;       /* generic spinlock; */
-       
+
        u32 priv_oid;
 
        /* our mib cache */
@@ -98,7 +84,7 @@ typedef struct {
         struct rw_semaphore mib_sem;
        void **mib;
        char nickname[IW_ESSID_MAX_SIZE+1];
-       
+
        /* Take care of the wireless stats */
        struct work_struct stats_work;
        struct semaphore stats_sem;
@@ -110,14 +96,19 @@ typedef struct {
        struct iw_statistics local_iwstatistics;
        struct iw_statistics iwstatistics;
 
+       struct iw_spy_data spy_data; /* iwspy support */
+
+       struct iw_public_data wireless_data;
+
+       int monitor_type; /* ARPHRD_IEEE80211 or ARPHRD_IEEE80211_PRISM */
+
        struct islpci_acl acl;
 
        /* PCI bus allocation & configuration members */
        struct pci_dev *pdev;   /* PCI structure information */
-       u32 pci_state[16];      /* used for suspend/resume */
        char firmware[33];
 
-       void *device_base;      /* ioremapped device base address */
+       void __iomem *device_base;      /* ioremapped device base address */
 
        /* consistent DMA region */
        void *driver_mem_address;       /* base DMA address */
@@ -128,7 +119,7 @@ typedef struct {
        struct net_device *ndev;
 
        /* device queue interface members */
-       struct isl38xx_cb *control_block;       /* device control block 
+       struct isl38xx_cb *control_block;       /* device control block
                                                           (== driver_mem_address!) */
 
        /* Each queue has three indexes:
@@ -181,12 +172,17 @@ typedef struct {
        islpci_state_t state;
        int state_off;          /* enumeration of off-state, if 0 then
                                 * we're not in any off-state */
-       
+
        /* WPA stuff */
        int wpa; /* WPA mode enabled */
        struct list_head bss_wpa_list;
        int num_bss_wpa;
        struct semaphore wpa_sem;
+       u8 wpa_ie[MAX_WPA_IE_LEN];
+       size_t wpa_ie_len;
+
+       struct work_struct reset_task;
+       int reset_task_pending;
 } islpci_private;
 
 static inline islpci_state_t
@@ -201,13 +197,7 @@ islpci_state_t islpci_set_state(islpci_private *priv, islpci_state_t new_state);
 
 #define ISLPCI_TX_TIMEOUT               (2*HZ)
 
-#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,75))
-# define irqreturn_t void
-# define IRQ_HANDLED
-# define IRQ_NONE
-#endif
-
-irqreturn_t islpci_interrupt(int, void *, struct pt_regs *);
+irqreturn_t islpci_interrupt(int, void *);
 
 int prism54_post_setup(islpci_private *, int);
 int islpci_reset(islpci_private *, int);
@@ -219,10 +209,6 @@ islpci_trigger(islpci_private *priv)
                               priv->device_base);
 }
 
-struct net_device_stats *islpci_statistics(struct net_device *);
-
-int prism54_bring_down(islpci_private *);
-int islpci_alloc_memory(islpci_private *);
 int islpci_free_memory(islpci_private *);
 struct net_device *islpci_setup(struct pci_dev *);
 #endif                         /* _ISLPCI_DEV_H */