e1000g_sw.h revision ede5269ebe7fa3787cc9b58c3781b639c578f93d
080575042aba2197b425ebfd52061dea061a9aa1xy * This file is provided under a CDDLv1 license. When using or
080575042aba2197b425ebfd52061dea061a9aa1xy * redistributing this file, you may do so under this license.
080575042aba2197b425ebfd52061dea061a9aa1xy * In redistributing this file this license must be included
080575042aba2197b425ebfd52061dea061a9aa1xy * and no other modification of this header file is permitted.
080575042aba2197b425ebfd52061dea061a9aa1xy * CDDL LICENSE SUMMARY
d5c3073dbbd835e1e9b7dca0c6c770cf3cc20afachenlu chen - Sun Microsystems - Beijing China * Copyright(c) 1999 - 2008 Intel Corporation. All rights reserved.
080575042aba2197b425ebfd52061dea061a9aa1xy * The contents of this file are subject to the terms of Version
080575042aba2197b425ebfd52061dea061a9aa1xy * 1.0 of the Common Development and Distribution License (the "License").
080575042aba2197b425ebfd52061dea061a9aa1xy * You should have received a copy of the License with this software.
080575042aba2197b425ebfd52061dea061a9aa1xy * You can obtain a copy of the License at
080575042aba2197b425ebfd52061dea061a9aa1xy * See the License for the specific language governing permissions
080575042aba2197b425ebfd52061dea061a9aa1xy * and limitations under the License.
3f64cd552fee350c8075ec62765e9a6f9caef1a8guoqing zhu - Sun Microsystems - Beijing China * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
193974072f41a843678abf5f61979c748687e66bSherry Moore * Use is subject to license terms.
080575042aba2197b425ebfd52061dea061a9aa1xyextern "C" {
080575042aba2197b425ebfd52061dea061a9aa1xy * **********************************************************************
080575042aba2197b425ebfd52061dea061a9aa1xy * Module Name: *
080575042aba2197b425ebfd52061dea061a9aa1xy * Abstract: *
080575042aba2197b425ebfd52061dea061a9aa1xy * This header file contains Software-related data structures *
080575042aba2197b425ebfd52061dea061a9aa1xy * definitions. *
080575042aba2197b425ebfd52061dea061a9aa1xy * **********************************************************************
d5c3073dbbd835e1e9b7dca0c6c770cf3cc20afachenlu chen - Sun Microsystems - Beijing China#define JUMBO_FRAG_LENGTH 4096
d5c3073dbbd835e1e9b7dca0c6c770cf3cc20afachenlu chen - Sun Microsystems - Beijing China#define LAST_RAR_ENTRY (E1000_RAR_ENTRIES - 1)
d5c3073dbbd835e1e9b7dca0c6c770cf3cc20afachenlu chen - Sun Microsystems - Beijing China#define MAX_NUM_UNICAST_ADDRESSES E1000_RAR_ENTRIES
d5c3073dbbd835e1e9b7dca0c6c770cf3cc20afachenlu chen - Sun Microsystems - Beijing China#define MAX_NUM_MULTICAST_ADDRESSES 256
080575042aba2197b425ebfd52061dea061a9aa1xy * MAX_COOKIES = max_LSO_packet_size(65535 + ethernet_header_len)/page_size
080575042aba2197b425ebfd52061dea061a9aa1xy * + one for cross page split
080575042aba2197b425ebfd52061dea061a9aa1xy * MAX_TX_DESC_PER_PACKET = MAX_COOKIES + one for the context descriptor +
080575042aba2197b425ebfd52061dea061a9aa1xy * two for the workaround of the 82546 chip
4d7379630d53d9992780329b674af8c85935e858xiangtao you - Sun Microsystems - Beijing China * constants used in setting flow control thresholds
4d7379630d53d9992780329b674af8c85935e858xiangtao you - Sun Microsystems - Beijing China#define E1000_PBA_MASK 0xffff
4d7379630d53d9992780329b674af8c85935e858xiangtao you - Sun Microsystems - Beijing China#define E1000_PBA_SHIFT 10
080575042aba2197b425ebfd52061dea061a9aa1xy#define E1000_FC_HIGH_DIFF 0x1638 /* High: 5688 bytes below Rx FIFO size */
080575042aba2197b425ebfd52061dea061a9aa1xy#define E1000_FC_LOW_DIFF 0x1640 /* Low: 5696 bytes below Rx FIFO size */
0c56b8d9d1c30af2e78d0a6fd8a6a70aa5310099changqing li - Sun Microsystems - Beijing China#define MIN_NUM_TX_FREELIST 80
0c56b8d9d1c30af2e78d0a6fd8a6a70aa5310099changqing li - Sun Microsystems - Beijing China#define DEFAULT_NUM_RX_FREELIST 4096
1bc1c72171ee0c5d77203ddffb90219d991bd6e8guoqing zhu - Sun Microsystems - Beijing China#define MIN_INTR_PER_SEC 3000
1bc1c72171ee0c5d77203ddffb90219d991bd6e8guoqing zhu - Sun Microsystems - Beijing China#define DEFAULT_INTR_PACKET_LOW 5
1bc1c72171ee0c5d77203ddffb90219d991bd6e8guoqing zhu - Sun Microsystems - Beijing China#define DEFAULT_INTR_PACKET_HIGH 128
1bc1c72171ee0c5d77203ddffb90219d991bd6e8guoqing zhu - Sun Microsystems - Beijing China#define DEFAULT_TX_RECYCLE_THRESHOLD 512
47b7744cbea59975a6b583125b7ed1ff2ac45313yy#define DEFAULT_TX_RECYCLE_THRESHOLD DEFAULT_TX_NO_RESOURCE
47b7744cbea59975a6b583125b7ed1ff2ac45313yy#define DEFAULT_INTR_THROTTLING_HIGH 1000000000/(MIN_INTR_PER_SEC*256)
47b7744cbea59975a6b583125b7ed1ff2ac45313yy#define DEFAULT_INTR_THROTTLING_LOW 1000000000/(MAX_INTR_PER_SEC*256)
25f2d433de915875c8393f0b0dc14aa155997ad0xy#define DEFAULT_INTR_THROTTLING DEFAULT_INTR_THROTTLING_LOW
47b7744cbea59975a6b583125b7ed1ff2ac45313yy#define DEFAULT_MASTER_LATENCY_TIMER 0 /* BIOS should decide */
c7770590c6dc06be2588a5c21427e2d823baa989mx /* which is normally 0x040 */
25f2d433de915875c8393f0b0dc14aa155997ad0xy#define DEFAULT_TBI_COMPAT_ENABLE 1 /* Enable SBP workaround */
25f2d433de915875c8393f0b0dc14aa155997ad0xy#define DEFAULT_TX_HCKSUM_ENABLE 1 /* Hardware checksum enable */
25f2d433de915875c8393f0b0dc14aa155997ad0xy#define TX_DRAIN_TIME (200) /* # milliseconds xmit drain */
c7770590c6dc06be2588a5c21427e2d823baa989mx * The size of the receive/transmite buffers
54e0d7a5e8285a3f01a0db8db1246ac7cac94d81Miles Xu, Sun Microsystems#define E1000_RX_BUFFER_SIZE_8K (8192)
54e0d7a5e8285a3f01a0db8db1246ac7cac94d81Miles Xu, Sun Microsystems#define E1000_RX_BUFFER_SIZE_16K (16384)
54e0d7a5e8285a3f01a0db8db1246ac7cac94d81Miles Xu, Sun Microsystems#define E1000_TX_BUFFER_SIZE_2K (2048)
080575042aba2197b425ebfd52061dea061a9aa1xy * definitions for smartspeed workaround
c7770590c6dc06be2588a5c21427e2d823baa989mx#define E1000_SMARTSPEED_MAX 30 /* 30 watchdog iterations */
080575042aba2197b425ebfd52061dea061a9aa1xy /* or 30 seconds */
54e0d7a5e8285a3f01a0db8db1246ac7cac94d81Miles Xu, Sun Microsystems#define E1000_SMARTSPEED_DOWNSHIFT 6 /* 6 watchdog iterations */
54e0d7a5e8285a3f01a0db8db1246ac7cac94d81Miles Xu, Sun Microsystems /* or 6 seconds */
ae6aa22afeb444ae208c287e7227a4a7c877f17aVenugopal Iyer * Definitions for module_info.
080575042aba2197b425ebfd52061dea061a9aa1xy * Defined for IP header alignment. We also need to preserve space for
080575042aba2197b425ebfd52061dea061a9aa1xy * VLAN tag (4 bytes)
080575042aba2197b425ebfd52061dea061a9aa1xy * bit flags for 'attach_progress' which is a member variable in struct e1000g
080575042aba2197b425ebfd52061dea061a9aa1xy#define ATTACH_PROGRESS_PCI_CONFIG 0x0001 /* PCI config setup */
080575042aba2197b425ebfd52061dea061a9aa1xy#define ATTACH_PROGRESS_REGS_MAP 0x0002 /* Registers mapped */
080575042aba2197b425ebfd52061dea061a9aa1xy#define ATTACH_PROGRESS_SETUP 0x0004 /* Setup driver parameters */
080575042aba2197b425ebfd52061dea061a9aa1xy#define ATTACH_PROGRESS_ADD_INTR 0x0008 /* Interrupt added */
080575042aba2197b425ebfd52061dea061a9aa1xy#define ATTACH_PROGRESS_LOCKS 0x0010 /* Locks initialized */
080575042aba2197b425ebfd52061dea061a9aa1xy#define ATTACH_PROGRESS_SOFT_INTR 0x0020 /* Soft interrupt added */
080575042aba2197b425ebfd52061dea061a9aa1xy#define ATTACH_PROGRESS_KSTATS 0x0040 /* Kstats created */
080575042aba2197b425ebfd52061dea061a9aa1xy#define ATTACH_PROGRESS_ALLOC 0x0080 /* DMA resources allocated */
080575042aba2197b425ebfd52061dea061a9aa1xy#define ATTACH_PROGRESS_INIT 0x0100 /* Driver initialization */
080575042aba2197b425ebfd52061dea061a9aa1xy/* 0200 used to be PROGRESS_NDD. Now unused */
25f2d433de915875c8393f0b0dc14aa155997ad0xy#define ATTACH_PROGRESS_ENABLE_INTR 0x0800 /* DDI interrupts enabled */
25f2d433de915875c8393f0b0dc14aa155997ad0xy * Speed and Duplex Settings
080575042aba2197b425ebfd52061dea061a9aa1xy * Coexist Workaround RP: 07/04/03
080575042aba2197b425ebfd52061dea061a9aa1xy * 82544 Workaround : Co-existence
080575042aba2197b425ebfd52061dea061a9aa1xy * Defines for Jumbo Frame
080575042aba2197b425ebfd52061dea061a9aa1xy (DEFAULT_MTU + sizeof (struct ether_vlan_header) + ETHERFCSL)
080575042aba2197b425ebfd52061dea061a9aa1xy (MAXIMUM_MTU + sizeof (struct ether_vlan_header) + ETHERFCSL)
9ce7e93c0e8e6d2b400f40e9c5742b1d6682611ecc/* Defines for Tx stall check */
caf05df5c10c960028f122b1b02a3f7d8f892c31Miles Xu, Sun Microsystems#define E1000G_STALL_WATCHDOG_COUNT 8
9ce7e93c0e8e6d2b400f40e9c5742b1d6682611ecc/* Defines for DVMA */
96ea4e937aa9d4d9bcb316497c698a4f411380b7changqing li - Sun Microsystems - Beijing China * Loopback definitions
080575042aba2197b425ebfd52061dea061a9aa1xy * Private dip list definitions
080575042aba2197b425ebfd52061dea061a9aa1xy * Tx descriptor LENGTH field mask
080575042aba2197b425ebfd52061dea061a9aa1xy * QUEUE_INIT_LIST -- Macro which will init ialize a queue to NULL.
080575042aba2197b425ebfd52061dea061a9aa1xy * IS_QUEUE_EMPTY -- Macro which checks to see if a queue is empty.
46ebaa55cce1df60528a191312d12199d38a4493Miles Xu, Sun Microsystems * QUEUE_GET_HEAD -- Macro which returns the head of the queue, but does
46ebaa55cce1df60528a191312d12199d38a4493Miles Xu, Sun Microsystems * not remove the head from the queue.
46ebaa55cce1df60528a191312d12199d38a4493Miles Xu, Sun Microsystems#define QUEUE_GET_HEAD(_LH) ((PSINGLE_LIST_LINK)((_LH)->Flink))
080575042aba2197b425ebfd52061dea061a9aa1xy * QUEUE_REMOVE_HEAD -- Macro which removes the head of the head of a queue.
080575042aba2197b425ebfd52061dea061a9aa1xy * QUEUE_POP_HEAD -- Macro which will pop the head off of a queue (list),
080575042aba2197b425ebfd52061dea061a9aa1xy * and return it (this differs from QUEUE_REMOVE_HEAD only in
080575042aba2197b425ebfd52061dea061a9aa1xy * the 1st line).
080575042aba2197b425ebfd52061dea061a9aa1xy * QUEUE_GET_TAIL -- Macro which returns the tail of the queue, but does not
080575042aba2197b425ebfd52061dea061a9aa1xy * remove the tail from the queue.
080575042aba2197b425ebfd52061dea061a9aa1xy#define QUEUE_GET_TAIL(_LH) ((PSINGLE_LIST_LINK)((_LH)->Blink))
080575042aba2197b425ebfd52061dea061a9aa1xy * QUEUE_PUSH_TAIL -- Macro which puts an element at the tail (end) of the queue
080575042aba2197b425ebfd52061dea061a9aa1xy } else { \
080575042aba2197b425ebfd52061dea061a9aa1xy * QUEUE_PUSH_HEAD -- Macro which puts an element at the head of the queue.
080575042aba2197b425ebfd52061dea061a9aa1xy * QUEUE_GET_NEXT -- Macro which returns the next element linked to the
080575042aba2197b425ebfd52061dea061a9aa1xy * current element.
080575042aba2197b425ebfd52061dea061a9aa1xy * QUEUE_APPEND -- Macro which appends a queue to the tail of another queue
080575042aba2197b425ebfd52061dea061a9aa1xy } else { \
080575042aba2197b425ebfd52061dea061a9aa1xy * Property lookups
080575042aba2197b425ebfd52061dea061a9aa1xy#define E1000G_PROP_EXISTS(d, n) ddi_prop_exists(DDI_DEV_T_ANY, (d), \
080575042aba2197b425ebfd52061dea061a9aa1xy#define E1000G_PROP_GET_INT(d, n) ddi_prop_get_int(DDI_DEV_T_ANY, (d), \
080575042aba2197b425ebfd52061dea061a9aa1xy * E1000G-specific ioctls ...
080575042aba2197b425ebfd52061dea061a9aa1xy * These diagnostic IOCTLS are enabled only in DEBUG drivers
da14cebe459d3275048785f25bd869cb09b5307fEric Cheng#define E1000G_PP_SPACE_REG 0 /* PCI memory space */
da14cebe459d3275048785f25bd869cb09b5307fEric Cheng#define E1000G_PP_SPACE_E1000G 1 /* driver's soft state */
080575042aba2197b425ebfd52061dea061a9aa1xytypedef struct {
080575042aba2197b425ebfd52061dea061a9aa1xy /* input for poke */
080575042aba2197b425ebfd52061dea061a9aa1xy#endif /* E1000G_DEBUG */
080575042aba2197b425ebfd52061dea061a9aa1xy * (Internal) return values from ioctl subroutines
080575042aba2197b425ebfd52061dea061a9aa1xy * Named Data (ND) Parameter Management Structure
080575042aba2197b425ebfd52061dea061a9aa1xytypedef struct {
25f2d433de915875c8393f0b0dc14aa155997ad0xy * The entry of the private dip list
080575042aba2197b425ebfd52061dea061a9aa1xytypedef struct _private_devi_list {
080575042aba2197b425ebfd52061dea061a9aa1xy * A structure that points to the next entry in the queue.
080575042aba2197b425ebfd52061dea061a9aa1xytypedef struct _SINGLE_LIST_LINK {
080575042aba2197b425ebfd52061dea061a9aa1xy * A "ListHead" structure that points to the head and tail of a queue
080575042aba2197b425ebfd52061dea061a9aa1xytypedef struct _LIST_DESCRIBER {
ea6b684a18957883cb91b3d22a9d989f986e5a32yy * Address-Length pair structure that stores descriptor info
ea6b684a18957883cb91b3d22a9d989f986e5a32yytypedef struct _sw_desc {
080575042aba2197b425ebfd52061dea061a9aa1xytypedef enum {
080575042aba2197b425ebfd52061dea061a9aa1xytypedef enum {
080575042aba2197b425ebfd52061dea061a9aa1xytypedef struct _dma_buffer {
3f64cd552fee350c8075ec62765e9a6f9caef1a8guoqing zhu - Sun Microsystems - Beijing China caddr_t address;
3f64cd552fee350c8075ec62765e9a6f9caef1a8guoqing zhu - Sun Microsystems - Beijing China uint64_t dma_address;
3f64cd552fee350c8075ec62765e9a6f9caef1a8guoqing zhu - Sun Microsystems - Beijing China ddi_acc_handle_t acc_handle;
3f64cd552fee350c8075ec62765e9a6f9caef1a8guoqing zhu - Sun Microsystems - Beijing China ddi_dma_handle_t dma_handle;
3f64cd552fee350c8075ec62765e9a6f9caef1a8guoqing zhu - Sun Microsystems - Beijing China} dma_buffer_t, *p_dma_buffer_t;
3f64cd552fee350c8075ec62765e9a6f9caef1a8guoqing zhu - Sun Microsystems - Beijing China * Transmit Control Block (TCB), Ndis equiv of SWPacket This
3f64cd552fee350c8075ec62765e9a6f9caef1a8guoqing zhu - Sun Microsystems - Beijing China * structure stores the additional information that is
3f64cd552fee350c8075ec62765e9a6f9caef1a8guoqing zhu - Sun Microsystems - Beijing China * associated with every packet to be transmitted. It stores the
080575042aba2197b425ebfd52061dea061a9aa1xy * message block pointer and the TBD addresses associated with
080575042aba2197b425ebfd52061dea061a9aa1xy * the m_blk and also the link to the next tcb in the chain
25f2d433de915875c8393f0b0dc14aa155997ad0xytypedef struct _tx_sw_packet {
25f2d433de915875c8393f0b0dc14aa155997ad0xy /* Link to the next tx_sw_packet in the list */
080575042aba2197b425ebfd52061dea061a9aa1xy * This structure is similar to the rx_sw_packet structure used
080575042aba2197b425ebfd52061dea061a9aa1xy * for Ndis. This structure stores information about the 2k
080575042aba2197b425ebfd52061dea061a9aa1xy * aligned receive buffer into which the FX1000 DMA's frames.
080575042aba2197b425ebfd52061dea061a9aa1xy * This structure is maintained as a linked list of many
080575042aba2197b425ebfd52061dea061a9aa1xy * receiver buffer pointers.
080575042aba2197b425ebfd52061dea061a9aa1xytypedef struct _rx_sw_packet {
080575042aba2197b425ebfd52061dea061a9aa1xy /* Link to the next rx_sw_packet_t in the list */
080575042aba2197b425ebfd52061dea061a9aa1xytypedef struct _mblk_list {
25f2d433de915875c8393f0b0dc14aa155997ad0xytypedef struct _context_data {
25f2d433de915875c8393f0b0dc14aa155997ad0xytypedef union _e1000g_ether_addr {
25f2d433de915875c8393f0b0dc14aa155997ad0xy kstat_named_t rx_esballoc_fail; /* Rx Desballoc Failure */
c7770590c6dc06be2588a5c21427e2d823baa989mx kstat_named_t rx_avail_freepkt; /* Rx Freelist Avail Buffers */
25f2d433de915875c8393f0b0dc14aa155997ad0xy kstat_named_t tx_multi_copy; /* Tx Copy Multi Fragments */
080575042aba2197b425ebfd52061dea061a9aa1xy kstat_named_t tx_multi_cookie; /* Tx Pkt Span Multi Cookies */
46ebaa55cce1df60528a191312d12199d38a4493Miles Xu, Sun Microsystems kstat_named_t Latecol; /* Late Collision Count */
25f2d433de915875c8393f0b0dc14aa155997ad0xy kstat_named_t Fcruc; /* Unknown Flow Conrol Packet Rcvd Count */
080575042aba2197b425ebfd52061dea061a9aa1xy kstat_named_t Prc1023; /* Packets Received - 511-1023b */
080575042aba2197b425ebfd52061dea061a9aa1xy kstat_named_t Prc1522; /* Packets Received - 1024-1522b */
47b7744cbea59975a6b583125b7ed1ff2ac45313yy kstat_named_t Cexterr; /* Carrier Extension Error count */
080575042aba2197b425ebfd52061dea061a9aa1xy kstat_named_t Tsctfc; /* TCP seg contexts xmit fail count */
080575042aba2197b425ebfd52061dea061a9aa1xytypedef struct _e1000g_tx_ring {
080575042aba2197b425ebfd52061dea061a9aa1xy * Descriptor queue definitions
080575042aba2197b425ebfd52061dea061a9aa1xy * Software packet structures definitions
080575042aba2197b425ebfd52061dea061a9aa1xy * TCP/UDP Context Data Information
080575042aba2197b425ebfd52061dea061a9aa1xy * Timer definitions for 82547
25f2d433de915875c8393f0b0dc14aa155997ad0xy * reschedule when tx resource is available
080575042aba2197b425ebfd52061dea061a9aa1xy * Statistics
080575042aba2197b425ebfd52061dea061a9aa1xy * Pointer to the adapter
25f2d433de915875c8393f0b0dc14aa155997ad0xytypedef struct _e1000g_rx_ring {
25f2d433de915875c8393f0b0dc14aa155997ad0xy * Descriptor queue definitions
25f2d433de915875c8393f0b0dc14aa155997ad0xy * Software packet structures definitions
25f2d433de915875c8393f0b0dc14aa155997ad0xy * Statistics
080575042aba2197b425ebfd52061dea061a9aa1xy * Pointer to the adapter
080575042aba2197b425ebfd52061dea061a9aa1xytypedef struct e1000g {
54e0d7a5e8285a3f01a0db8db1246ac7cac94d81Miles Xu, Sun Microsystems uint32_t smartspeed; /* smartspeed w/a counter */
54e0d7a5e8285a3f01a0db8db1246ac7cac94d81Miles Xu, Sun Microsystems uint32_t attach_progress; /* attach tracking */
25f2d433de915875c8393f0b0dc14aa155997ad0xy * Rx and Tx packet count for interrupt adaptive setting
25f2d433de915875c8393f0b0dc14aa155997ad0xy * The watchdog_lock must be held when updateing the
25f2d433de915875c8393f0b0dc14aa155997ad0xy * timeout fields in struct e1000g, that is,
25f2d433de915875c8393f0b0dc14aa155997ad0xy * watchdog_tid, watchdog_timer_started.
54e0d7a5e8285a3f01a0db8db1246ac7cac94d81Miles Xu, Sun Microsystems * The link_lock protects the link fields in struct e1000g,
54e0d7a5e8285a3f01a0db8db1246ac7cac94d81Miles Xu, Sun Microsystems * such as link_state, link_speed, link_duplex, link_complete, and
25f2d433de915875c8393f0b0dc14aa155997ad0xy * link_tid.
25f2d433de915875c8393f0b0dc14aa155997ad0xy * The chip_lock assures that the Rx/Tx process must be
25f2d433de915875c8393f0b0dc14aa155997ad0xy * stopped while other functions change the hardware
25f2d433de915875c8393f0b0dc14aa155997ad0xy * configuration of e1000g card, such as e1000g_reset(),
25f2d433de915875c8393f0b0dc14aa155997ad0xy * e1000g_reset_hw() etc are executed.
25f2d433de915875c8393f0b0dc14aa155997ad0xy e1000g_ether_addr_t unicst_addr[MAX_NUM_UNICAST_ADDRESSES];
ede5269ebe7fa3787cc9b58c3781b639c578f93dchenlu chen - Sun Microsystems - Beijing China uint32_t mcast_count;
25f2d433de915875c8393f0b0dc14aa155997ad0xy struct ether_addr mcast_table[MAX_NUM_MULTICAST_ADDRESSES];
1bc1c72171ee0c5d77203ddffb90219d991bd6e8guoqing zhu - Sun Microsystems - Beijing China boolean_t lso_enable;
1bc1c72171ee0c5d77203ddffb90219d991bd6e8guoqing zhu - Sun Microsystems - Beijing China boolean_t lso_premature_issue;
1bc1c72171ee0c5d77203ddffb90219d991bd6e8guoqing zhu - Sun Microsystems - Beijing China int intr_type;
1bc1c72171ee0c5d77203ddffb90219d991bd6e8guoqing zhu - Sun Microsystems - Beijing China int intr_cnt;
1bc1c72171ee0c5d77203ddffb90219d991bd6e8guoqing zhu - Sun Microsystems - Beijing China int intr_cap;
1bc1c72171ee0c5d77203ddffb90219d991bd6e8guoqing zhu - Sun Microsystems - Beijing China size_t intr_size;
25f2d433de915875c8393f0b0dc14aa155997ad0xy uint16_t phy_ext_status; /* contents of PHY_EXT_STATUS */
da14cebe459d3275048785f25bd869cb09b5307fEric Cheng uint16_t phy_1000t_ctrl; /* contents of PHY_1000T_CTRL */
da14cebe459d3275048785f25bd869cb09b5307fEric Cheng uint16_t phy_1000t_status; /* contents of PHY_1000T_STATUS */
47b7744cbea59975a6b583125b7ed1ff2ac45313yy * FMA capabilities
96ea4e937aa9d4d9bcb316497c698a4f411380b7changqing li - Sun Microsystems - Beijing China param_autoneg_cap:1,
96ea4e937aa9d4d9bcb316497c698a4f411380b7changqing li - Sun Microsystems - Beijing China param_pause_cap:1,
0c56b8d9d1c30af2e78d0a6fd8a6a70aa5310099changqing li - Sun Microsystems - Beijing China param_adv_10fdx:1,
0c56b8d9d1c30af2e78d0a6fd8a6a70aa5310099changqing li - Sun Microsystems - Beijing China param_adv_10hdx:1,
0c56b8d9d1c30af2e78d0a6fd8a6a70aa5310099changqing li - Sun Microsystems - Beijing China param_lp_autoneg:1,
3d15c084da89e6f689f1804f3e2e600e5376c4e1chenlu chen - Sun Microsystems - Beijing China param_pad_to_32:28;
080575042aba2197b425ebfd52061dea061a9aa1xy * Function prototypes
25f2d433de915875c8393f0b0dc14aa155997ad0xyvoid e1000g_release_dma_resources(struct e1000g *Adapter);
da14cebe459d3275048785f25bd869cb09b5307fEric Chengvoid e1000g_setup_multicast(struct e1000g *Adapter);
4914a7d0d1ee59f8cc21b19bfd7979cb65681eacyyuint_t e1000g_tx_softint_worker(caddr_t arg1, caddr_t arg2);
9ce7e93c0e8e6d2b400f40e9c5742b1d6682611eccvoid phy_spd_state(struct e1000_hw *hw, boolean_t enable);
4045d94132614e1de2073685a6cdd4fbd86bec33sowminiint e1000g_check_acc_handle(ddi_acc_handle_t handle);
4045d94132614e1de2073685a6cdd4fbd86bec33sowminiint e1000g_check_dma_handle(ddi_dma_handle_t handle);
4045d94132614e1de2073685a6cdd4fbd86bec33sowminivoid e1000g_fm_ereport(struct e1000g *Adapter, char *detail);
4045d94132614e1de2073685a6cdd4fbd86bec33sowminivoid e1000g_set_fma_flags(struct e1000g *Adapter, int acc_flag, int dma_flag);
4045d94132614e1de2073685a6cdd4fbd86bec33sowmini * Global variables
4045d94132614e1de2073685a6cdd4fbd86bec33sowminiextern private_devi_list_t *e1000g_private_devi_list;
4045d94132614e1de2073685a6cdd4fbd86bec33sowmini#endif /* _E1000G_SW_H */