diff options
| author | David S. Miller <davem@nuts.ninka.net> | 2002-10-02 14:20:42 -0700 |
|---|---|---|
| committer | David S. Miller <davem@nuts.ninka.net> | 2002-10-02 14:20:42 -0700 |
| commit | d7d2454a2adf6d816a63dfc080186b30d60ec275 (patch) | |
| tree | 1abe7cea8c1ad5c16a6c7e2d26d16b3b3a3df5a6 /include/linux | |
| parent | e367aa9aa56b1513b4ad35af382e61672ed489e5 (diff) | |
[EQL]: Rewrite to be SMP safe.
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/if_eql.h | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/include/linux/if_eql.h b/include/linux/if_eql.h index 112a3df19067..b68752fdc5c4 100644 --- a/include/linux/if_eql.h +++ b/include/linux/if_eql.h @@ -19,8 +19,6 @@ #ifndef _LINUX_IF_EQL_H #define _LINUX_IF_EQL_H -#include <linux/timer.h> - #define EQL_DEFAULT_SLAVE_PRIORITY 28800 #define EQL_DEFAULT_MAX_SLAVES 4 #define EQL_DEFAULT_MTU 576 @@ -35,46 +33,51 @@ #define EQL_GETMASTRCFG (SIOCDEVPRIVATE + 4) #define EQL_SETMASTRCFG (SIOCDEVPRIVATE + 5) +#ifdef __KERNEL__ + +#include <linux/timer.h> +#include <linux/spinlock.h> + typedef struct slave { - struct net_device *dev; - long priority; - long priority_bps; - long priority_Bps; - long bytes_queued; - struct slave *next; + struct list_head list; + struct net_device *dev; + long priority; + long priority_bps; + long priority_Bps; + long bytes_queued; } slave_t; typedef struct slave_queue { - slave_t *head; - slave_t *best_slave; - int num_slaves; - struct net_device *master_dev; - char lock; + spinlock_t lock; + struct list_head all_slaves; + int num_slaves; + struct net_device *master_dev; } slave_queue_t; typedef struct equalizer { - slave_queue_t *queue; - int min_slaves; - int max_slaves; - struct net_device_stats *stats; - struct timer_list timer; - char timer_on; + slave_queue_t queue; + int min_slaves; + int max_slaves; + struct net_device_stats stats; + struct timer_list timer; } equalizer_t; +#endif /* __KERNEL__ */ + typedef struct master_config { - char master_name[16]; - int max_slaves; - int min_slaves; + char master_name[16]; + int max_slaves; + int min_slaves; } master_config_t; typedef struct slave_config { - char slave_name[16]; - long priority; + char slave_name[16]; + long priority; } slave_config_t; typedef struct slaving_request { - char slave_name[16]; - long priority; + char slave_name[16]; + long priority; } slaving_request_t; |
