104b6cca3Slucy wang - Sun Microsystems - Beijing China /* 204b6cca3Slucy wang - Sun Microsystems - Beijing China * CDDL HEADER START 304b6cca3Slucy wang - Sun Microsystems - Beijing China * 404b6cca3Slucy wang - Sun Microsystems - Beijing China * The contents of this file are subject to the terms of the 504b6cca3Slucy wang - Sun Microsystems - Beijing China * Common Development and Distribution License (the "License"). 604b6cca3Slucy wang - Sun Microsystems - Beijing China * You may not use this file except in compliance with the License. 704b6cca3Slucy wang - Sun Microsystems - Beijing China * 804b6cca3Slucy wang - Sun Microsystems - Beijing China * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 904b6cca3Slucy wang - Sun Microsystems - Beijing China * or http://www.opensolaris.org/os/licensing. 1004b6cca3Slucy wang - Sun Microsystems - Beijing China * See the License for the specific language governing permissions 1104b6cca3Slucy wang - Sun Microsystems - Beijing China * and limitations under the License. 1204b6cca3Slucy wang - Sun Microsystems - Beijing China * 1304b6cca3Slucy wang - Sun Microsystems - Beijing China * When distributing Covered Code, include this CDDL HEADER in each 1404b6cca3Slucy wang - Sun Microsystems - Beijing China * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1504b6cca3Slucy wang - Sun Microsystems - Beijing China * If applicable, add the following below this CDDL HEADER, with the 1604b6cca3Slucy wang - Sun Microsystems - Beijing China * fields enclosed by brackets "[]" replaced with your own identifying 1704b6cca3Slucy wang - Sun Microsystems - Beijing China * information: Portions Copyright [yyyy] [name of copyright owner] 1804b6cca3Slucy wang - Sun Microsystems - Beijing China * 1904b6cca3Slucy wang - Sun Microsystems - Beijing China * CDDL HEADER END 2004b6cca3Slucy wang - Sun Microsystems - Beijing China */ 2104b6cca3Slucy wang - Sun Microsystems - Beijing China 2204b6cca3Slucy wang - Sun Microsystems - Beijing China /* 2304b6cca3Slucy wang - Sun Microsystems - Beijing China * Copyright 2007-2009 Myricom, Inc. All rights reserved. 2404b6cca3Slucy wang - Sun Microsystems - Beijing China * Use is subject to license terms. 2504b6cca3Slucy wang - Sun Microsystems - Beijing China */ 2604b6cca3Slucy wang - Sun Microsystems - Beijing China 2704b6cca3Slucy wang - Sun Microsystems - Beijing China #ifndef MYRI10GE_VAR_H 2804b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_VAR_H 2904b6cca3Slucy wang - Sun Microsystems - Beijing China 3004b6cca3Slucy wang - Sun Microsystems - Beijing China #ifdef __cplusplus 3104b6cca3Slucy wang - Sun Microsystems - Beijing China extern "C" { 3204b6cca3Slucy wang - Sun Microsystems - Beijing China #endif 3304b6cca3Slucy wang - Sun Microsystems - Beijing China 3404b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/types.h> 3504b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/errno.h> 3604b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/param.h> 3704b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/atomic.h> 3804b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/stropts.h> 3904b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/stream.h> 4004b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/kmem.h> 4104b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/ksynch.h> 4204b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/stat.h> 4304b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/modctl.h> 4404b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/debug.h> 4504b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/dlpi.h> 4604b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/ethernet.h> 4704b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/mac_provider.h> 4804b6cca3Slucy wang - Sun Microsystems - Beijing China #define MAC_CAPAB_POLL 0 4904b6cca3Slucy wang - Sun Microsystems - Beijing China #define MC_RESOURCES 0 5004b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/mac_ether.h> 5104b6cca3Slucy wang - Sun Microsystems - Beijing China #ifndef MYRICOM_PRIV 5204b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/vlan.h> 5304b6cca3Slucy wang - Sun Microsystems - Beijing China #endif 5404b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/pci.h> 5504b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/pcie.h> 5604b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/ddi.h> 5704b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/sunddi.h> 5804b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/strsubr.h> /* for hw cksum stuff */ 5904b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/pattr.h> /* for hw cksum stuff */ 6004b6cca3Slucy wang - Sun Microsystems - Beijing China #include <netinet/in.h> /* for hw cksum stuff */ 6104b6cca3Slucy wang - Sun Microsystems - Beijing China #include <netinet/ip.h> /* for hw cksum stuff */ 6204b6cca3Slucy wang - Sun Microsystems - Beijing China #include <netinet/ip6.h> /* for hw cksum stuff */ 6304b6cca3Slucy wang - Sun Microsystems - Beijing China #include <netinet/tcp.h> /* for hw cksum stuff */ 6404b6cca3Slucy wang - Sun Microsystems - Beijing China #include <netinet/udp.h> /* for hw cksum stuff */ 6504b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/strsun.h> 6604b6cca3Slucy wang - Sun Microsystems - Beijing China #include <inet/common.h> 6704b6cca3Slucy wang - Sun Microsystems - Beijing China #include <inet/mi.h> 6804b6cca3Slucy wang - Sun Microsystems - Beijing China #include <inet/nd.h> 6904b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/zmod.h> 7004b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/cpuvar.h> 7104b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/proc.h> 7204b6cca3Slucy wang - Sun Microsystems - Beijing China #include <sys/callb.h> 7304b6cca3Slucy wang - Sun Microsystems - Beijing China 7404b6cca3Slucy wang - Sun Microsystems - Beijing China #include "myri10ge_mcp.h" 7504b6cca3Slucy wang - Sun Microsystems - Beijing China #include "myri10ge_version.h" 7604b6cca3Slucy wang - Sun Microsystems - Beijing China 7704b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_FW_OFFSET 1024*1024 7804b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_EEPROM_STRINGS_SIZE 256 7904b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_HIGHPART_TO_U32(X) \ 8004b6cca3Slucy wang - Sun Microsystems - Beijing China (sizeof (X) == 8) ? ((uint32_t)((uint64_t)(X) >> 32)) : (0) 8104b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_LOWPART_TO_U32(X) ((uint32_t)(X)) 8204b6cca3Slucy wang - Sun Microsystems - Beijing China 8304b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_DDI_REG_SET_32_BIT_MEMORY_SPACE 2 8404b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_DDI_REG_SET_64_BIT_MEMORY_SPACE 3 8504b6cca3Slucy wang - Sun Microsystems - Beijing China 8604b6cca3Slucy wang - Sun Microsystems - Beijing China /* 8704b6cca3Slucy wang - Sun Microsystems - Beijing China * Max descriptors a TSO send can use; worst case is every descriptor 8804b6cca3Slucy wang - Sun Microsystems - Beijing China * crosses a 2KB boundary, as do the headers 8904b6cca3Slucy wang - Sun Microsystems - Beijing China */ 9004b6cca3Slucy wang - Sun Microsystems - Beijing China 9104b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_MAX_SEND_DESC_TSO (2 + (65536 / 2048) * 2) 9204b6cca3Slucy wang - Sun Microsystems - Beijing China 9304b6cca3Slucy wang - Sun Microsystems - Beijing China #ifdef MYRICOM_PRIV 9404b6cca3Slucy wang - Sun Microsystems - Beijing China #define VLAN_TAGSZ 4 9504b6cca3Slucy wang - Sun Microsystems - Beijing China #endif 9604b6cca3Slucy wang - Sun Microsystems - Beijing China 9704b6cca3Slucy wang - Sun Microsystems - Beijing China #if defined DDI_INTR_IS_MSI_OR_MSIX 9804b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_USE_MSI 1 9904b6cca3Slucy wang - Sun Microsystems - Beijing China #else 10004b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_USE_MSI 0 10104b6cca3Slucy wang - Sun Microsystems - Beijing China #endif 10204b6cca3Slucy wang - Sun Microsystems - Beijing China 10304b6cca3Slucy wang - Sun Microsystems - Beijing China 10404b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_dma_stuff { 10504b6cca3Slucy wang - Sun Microsystems - Beijing China ddi_dma_handle_t handle; 10604b6cca3Slucy wang - Sun Microsystems - Beijing China ddi_acc_handle_t acc_handle; 10704b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t low; 10804b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t high; 10904b6cca3Slucy wang - Sun Microsystems - Beijing China }; 11004b6cca3Slucy wang - Sun Microsystems - Beijing China 11104b6cca3Slucy wang - Sun Microsystems - Beijing China typedef struct myri10ge_mblkq { 11204b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_priv *mgp; 11304b6cca3Slucy wang - Sun Microsystems - Beijing China kmutex_t lock; 11404b6cca3Slucy wang - Sun Microsystems - Beijing China mblk_t *head; 11504b6cca3Slucy wang - Sun Microsystems - Beijing China mblk_t *tail; 11604b6cca3Slucy wang - Sun Microsystems - Beijing China unsigned long cnt; 11704b6cca3Slucy wang - Sun Microsystems - Beijing China } myri10ge_mblkq_t; 11804b6cca3Slucy wang - Sun Microsystems - Beijing China 11904b6cca3Slucy wang - Sun Microsystems - Beijing China typedef struct { 12004b6cca3Slucy wang - Sun Microsystems - Beijing China mcp_slot_t *entry; 12104b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_dma_stuff dma; 12204b6cca3Slucy wang - Sun Microsystems - Beijing China int cnt; 12304b6cca3Slucy wang - Sun Microsystems - Beijing China int idx; 12404b6cca3Slucy wang - Sun Microsystems - Beijing China } myri10ge_rx_done_t; 12504b6cca3Slucy wang - Sun Microsystems - Beijing China 12604b6cca3Slucy wang - Sun Microsystems - Beijing China 12704b6cca3Slucy wang - Sun Microsystems - Beijing China typedef struct 12804b6cca3Slucy wang - Sun Microsystems - Beijing China { 12904b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t data0; 13004b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t data1; 13104b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t data2; 13204b6cca3Slucy wang - Sun Microsystems - Beijing China } myri10ge_cmd_t; 13304b6cca3Slucy wang - Sun Microsystems - Beijing China 13404b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_pci_saved_state { 13504b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t base[16]; 13604b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t msi_addr_low; 13704b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t msi_addr_high; 13804b6cca3Slucy wang - Sun Microsystems - Beijing China uint16_t msi_data_32; 13904b6cca3Slucy wang - Sun Microsystems - Beijing China uint16_t msi_data_64; 14004b6cca3Slucy wang - Sun Microsystems - Beijing China uint16_t msi_ctrl; 14104b6cca3Slucy wang - Sun Microsystems - Beijing China }; 14204b6cca3Slucy wang - Sun Microsystems - Beijing China 14304b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_jpool_entry; 14404b6cca3Slucy wang - Sun Microsystems - Beijing China 14504b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_jpool_entry { 14604b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_jpool_entry *next; 14704b6cca3Slucy wang - Sun Microsystems - Beijing China ddi_dma_handle_t dma_handle; 14804b6cca3Slucy wang - Sun Microsystems - Beijing China ddi_acc_handle_t acc_handle; 14904b6cca3Slucy wang - Sun Microsystems - Beijing China caddr_t buf; 15004b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_slice_state *ss; 15104b6cca3Slucy wang - Sun Microsystems - Beijing China mcp_dma_addr_t dma; /* Kept in network byte order */ 15204b6cca3Slucy wang - Sun Microsystems - Beijing China frtn_t free_func; 15304b6cca3Slucy wang - Sun Microsystems - Beijing China }; 15404b6cca3Slucy wang - Sun Microsystems - Beijing China 15504b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_CPU_CACHE_SZ 64 15604b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_per_cpu_jpool { 15704b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_jpool_entry *head; 15804b6cca3Slucy wang - Sun Microsystems - Beijing China uint8_t _pad[MYRI10GE_CPU_CACHE_SZ - sizeof (void *)]; 15904b6cca3Slucy wang - Sun Microsystems - Beijing China }; 16004b6cca3Slucy wang - Sun Microsystems - Beijing China 16104b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_MAX_CPUS 64 16204b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_MAX_CPU_MASK (64 - 1) 16304b6cca3Slucy wang - Sun Microsystems - Beijing China 16404b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_jpool_stuff { 16504b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_jpool_entry *head; 16604b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_per_cpu_jpool cpu[MYRI10GE_MAX_CPUS]; 16704b6cca3Slucy wang - Sun Microsystems - Beijing China kmutex_t mtx; 16804b6cca3Slucy wang - Sun Microsystems - Beijing China int num_alloc; 16904b6cca3Slucy wang - Sun Microsystems - Beijing China int low_water; 17004b6cca3Slucy wang - Sun Microsystems - Beijing China }; 17104b6cca3Slucy wang - Sun Microsystems - Beijing China 17204b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_ring_stats 17304b6cca3Slucy wang - Sun Microsystems - Beijing China { 17404b6cca3Slucy wang - Sun Microsystems - Beijing China uint64_t multixmt; 17504b6cca3Slucy wang - Sun Microsystems - Beijing China uint64_t brdcstxmt; 17604b6cca3Slucy wang - Sun Microsystems - Beijing China uint64_t opackets; 17704b6cca3Slucy wang - Sun Microsystems - Beijing China uint64_t obytes; 17804b6cca3Slucy wang - Sun Microsystems - Beijing China }; 17904b6cca3Slucy wang - Sun Microsystems - Beijing China 18004b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_rx_ring_stats 18104b6cca3Slucy wang - Sun Microsystems - Beijing China { 18204b6cca3Slucy wang - Sun Microsystems - Beijing China uint64_t multircv; 18304b6cca3Slucy wang - Sun Microsystems - Beijing China uint64_t brdcstrcv; 18404b6cca3Slucy wang - Sun Microsystems - Beijing China uint64_t ipackets; 18504b6cca3Slucy wang - Sun Microsystems - Beijing China uint64_t ibytes; 18604b6cca3Slucy wang - Sun Microsystems - Beijing China }; 18704b6cca3Slucy wang - Sun Microsystems - Beijing China 18804b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_ring_entry_stats 18904b6cca3Slucy wang - Sun Microsystems - Beijing China { 19004b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t obytes; 19104b6cca3Slucy wang - Sun Microsystems - Beijing China uint16_t opackets; 19204b6cca3Slucy wang - Sun Microsystems - Beijing China uint8_t brdcstxmt; 19304b6cca3Slucy wang - Sun Microsystems - Beijing China uint8_t multixmt; 19404b6cca3Slucy wang - Sun Microsystems - Beijing China }; 19504b6cca3Slucy wang - Sun Microsystems - Beijing China 19604b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_pkt_stats { 19704b6cca3Slucy wang - Sun Microsystems - Beijing China union { 19804b6cca3Slucy wang - Sun Microsystems - Beijing China uint64_t all; 19904b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_ring_entry_stats s; 20004b6cca3Slucy wang - Sun Microsystems - Beijing China } un; 20104b6cca3Slucy wang - Sun Microsystems - Beijing China }; 20204b6cca3Slucy wang - Sun Microsystems - Beijing China 20304b6cca3Slucy wang - Sun Microsystems - Beijing China #define ostat stat.un.s 20404b6cca3Slucy wang - Sun Microsystems - Beijing China 20504b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_dma_handle { 20604b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_dma_handle *next; 20704b6cca3Slucy wang - Sun Microsystems - Beijing China ddi_dma_handle_t h; 20804b6cca3Slucy wang - Sun Microsystems - Beijing China }; 20904b6cca3Slucy wang - Sun Microsystems - Beijing China 21004b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_dma_handle_head { 21104b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_dma_handle *head; 21204b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_dma_handle *tail; 21304b6cca3Slucy wang - Sun Microsystems - Beijing China }; 21404b6cca3Slucy wang - Sun Microsystems - Beijing China 21504b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_rx_buffer_state { 21604b6cca3Slucy wang - Sun Microsystems - Beijing China caddr_t ptr; 21704b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_jpool_entry *j; 21804b6cca3Slucy wang - Sun Microsystems - Beijing China }; 21904b6cca3Slucy wang - Sun Microsystems - Beijing China 22004b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_buffer_state { 22104b6cca3Slucy wang - Sun Microsystems - Beijing China mblk_t *m; 22204b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_dma_handle *handle; 22304b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_pkt_stats stat; 22404b6cca3Slucy wang - Sun Microsystems - Beijing China }; 22504b6cca3Slucy wang - Sun Microsystems - Beijing China 22604b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_nic_stat { 22704b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named dma_force_physical; 22804b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named dma_read_bw_MBs; 22904b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named dma_write_bw_MBs; 23004b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named dma_read_write_bw_MBs; 23104b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named lanes; 23204b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named dropped_bad_crc32; 23304b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named dropped_bad_phy; 23404b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named dropped_link_error_or_filtered; 23504b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named dropped_link_overflow; 23604b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named dropped_multicast_filtered; 23704b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named dropped_no_big_buffer; 23804b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named dropped_no_small_buffer; 23904b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named dropped_overrun; 24004b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named dropped_pause; 24104b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named dropped_runt; 24204b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named dropped_unicast_filtered; 24304b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named link_changes; 24404b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named link_up; 24504b6cca3Slucy wang - Sun Microsystems - Beijing China }; 24604b6cca3Slucy wang - Sun Microsystems - Beijing China 24704b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_slice_stat { 24804b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named lro_bad_csum; 24904b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named lro_flushed; 25004b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named lro_queued; 25104b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named rx_big; 25204b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named rx_bigbuf_firmware; 25304b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named rx_bigbuf_pool; 25404b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named rx_bigbuf_smalls; 25504b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named rx_copy; 25604b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named rx_small; 25704b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named rx_big_nobuf; 25804b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named rx_small_nobuf; 25904b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named tx_activate; 26004b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named tx_done; 26104b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named tx_handles_alloced; 26204b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named tx_req; 26304b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named xmit_err; 26404b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named xmit_lowbuf; 26504b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named xmit_lsobadflags; 26604b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named xmit_pullup; 26704b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named xmit_pullup_first; 26804b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named xmit_sched; 26904b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named xmit_stall; 27004b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named xmit_stall_early; 27104b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named xmit_stall_late; 27204b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named xmit_zero_len; 27304b6cca3Slucy wang - Sun Microsystems - Beijing China }; 27404b6cca3Slucy wang - Sun Microsystems - Beijing China 27504b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_info { 27604b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named driver_version; 27704b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named firmware_version; 27804b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named firmware_name; 27904b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named interrupt_type; 28004b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named product_code; 28104b6cca3Slucy wang - Sun Microsystems - Beijing China struct kstat_named serial_number; 28204b6cca3Slucy wang - Sun Microsystems - Beijing China }; 28304b6cca3Slucy wang - Sun Microsystems - Beijing China 28404b6cca3Slucy wang - Sun Microsystems - Beijing China 28504b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_NIC_STAT_INC(field) \ 28604b6cca3Slucy wang - Sun Microsystems - Beijing China (((struct myri10ge_nic_stat *)mgp->ksp_stat->ks_data)->field.value.ul)++ 28704b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_SLICE_STAT_INC(field) \ 28804b6cca3Slucy wang - Sun Microsystems - Beijing China (((struct myri10ge_slice_stat *)ss->ksp_stat->ks_data)->field.value.ul)++ 28904b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_SLICE_STAT_ADD(field, val) \ 29004b6cca3Slucy wang - Sun Microsystems - Beijing China (((struct myri10ge_slice_stat *)ss->ksp_stat->ks_data)->field.value.ul) += val 29104b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_SLICE_STAT_DEC(field) \ 29204b6cca3Slucy wang - Sun Microsystems - Beijing China (((struct myri10ge_slice_stat *)ss->ksp_stat->ks_data)->field.value.ul)-- 29304b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_ATOMIC_SLICE_STAT_INC(field) \ 294*1a5e258fSJosef 'Jeff' Sipek atomic_inc_ulong(&(((struct myri10ge_slice_stat *) \ 295*1a5e258fSJosef 'Jeff' Sipek ss->ksp_stat->ks_data)->field.value.ul)) 29604b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_ATOMIC_SLICE_STAT_DEC(field) \ 297*1a5e258fSJosef 'Jeff' Sipek atomic_dec_ulong(&(((struct myri10ge_slice_stat *) \ 298*1a5e258fSJosef 'Jeff' Sipek ss->ksp_stat->ks_data)->field.value.ul)) 29904b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_SLICE_STAT(field) \ 30004b6cca3Slucy wang - Sun Microsystems - Beijing China (((struct myri10ge_slice_stat *)ss->ksp_stat->ks_data)->field.value.ul) 30104b6cca3Slucy wang - Sun Microsystems - Beijing China 30204b6cca3Slucy wang - Sun Microsystems - Beijing China 30304b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_copybuf 30404b6cca3Slucy wang - Sun Microsystems - Beijing China { 30504b6cca3Slucy wang - Sun Microsystems - Beijing China caddr_t va; 30604b6cca3Slucy wang - Sun Microsystems - Beijing China int len; 30704b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_dma_stuff dma; 30804b6cca3Slucy wang - Sun Microsystems - Beijing China }; 30904b6cca3Slucy wang - Sun Microsystems - Beijing China 31004b6cca3Slucy wang - Sun Microsystems - Beijing China typedef struct 31104b6cca3Slucy wang - Sun Microsystems - Beijing China { 31204b6cca3Slucy wang - Sun Microsystems - Beijing China mcp_kreq_ether_recv_t *lanai; /* lanai ptr for recv ring */ 31304b6cca3Slucy wang - Sun Microsystems - Beijing China mcp_kreq_ether_recv_t *shadow; /* host shadow of recv ring */ 31404b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_rx_buffer_state *info; 31504b6cca3Slucy wang - Sun Microsystems - Beijing China int cnt; 31604b6cca3Slucy wang - Sun Microsystems - Beijing China int alloc_fail; 31704b6cca3Slucy wang - Sun Microsystems - Beijing China int mask; /* number of rx slots -1 */ 31804b6cca3Slucy wang - Sun Microsystems - Beijing China boolean_t polling; 31904b6cca3Slucy wang - Sun Microsystems - Beijing China } myri10ge_rx_ring_t; 32004b6cca3Slucy wang - Sun Microsystems - Beijing China 32104b6cca3Slucy wang - Sun Microsystems - Beijing China typedef struct 32204b6cca3Slucy wang - Sun Microsystems - Beijing China { 32304b6cca3Slucy wang - Sun Microsystems - Beijing China mcp_kreq_ether_send_t *lanai; /* lanai ptr for sendq */ 32404b6cca3Slucy wang - Sun Microsystems - Beijing China char *go; /* doorbell to poll sendq */ 32504b6cca3Slucy wang - Sun Microsystems - Beijing China char *stop; /* doorbell to !poll sendq */ 32604b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_buffer_state *info; 32704b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_copybuf *cp; 32804b6cca3Slucy wang - Sun Microsystems - Beijing China int req; /* transmits submitted */ 32904b6cca3Slucy wang - Sun Microsystems - Beijing China int mask; /* number of transmit slots -1 */ 33004b6cca3Slucy wang - Sun Microsystems - Beijing China int done; /* transmits completed */ 33104b6cca3Slucy wang - Sun Microsystems - Beijing China int pkt_done; /* packets completed */ 33204b6cca3Slucy wang - Sun Microsystems - Beijing China int active; 33304b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t stall; 33404b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t stall_early; 33504b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t stall_late; 33604b6cca3Slucy wang - Sun Microsystems - Beijing China int sched; 33704b6cca3Slucy wang - Sun Microsystems - Beijing China kmutex_t lock; 33804b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_ring_stats stats; 33904b6cca3Slucy wang - Sun Microsystems - Beijing China int watchdog_req; 34004b6cca3Slucy wang - Sun Microsystems - Beijing China int watchdog_done; 34104b6cca3Slucy wang - Sun Microsystems - Beijing China unsigned long activate; 34204b6cca3Slucy wang - Sun Microsystems - Beijing China kmutex_t handle_lock; 34304b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_tx_dma_handle *free_tx_handles; 34404b6cca3Slucy wang - Sun Microsystems - Beijing China mac_ring_handle_t rh; 34504b6cca3Slucy wang - Sun Microsystems - Beijing China } myri10ge_tx_ring_t; 34604b6cca3Slucy wang - Sun Microsystems - Beijing China 34704b6cca3Slucy wang - Sun Microsystems - Beijing China struct lro_entry; 34804b6cca3Slucy wang - Sun Microsystems - Beijing China 34904b6cca3Slucy wang - Sun Microsystems - Beijing China struct lro_entry 35004b6cca3Slucy wang - Sun Microsystems - Beijing China { 35104b6cca3Slucy wang - Sun Microsystems - Beijing China struct lro_entry *next; 35204b6cca3Slucy wang - Sun Microsystems - Beijing China mblk_t *m_head; 35304b6cca3Slucy wang - Sun Microsystems - Beijing China mblk_t *m_tail; 35404b6cca3Slucy wang - Sun Microsystems - Beijing China int timestamp; 35504b6cca3Slucy wang - Sun Microsystems - Beijing China struct ip *ip; 35604b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t tsval; 35704b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t tsecr; 35804b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t source_ip; 35904b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t dest_ip; 36004b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t next_seq; 36104b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t ack_seq; 36204b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t len; 36304b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t data_csum; 36404b6cca3Slucy wang - Sun Microsystems - Beijing China uint16_t window; 36504b6cca3Slucy wang - Sun Microsystems - Beijing China uint16_t source_port; 36604b6cca3Slucy wang - Sun Microsystems - Beijing China uint16_t dest_port; 36704b6cca3Slucy wang - Sun Microsystems - Beijing China uint16_t append_cnt; 36804b6cca3Slucy wang - Sun Microsystems - Beijing China uint16_t mss; 36904b6cca3Slucy wang - Sun Microsystems - Beijing China uint8_t flags; 37004b6cca3Slucy wang - Sun Microsystems - Beijing China }; 37104b6cca3Slucy wang - Sun Microsystems - Beijing China 37204b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_mblk_list 37304b6cca3Slucy wang - Sun Microsystems - Beijing China { 37404b6cca3Slucy wang - Sun Microsystems - Beijing China mblk_t *head; 37504b6cca3Slucy wang - Sun Microsystems - Beijing China mblk_t **tail; 37604b6cca3Slucy wang - Sun Microsystems - Beijing China int cnt; 37704b6cca3Slucy wang - Sun Microsystems - Beijing China }; 37804b6cca3Slucy wang - Sun Microsystems - Beijing China 37904b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_priv; 38004b6cca3Slucy wang - Sun Microsystems - Beijing China 38104b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_slice_state { 38204b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_priv *mgp; 38304b6cca3Slucy wang - Sun Microsystems - Beijing China myri10ge_tx_ring_t tx; /* transmit ring */ 38404b6cca3Slucy wang - Sun Microsystems - Beijing China myri10ge_rx_ring_t rx_small; 38504b6cca3Slucy wang - Sun Microsystems - Beijing China myri10ge_rx_ring_t rx_big; 38604b6cca3Slucy wang - Sun Microsystems - Beijing China myri10ge_rx_done_t rx_done; 38704b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_jpool_stuff jpool; 38804b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_rx_ring_stats rx_stats; 38904b6cca3Slucy wang - Sun Microsystems - Beijing China volatile uint32_t *irq_claim; 39004b6cca3Slucy wang - Sun Microsystems - Beijing China mcp_irq_data_t *fw_stats; 39104b6cca3Slucy wang - Sun Microsystems - Beijing China struct lro_entry *lro_active; 39204b6cca3Slucy wang - Sun Microsystems - Beijing China struct lro_entry *lro_free; 39304b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_dma_stuff fw_stats_dma; 39404b6cca3Slucy wang - Sun Microsystems - Beijing China int jbufs_for_smalls; 39504b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_jpool_entry *small_jpool; 39604b6cca3Slucy wang - Sun Microsystems - Beijing China int j_rx_cnt; 39704b6cca3Slucy wang - Sun Microsystems - Beijing China mac_resource_handle_t mrh; 39804b6cca3Slucy wang - Sun Microsystems - Beijing China kstat_t *ksp_stat; 39904b6cca3Slucy wang - Sun Microsystems - Beijing China mac_ring_handle_t rx_rh; 40004b6cca3Slucy wang - Sun Microsystems - Beijing China kmutex_t rx_lock; 40104b6cca3Slucy wang - Sun Microsystems - Beijing China kmutex_t poll_lock; 40204b6cca3Slucy wang - Sun Microsystems - Beijing China uint64_t rx_gen_num; 40304b6cca3Slucy wang - Sun Microsystems - Beijing China boolean_t rx_polling; 40404b6cca3Slucy wang - Sun Microsystems - Beijing China int rx_token; 40504b6cca3Slucy wang - Sun Microsystems - Beijing China int watchdog_rx_copy; 40604b6cca3Slucy wang - Sun Microsystems - Beijing China }; 40704b6cca3Slucy wang - Sun Microsystems - Beijing China 40804b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_priv { 40904b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_slice_state *ss; 41004b6cca3Slucy wang - Sun Microsystems - Beijing China int max_intr_slots; 41104b6cca3Slucy wang - Sun Microsystems - Beijing China int num_slices; 41204b6cca3Slucy wang - Sun Microsystems - Beijing China dev_info_t *dip; 41304b6cca3Slucy wang - Sun Microsystems - Beijing China mac_handle_t mh; 41404b6cca3Slucy wang - Sun Microsystems - Beijing China ddi_acc_handle_t io_handle; 41504b6cca3Slucy wang - Sun Microsystems - Beijing China int tx_boundary; 41604b6cca3Slucy wang - Sun Microsystems - Beijing China int watchdog_rx_pause; 41704b6cca3Slucy wang - Sun Microsystems - Beijing China kstat_t *ksp_stat; 41804b6cca3Slucy wang - Sun Microsystems - Beijing China kstat_t *ksp_info; 41904b6cca3Slucy wang - Sun Microsystems - Beijing China int running; /* running? */ 42004b6cca3Slucy wang - Sun Microsystems - Beijing China int csum_flag; /* rx_csums? */ 42104b6cca3Slucy wang - Sun Microsystems - Beijing China uint8_t mac_addr[6]; /* eeprom mac address */ 42204b6cca3Slucy wang - Sun Microsystems - Beijing China volatile uint8_t *sram; 42304b6cca3Slucy wang - Sun Microsystems - Beijing China int sram_size; 42404b6cca3Slucy wang - Sun Microsystems - Beijing China unsigned long board_span; 42504b6cca3Slucy wang - Sun Microsystems - Beijing China unsigned long iomem_base; 42604b6cca3Slucy wang - Sun Microsystems - Beijing China volatile uint32_t *irq_deassert; 42704b6cca3Slucy wang - Sun Microsystems - Beijing China char *mac_addr_string; 42804b6cca3Slucy wang - Sun Microsystems - Beijing China mcp_cmd_response_t *cmd; 42904b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_dma_stuff cmd_dma; 43004b6cca3Slucy wang - Sun Microsystems - Beijing China int msi_enabled; 43104b6cca3Slucy wang - Sun Microsystems - Beijing China int link_state; 43204b6cca3Slucy wang - Sun Microsystems - Beijing China int rdma_tags_available; 43304b6cca3Slucy wang - Sun Microsystems - Beijing China int intr_coal_delay; 43404b6cca3Slucy wang - Sun Microsystems - Beijing China volatile uint32_t *intr_coal_delay_ptr; 43504b6cca3Slucy wang - Sun Microsystems - Beijing China kmutex_t cmd_lock; 43604b6cca3Slucy wang - Sun Microsystems - Beijing China kmutex_t intrlock; 43704b6cca3Slucy wang - Sun Microsystems - Beijing China int down_cnt; 43804b6cca3Slucy wang - Sun Microsystems - Beijing China int watchdog_resets; 43904b6cca3Slucy wang - Sun Microsystems - Beijing China unsigned char *eth_z8e; 44004b6cca3Slucy wang - Sun Microsystems - Beijing China unsigned int eth_z8e_length; 44104b6cca3Slucy wang - Sun Microsystems - Beijing China ddi_iblock_cookie_t icookie; 44204b6cca3Slucy wang - Sun Microsystems - Beijing China ddi_intr_handle_t *htable; 44304b6cca3Slucy wang - Sun Microsystems - Beijing China int intr_size; 44404b6cca3Slucy wang - Sun Microsystems - Beijing China int intr_cnt; 44504b6cca3Slucy wang - Sun Microsystems - Beijing China int intr_cap; 44604b6cca3Slucy wang - Sun Microsystems - Beijing China unsigned int intr_pri; 44704b6cca3Slucy wang - Sun Microsystems - Beijing China int ddi_intr_type; 44804b6cca3Slucy wang - Sun Microsystems - Beijing China int pause; 44904b6cca3Slucy wang - Sun Microsystems - Beijing China timeout_id_t timer_id; 45004b6cca3Slucy wang - Sun Microsystems - Beijing China clock_t timer_ticks; 45104b6cca3Slucy wang - Sun Microsystems - Beijing China int vso; 45204b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t mcp_index; 45304b6cca3Slucy wang - Sun Microsystems - Beijing China char fw_version[128]; 45404b6cca3Slucy wang - Sun Microsystems - Beijing China char name[32]; 45504b6cca3Slucy wang - Sun Microsystems - Beijing China char *fw_name; 45604b6cca3Slucy wang - Sun Microsystems - Beijing China char *intr_type; 45704b6cca3Slucy wang - Sun Microsystems - Beijing China char eeprom_strings[MYRI10GE_EEPROM_STRINGS_SIZE]; 45804b6cca3Slucy wang - Sun Microsystems - Beijing China char *sn_str; 45904b6cca3Slucy wang - Sun Microsystems - Beijing China char *pc_str; 46004b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t read_dma; 46104b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t write_dma; 46204b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t read_write_dma; 46304b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t pcie_link_width; 46404b6cca3Slucy wang - Sun Microsystems - Beijing China int max_read_request_4k; 46504b6cca3Slucy wang - Sun Microsystems - Beijing China caddr_t nd_head; 46604b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_priv *next; 46704b6cca3Slucy wang - Sun Microsystems - Beijing China uint_t refcnt; 46804b6cca3Slucy wang - Sun Microsystems - Beijing China int reg_set; 46904b6cca3Slucy wang - Sun Microsystems - Beijing China int features; 47004b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_pci_saved_state pci_saved_state; 47104b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t *toeplitz_hash_table; 47204b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t rss_key[8]; 47304b6cca3Slucy wang - Sun Microsystems - Beijing China ddi_acc_handle_t cfg_hdl; 47404b6cca3Slucy wang - Sun Microsystems - Beijing China int macaddr_cnt; 47504b6cca3Slucy wang - Sun Microsystems - Beijing China }; 47604b6cca3Slucy wang - Sun Microsystems - Beijing China 47704b6cca3Slucy wang - Sun Microsystems - Beijing China /* features bitmask */ 47804b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_TSO 1 47904b6cca3Slucy wang - Sun Microsystems - Beijing China 48004b6cca3Slucy wang - Sun Microsystems - Beijing China #if defined(__GNUC__) 48104b6cca3Slucy wang - Sun Microsystems - Beijing China #define likely(x) __builtin_expect((x), 1) 48204b6cca3Slucy wang - Sun Microsystems - Beijing China #define unlikely(x) __builtin_expect((x), 0) 48304b6cca3Slucy wang - Sun Microsystems - Beijing China #else 48404b6cca3Slucy wang - Sun Microsystems - Beijing China #define likely(x) (x) 48504b6cca3Slucy wang - Sun Microsystems - Beijing China #define unlikely(x) (x) 48604b6cca3Slucy wang - Sun Microsystems - Beijing China #endif /* defined(__GNUC__) */ 48704b6cca3Slucy wang - Sun Microsystems - Beijing China 48804b6cca3Slucy wang - Sun Microsystems - Beijing China #define mb membar_producer 48904b6cca3Slucy wang - Sun Microsystems - Beijing China 49004b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_priv *myri10ge_get_instance(uint_t unit); 49104b6cca3Slucy wang - Sun Microsystems - Beijing China void myri10ge_put_instance(struct myri10ge_priv *); 49204b6cca3Slucy wang - Sun Microsystems - Beijing China int myri10ge_send_cmd(struct myri10ge_priv *mgp, uint32_t cmd, 49304b6cca3Slucy wang - Sun Microsystems - Beijing China myri10ge_cmd_t *data); 49404b6cca3Slucy wang - Sun Microsystems - Beijing China caddr_t myri10ge_dma_alloc(dev_info_t *dip, size_t len, 49504b6cca3Slucy wang - Sun Microsystems - Beijing China ddi_dma_attr_t *attr, ddi_device_acc_attr_t *accattr, 49604b6cca3Slucy wang - Sun Microsystems - Beijing China uint_t alloc_flags, int bind_flags, struct myri10ge_dma_stuff *dma, 49704b6cca3Slucy wang - Sun Microsystems - Beijing China int warn, int (*waitfp)(caddr_t)); 49804b6cca3Slucy wang - Sun Microsystems - Beijing China void myri10ge_dma_free(struct myri10ge_dma_stuff *dma); 49904b6cca3Slucy wang - Sun Microsystems - Beijing China 50004b6cca3Slucy wang - Sun Microsystems - Beijing China void myri10ge_lro_flush(struct myri10ge_slice_state *ss, 50104b6cca3Slucy wang - Sun Microsystems - Beijing China struct lro_entry *lro, struct myri10ge_mblk_list *mbl); 50204b6cca3Slucy wang - Sun Microsystems - Beijing China int myri10ge_lro_rx(struct myri10ge_slice_state *ss, mblk_t *m_head, 50304b6cca3Slucy wang - Sun Microsystems - Beijing China uint32_t csum, struct myri10ge_mblk_list *mbl); 50404b6cca3Slucy wang - Sun Microsystems - Beijing China void myri10ge_mbl_append(struct myri10ge_slice_state *ss, 50504b6cca3Slucy wang - Sun Microsystems - Beijing China struct myri10ge_mblk_list *mbl, mblk_t *mp); 50604b6cca3Slucy wang - Sun Microsystems - Beijing China uint16_t myri10ge_csum_generic(uint16_t *raw, int len); 50704b6cca3Slucy wang - Sun Microsystems - Beijing China extern int myri10ge_lro_max_aggr; 50804b6cca3Slucy wang - Sun Microsystems - Beijing China extern int myri10ge_mtu; 50904b6cca3Slucy wang - Sun Microsystems - Beijing China 51004b6cca3Slucy wang - Sun Microsystems - Beijing China #ifndef ETHERNET_HEADER_SIZE 51104b6cca3Slucy wang - Sun Microsystems - Beijing China #define ETHERNET_HEADER_SIZE 14 51204b6cca3Slucy wang - Sun Microsystems - Beijing China #endif 51304b6cca3Slucy wang - Sun Microsystems - Beijing China 51404b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_TOEPLITZ_HASH (MXGEFW_RSS_HASH_TYPE_TCP_IPV4|\ 51504b6cca3Slucy wang - Sun Microsystems - Beijing China MXGEFW_RSS_HASH_TYPE_IPV4) 51604b6cca3Slucy wang - Sun Microsystems - Beijing China #define MYRI10GE_POLL_NULL INT_MAX 51704b6cca3Slucy wang - Sun Microsystems - Beijing China 51804b6cca3Slucy wang - Sun Microsystems - Beijing China /* 51904b6cca3Slucy wang - Sun Microsystems - Beijing China * This file uses MyriGE driver indentation. 52004b6cca3Slucy wang - Sun Microsystems - Beijing China * 52104b6cca3Slucy wang - Sun Microsystems - Beijing China * Local Variables: 52204b6cca3Slucy wang - Sun Microsystems - Beijing China * c-file-style:"sun" 52304b6cca3Slucy wang - Sun Microsystems - Beijing China * tab-width:8 52404b6cca3Slucy wang - Sun Microsystems - Beijing China * End: 52504b6cca3Slucy wang - Sun Microsystems - Beijing China */ 52604b6cca3Slucy wang - Sun Microsystems - Beijing China 52704b6cca3Slucy wang - Sun Microsystems - Beijing China #ifdef __cplusplus 52804b6cca3Slucy wang - Sun Microsystems - Beijing China } 52904b6cca3Slucy wang - Sun Microsystems - Beijing China #endif 53004b6cca3Slucy wang - Sun Microsystems - Beijing China 53104b6cca3Slucy wang - Sun Microsystems - Beijing China #endif /* MYRI10GE_VAR_H */ 532