/*******************************************************************************
- Copyright(c) 1999 - 2006 Intel Corporation. All rights reserved.
+ Copyright(c) 1999 - 2005 Intel Corporation. All rights reserved.
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 the Free
Contact Information:
Linux NICS <linux.nics@intel.com>
- e1000-devel Mailing List <e1000-devel@lists.sourceforge.net>
Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
*******************************************************************************/
#define _E1000_H_
#include <linux/stddef.h>
+#include <linux/config.h>
#include <linux/module.h>
#include <linux/types.h>
#include <asm/byteorder.h>
#ifdef NETIF_F_TSO
#include <net/checksum.h>
#endif
+#include <linux/workqueue.h>
#include <linux/mii.h>
#include <linux/ethtool.h>
#include <linux/if_vlan.h>
#define E1000_MIN_RXD 80
#define E1000_MAX_82544_RXD 4096
-/* this is the size past which hardware will drop packets when setting LPE=0 */
-#define MAXIMUM_ETHERNET_VLAN_SIZE 1522
-
/* Supported Rx Buffer Sizes */
#define E1000_RXBUFFER_128 128 /* Used for packet split */
#define E1000_RXBUFFER_256 256 /* Used for packet split */
-#define E1000_RXBUFFER_512 512
-#define E1000_RXBUFFER_1024 1024
#define E1000_RXBUFFER_2048 2048
#define E1000_RXBUFFER_4096 4096
#define E1000_RXBUFFER_8192 8192
#define AUTO_ALL_MODES 0
#define E1000_EEPROM_82544_APM 0x0004
-#define E1000_EEPROM_ICH8_APME 0x0004
#define E1000_EEPROM_APME 0x0400
#ifndef E1000_MASTER_SLAVE
spinlock_t tx_queue_lock;
#endif
atomic_t irq_sem;
+ struct work_struct watchdog_task;
struct work_struct reset_task;
uint8_t fc_autoneg;
boolean_t have_msi;
#endif
/* to not mess up cache alignment, always add to the bottom */
+ boolean_t txb2b;
#ifdef NETIF_F_TSO
boolean_t tso_force;
#endif
- boolean_t smart_power_down; /* phy smart power down */
- unsigned long flags;
};
-enum e1000_state_t {
- __E1000_DRIVER_TESTING,
- __E1000_RESETTING,
-};
/* e1000_main.c */
extern char e1000_driver_name[];
int e1000_up(struct e1000_adapter *adapter);
void e1000_down(struct e1000_adapter *adapter);
void e1000_reset(struct e1000_adapter *adapter);
-void e1000_reinit_locked(struct e1000_adapter *adapter);
int e1000_setup_all_tx_resources(struct e1000_adapter *adapter);
void e1000_free_all_tx_resources(struct e1000_adapter *adapter);
int e1000_setup_all_rx_resources(struct e1000_adapter *adapter);