📄 s2io.h
字号:
/************************************************************************ * s2io.h: A Linux PCI-X Ethernet driver for Neterion 10GbE Server NIC * Copyright(c) 2002-2007 Neterion Inc. * This software may be used and distributed according to the terms of * the GNU General Public License (GPL), incorporated herein by reference. * Drivers based on or derived from this code fall under the GPL and must * retain the authorship, copyright and license notice. This file is not * a complete program and may only be used when the entire operating * system is licensed under the GPL. * See the file COPYING in this distribution for more information. ************************************************************************/#ifndef _S2IO_H#define _S2IO_H#define TBD 0#define s2BIT(loc) (0x8000000000000000ULL >> (loc))#define vBIT(val, loc, sz) (((u64)val) << (64-loc-sz))#define INV(d) ((d&0xff)<<24) | (((d>>8)&0xff)<<16) | (((d>>16)&0xff)<<8)| ((d>>24)&0xff)#ifndef BOOL#define BOOL int#endif#ifndef TRUE#define TRUE 1#define FALSE 0#endif#undef SUCCESS#define SUCCESS 0#define FAILURE -1#define S2IO_MINUS_ONE 0xFFFFFFFFFFFFFFFFULL#define S2IO_MAX_PCI_CONFIG_SPACE_REINIT 100#define S2IO_BIT_RESET 1#define S2IO_BIT_SET 2#define CHECKBIT(value, nbit) (value & (1 << nbit))/* Maximum time to flicker LED when asked to identify NIC using ethtool */#define MAX_FLICKER_TIME 60000 /* 60 Secs *//* Maximum outstanding splits to be configured into xena. */enum { XENA_ONE_SPLIT_TRANSACTION = 0, XENA_TWO_SPLIT_TRANSACTION = 1, XENA_THREE_SPLIT_TRANSACTION = 2, XENA_FOUR_SPLIT_TRANSACTION = 3, XENA_EIGHT_SPLIT_TRANSACTION = 4, XENA_TWELVE_SPLIT_TRANSACTION = 5, XENA_SIXTEEN_SPLIT_TRANSACTION = 6, XENA_THIRTYTWO_SPLIT_TRANSACTION = 7};#define XENA_MAX_OUTSTANDING_SPLITS(n) (n << 4)/* OS concerned variables and constants */#define WATCH_DOG_TIMEOUT 15*HZ#define EFILL 0x1234#define ALIGN_SIZE 127#define PCIX_COMMAND_REGISTER 0x62/* * Debug related variables. *//* different debug levels. */#define ERR_DBG 0#define INIT_DBG 1#define INFO_DBG 2#define TX_DBG 3#define INTR_DBG 4/* Global variable that defines the present debug level of the driver. */static int debug_level = ERR_DBG;/* DEBUG message print. */#define DBG_PRINT(dbg_level, args...) if(!(debug_level<dbg_level)) printk(args)#ifndef DMA_ERROR_CODE#define DMA_ERROR_CODE (~(dma_addr_t)0x0)#endif/* Protocol assist features of the NIC */#define L3_CKSUM_OK 0xFFFF#define L4_CKSUM_OK 0xFFFF#define S2IO_JUMBO_SIZE 9600/* Driver statistics maintained by driver */struct swStat { unsigned long long single_ecc_errs; unsigned long long double_ecc_errs; unsigned long long parity_err_cnt; unsigned long long serious_err_cnt; unsigned long long soft_reset_cnt; unsigned long long fifo_full_cnt; unsigned long long ring_full_cnt[8]; /* LRO statistics */ unsigned long long clubbed_frms_cnt; unsigned long long sending_both; unsigned long long outof_sequence_pkts; unsigned long long flush_max_pkts; unsigned long long sum_avg_pkts_aggregated; unsigned long long num_aggregations; /* Other statistics */ unsigned long long mem_alloc_fail_cnt; unsigned long long pci_map_fail_cnt; unsigned long long watchdog_timer_cnt; unsigned long long mem_allocated; unsigned long long mem_freed; unsigned long long link_up_cnt; unsigned long long link_down_cnt; unsigned long long link_up_time; unsigned long long link_down_time; /* Transfer Code statistics */ unsigned long long tx_buf_abort_cnt; unsigned long long tx_desc_abort_cnt; unsigned long long tx_parity_err_cnt; unsigned long long tx_link_loss_cnt; unsigned long long tx_list_proc_err_cnt; unsigned long long rx_parity_err_cnt; unsigned long long rx_abort_cnt; unsigned long long rx_parity_abort_cnt; unsigned long long rx_rda_fail_cnt; unsigned long long rx_unkn_prot_cnt; unsigned long long rx_fcs_err_cnt; unsigned long long rx_buf_size_err_cnt; unsigned long long rx_rxd_corrupt_cnt; unsigned long long rx_unkn_err_cnt; /* Error/alarm statistics*/ unsigned long long tda_err_cnt; unsigned long long pfc_err_cnt; unsigned long long pcc_err_cnt; unsigned long long tti_err_cnt; unsigned long long lso_err_cnt; unsigned long long tpa_err_cnt; unsigned long long sm_err_cnt; unsigned long long mac_tmac_err_cnt; unsigned long long mac_rmac_err_cnt; unsigned long long xgxs_txgxs_err_cnt; unsigned long long xgxs_rxgxs_err_cnt; unsigned long long rc_err_cnt; unsigned long long prc_pcix_err_cnt; unsigned long long rpa_err_cnt; unsigned long long rda_err_cnt; unsigned long long rti_err_cnt; unsigned long long mc_err_cnt;};/* Xpak releated alarm and warnings */struct xpakStat { u64 alarm_transceiver_temp_high; u64 alarm_transceiver_temp_low; u64 alarm_laser_bias_current_high; u64 alarm_laser_bias_current_low; u64 alarm_laser_output_power_high; u64 alarm_laser_output_power_low; u64 warn_transceiver_temp_high; u64 warn_transceiver_temp_low; u64 warn_laser_bias_current_high; u64 warn_laser_bias_current_low; u64 warn_laser_output_power_high; u64 warn_laser_output_power_low; u64 xpak_regs_stat; u32 xpak_timer_count;};/* The statistics block of Xena */struct stat_block {/* Tx MAC statistics counters. */ __le32 tmac_data_octets; __le32 tmac_frms; __le64 tmac_drop_frms; __le32 tmac_bcst_frms; __le32 tmac_mcst_frms; __le64 tmac_pause_ctrl_frms; __le32 tmac_ucst_frms; __le32 tmac_ttl_octets; __le32 tmac_any_err_frms; __le32 tmac_nucst_frms; __le64 tmac_ttl_less_fb_octets; __le64 tmac_vld_ip_octets; __le32 tmac_drop_ip; __le32 tmac_vld_ip; __le32 tmac_rst_tcp; __le32 tmac_icmp; __le64 tmac_tcp; __le32 reserved_0; __le32 tmac_udp;/* Rx MAC Statistics counters. */ __le32 rmac_data_octets; __le32 rmac_vld_frms; __le64 rmac_fcs_err_frms; __le64 rmac_drop_frms; __le32 rmac_vld_bcst_frms; __le32 rmac_vld_mcst_frms; __le32 rmac_out_rng_len_err_frms; __le32 rmac_in_rng_len_err_frms; __le64 rmac_long_frms; __le64 rmac_pause_ctrl_frms; __le64 rmac_unsup_ctrl_frms; __le32 rmac_accepted_ucst_frms; __le32 rmac_ttl_octets; __le32 rmac_discarded_frms; __le32 rmac_accepted_nucst_frms; __le32 reserved_1; __le32 rmac_drop_events; __le64 rmac_ttl_less_fb_octets; __le64 rmac_ttl_frms; __le64 reserved_2; __le32 rmac_usized_frms; __le32 reserved_3; __le32 rmac_frag_frms; __le32 rmac_osized_frms; __le32 reserved_4; __le32 rmac_jabber_frms; __le64 rmac_ttl_64_frms; __le64 rmac_ttl_65_127_frms; __le64 reserved_5; __le64 rmac_ttl_128_255_frms; __le64 rmac_ttl_256_511_frms; __le64 reserved_6; __le64 rmac_ttl_512_1023_frms; __le64 rmac_ttl_1024_1518_frms; __le32 rmac_ip; __le32 reserved_7; __le64 rmac_ip_octets; __le32 rmac_drop_ip; __le32 rmac_hdr_err_ip; __le32 reserved_8; __le32 rmac_icmp; __le64 rmac_tcp; __le32 rmac_err_drp_udp; __le32 rmac_udp; __le64 rmac_xgmii_err_sym; __le64 rmac_frms_q0; __le64 rmac_frms_q1; __le64 rmac_frms_q2; __le64 rmac_frms_q3; __le64 rmac_frms_q4; __le64 rmac_frms_q5; __le64 rmac_frms_q6; __le64 rmac_frms_q7; __le16 rmac_full_q3; __le16 rmac_full_q2; __le16 rmac_full_q1; __le16 rmac_full_q0; __le16 rmac_full_q7; __le16 rmac_full_q6; __le16 rmac_full_q5; __le16 rmac_full_q4; __le32 reserved_9; __le32 rmac_pause_cnt; __le64 rmac_xgmii_data_err_cnt; __le64 rmac_xgmii_ctrl_err_cnt; __le32 rmac_err_tcp; __le32 rmac_accepted_ip;/* PCI/PCI-X Read transaction statistics. */ __le32 new_rd_req_cnt; __le32 rd_req_cnt; __le32 rd_rtry_cnt; __le32 new_rd_req_rtry_cnt;/* PCI/PCI-X Write/Read transaction statistics. */ __le32 wr_req_cnt; __le32 wr_rtry_rd_ack_cnt; __le32 new_wr_req_rtry_cnt; __le32 new_wr_req_cnt; __le32 wr_disc_cnt; __le32 wr_rtry_cnt;/* PCI/PCI-X Write / DMA Transaction statistics. */ __le32 txp_wr_cnt; __le32 rd_rtry_wr_ack_cnt; __le32 txd_wr_cnt; __le32 txd_rd_cnt; __le32 rxd_wr_cnt; __le32 rxd_rd_cnt; __le32 rxf_wr_cnt; __le32 txf_rd_cnt;/* Tx MAC statistics overflow counters. */ __le32 tmac_data_octets_oflow; __le32 tmac_frms_oflow; __le32 tmac_bcst_frms_oflow; __le32 tmac_mcst_frms_oflow; __le32 tmac_ucst_frms_oflow; __le32 tmac_ttl_octets_oflow; __le32 tmac_any_err_frms_oflow; __le32 tmac_nucst_frms_oflow; __le64 tmac_vlan_frms; __le32 tmac_drop_ip_oflow; __le32 tmac_vld_ip_oflow; __le32 tmac_rst_tcp_oflow; __le32 tmac_icmp_oflow; __le32 tpa_unknown_protocol; __le32 tmac_udp_oflow; __le32 reserved_10; __le32 tpa_parse_failure;/* Rx MAC Statistics overflow counters. */ __le32 rmac_data_octets_oflow; __le32 rmac_vld_frms_oflow; __le32 rmac_vld_bcst_frms_oflow; __le32 rmac_vld_mcst_frms_oflow; __le32 rmac_accepted_ucst_frms_oflow; __le32 rmac_ttl_octets_oflow; __le32 rmac_discarded_frms_oflow; __le32 rmac_accepted_nucst_frms_oflow; __le32 rmac_usized_frms_oflow; __le32 rmac_drop_events_oflow; __le32 rmac_frag_frms_oflow; __le32 rmac_osized_frms_oflow; __le32 rmac_ip_oflow; __le32 rmac_jabber_frms_oflow; __le32 rmac_icmp_oflow; __le32 rmac_drop_ip_oflow; __le32 rmac_err_drp_udp_oflow; __le32 rmac_udp_oflow; __le32 reserved_11; __le32 rmac_pause_cnt_oflow; __le64 rmac_ttl_1519_4095_frms; __le64 rmac_ttl_4096_8191_frms; __le64 rmac_ttl_8192_max_frms; __le64 rmac_ttl_gt_max_frms; __le64 rmac_osized_alt_frms; __le64 rmac_jabber_alt_frms; __le64 rmac_gt_max_alt_frms; __le64 rmac_vlan_frms; __le32 rmac_len_discard; __le32 rmac_fcs_discard; __le32 rmac_pf_discard; __le32 rmac_da_discard; __le32 rmac_red_discard; __le32 rmac_rts_discard; __le32 reserved_12; __le32 rmac_ingm_full_discard; __le32 reserved_13; __le32 rmac_accepted_ip_oflow; __le32 reserved_14; __le32 link_fault_cnt; u8 buffer[20]; struct swStat sw_stat; struct xpakStat xpak_stat;};/* Default value for 'vlan_strip_tag' configuration parameter */#define NO_STRIP_IN_PROMISC 2/* * Structures representing different init time configuration * parameters of the NIC. */#define MAX_TX_FIFOS 8#define MAX_RX_RINGS 8#define MAX_RX_DESC_1 (MAX_RX_RINGS * MAX_RX_BLOCKS_PER_RING * 127 )#define MAX_RX_DESC_2 (MAX_RX_RINGS * MAX_RX_BLOCKS_PER_RING * 85 )#define MAX_RX_DESC_3 (MAX_RX_RINGS * MAX_RX_BLOCKS_PER_RING * 85 )#define MAX_TX_DESC (MAX_AVAILABLE_TXDS)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -