⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s2io.h

📁 linux 内核源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
/************************************************************************ * 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 + -