#ifndef _ATL1C_H_
#define _ATL1C_H_
#include <linux/interrupt.h>
#include <linux/types.h>
#include <linux/errno.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/skbuff.h>
#include <linux/ioport.h>
#include <linux/slab.h>
#include <linux/list.h>
#include <linux/delay.h>
#include <linux/sched.h>
#include <linux/in.h>
#include <linux/ip.h>
#include <linux/ipv6.h>
#include <linux/udp.h>
#include <linux/mii.h>
#include <linux/io.h>
#include <linux/vmalloc.h>
#include <linux/pagemap.h>
#include <linux/tcp.h>
#include <linux/ethtool.h>
#include <linux/if_vlan.h>
#include <linux/workqueue.h>
#include <net/checksum.h>
#include <net/ip6_checksum.h>
#include "atl1c_hw.h"
#define AT_WUFC_LNKC …
#define AT_WUFC_MAG …
#define AT_WUFC_EX …
#define AT_WUFC_MC …
#define AT_WUFC_BC …
#define AT_VLAN_TO_TAG(_vlan, _tag) …
#define AT_TAG_TO_VLAN(_tag, _vlan) …
#define SPEED_0 …
#define HALF_DUPLEX …
#define FULL_DUPLEX …
#define AT_RX_BUF_SIZE …
#define MAX_JUMBO_FRAME_SIZE …
#define AT_MAX_RECEIVE_QUEUE …
#define AT_DEF_RECEIVE_QUEUE …
#define AT_MAX_TRANSMIT_QUEUE …
#define AT_DMA_HI_ADDR_MASK …
#define AT_DMA_LO_ADDR_MASK …
#define AT_TX_WATCHDOG …
#define AT_MAX_INT_WORK …
#define AT_TWSI_EEPROM_TIMEOUT …
#define AT_HW_MAX_IDLE_DELAY …
#define AT_SUSPEND_LINK_TIMEOUT …
#define AT_ASPM_L0S_TIMER …
#define AT_ASPM_L1_TIMER …
#define AT_LCKDET_TIMER …
#define ATL1C_PCIE_L0S_L1_DISABLE …
#define ATL1C_PCIE_PHY_RESET …
#define ATL1C_ASPM_L0s_ENABLE …
#define ATL1C_ASPM_L1_ENABLE …
#define AT_REGS_LEN …
#define AT_EEPROM_LEN …
#define ATL1C_GET_DESC(R, i, type) …
#define ATL1C_RFD_DESC(R, i) …
#define ATL1C_TPD_DESC(R, i) …
#define ATL1C_RRD_DESC(R, i) …
#define TPD_L4HDR_OFFSET_MASK …
#define TPD_L4HDR_OFFSET_SHIFT …
#define TPD_TCPHDR_OFFSET_MASK …
#define TPD_TCPHDR_OFFSET_SHIFT …
#define TPD_PLOADOFFSET_MASK …
#define TPD_PLOADOFFSET_SHIFT …
#define TPD_CCSUM_EN_MASK …
#define TPD_CCSUM_EN_SHIFT …
#define TPD_IP_CSUM_MASK …
#define TPD_IP_CSUM_SHIFT …
#define TPD_TCP_CSUM_MASK …
#define TPD_TCP_CSUM_SHIFT …
#define TPD_UDP_CSUM_MASK …
#define TPD_UDP_CSUM_SHIFT …
#define TPD_LSO_EN_MASK …
#define TPD_LSO_EN_SHIFT …
#define TPD_LSO_VER_MASK …
#define TPD_LSO_VER_SHIFT …
#define TPD_CON_VTAG_MASK …
#define TPD_CON_VTAG_SHIFT …
#define TPD_INS_VTAG_MASK …
#define TPD_INS_VTAG_SHIFT …
#define TPD_IPV4_PACKET_MASK …
#define TPD_IPV4_PACKET_SHIFT …
#define TPD_ETH_TYPE_MASK …
#define TPD_ETH_TYPE_SHIFT …
#define TPD_CCSUM_OFFSET_MASK …
#define TPD_CCSUM_OFFSET_SHIFT …
#define TPD_CCSUM_EPAD_MASK …
#define TPD_CCSUM_EPAD_SHIFT …
#define TPD_MSS_MASK …
#define TPD_MSS_SHIFT …
#define TPD_EOP_MASK …
#define TPD_EOP_SHIFT …
struct atl1c_tpd_desc { … };
struct atl1c_tpd_ext_desc { … };
#define RRS_RX_CSUM_MASK …
#define RRS_RX_CSUM_SHIFT …
#define RRS_RX_RFD_CNT_MASK …
#define RRS_RX_RFD_CNT_SHIFT …
#define RRS_RX_RFD_INDEX_MASK …
#define RRS_RX_RFD_INDEX_SHIFT …
#define RRS_HEAD_LEN_MASK …
#define RRS_HEAD_LEN_SHIFT …
#define RRS_HDS_TYPE_MASK …
#define RRS_HDS_TYPE_SHIFT …
#define RRS_CPU_NUM_MASK …
#define RRS_CPU_NUM_SHIFT …
#define RRS_HASH_FLG_MASK …
#define RRS_HASH_FLG_SHIFT …
#define RRS_HDS_TYPE_HEAD …
#define RRS_HDS_TYPE_DATA …
#define RRS_IS_NO_HDS_TYPE(flag) …
#define RRS_IS_HDS_HEAD(flag) …
#define RRS_IS_HDS_DATA(flag) …
#define RRS_PKT_SIZE_MASK …
#define RRS_PKT_SIZE_SHIFT …
#define RRS_ERR_L4_CSUM_MASK …
#define RRS_ERR_L4_CSUM_SHIFT …
#define RRS_ERR_IP_CSUM_MASK …
#define RRS_ERR_IP_CSUM_SHIFT …
#define RRS_VLAN_INS_MASK …
#define RRS_VLAN_INS_SHIFT …
#define RRS_PROT_ID_MASK …
#define RRS_PROT_ID_SHIFT …
#define RRS_RX_ERR_SUM_MASK …
#define RRS_RX_ERR_SUM_SHIFT …
#define RRS_RX_ERR_CRC_MASK …
#define RRS_RX_ERR_CRC_SHIFT …
#define RRS_RX_ERR_FAE_MASK …
#define RRS_RX_ERR_FAE_SHIFT …
#define RRS_RX_ERR_TRUNC_MASK …
#define RRS_RX_ERR_TRUNC_SHIFT …
#define RRS_RX_ERR_RUNC_MASK …
#define RRS_RX_ERR_RUNC_SHIFT …
#define RRS_RX_ERR_ICMP_MASK …
#define RRS_RX_ERR_ICMP_SHIFT …
#define RRS_PACKET_BCAST_MASK …
#define RRS_PACKET_BCAST_SHIFT …
#define RRS_PACKET_MCAST_MASK …
#define RRS_PACKET_MCAST_SHIFT …
#define RRS_PACKET_TYPE_MASK …
#define RRS_PACKET_TYPE_SHIFT …
#define RRS_FIFO_FULL_MASK …
#define RRS_FIFO_FULL_SHIFT …
#define RRS_802_3_LEN_ERR_MASK …
#define RRS_802_3_LEN_ERR_SHIFT …
#define RRS_RXD_UPDATED_MASK …
#define RRS_RXD_UPDATED_SHIFT …
#define RRS_ERR_L4_CSUM …
#define RRS_ERR_IP_CSUM …
#define RRS_VLAN_INS …
#define RRS_RX_ERR_SUM …
#define RRS_RX_ERR_CRC …
#define RRS_802_3_LEN_ERR …
#define RRS_RXD_UPDATED …
#define RRS_PACKET_TYPE_802_3 …
#define RRS_PACKET_TYPE_ETH …
#define RRS_PACKET_IS_ETH(word) …
#define RRS_RXD_IS_VALID(word) …
#define RRS_PACKET_PROT_IS_IPV4_ONLY(word) …
#define RRS_PACKET_PROT_IS_IPV6_ONLY(word) …
#define RRS_MT_PROT_ID_TCPUDP …
struct atl1c_recv_ret_status { … };
struct atl1c_rx_free_desc { … };
enum atl1c_dma_order { … };
enum atl1c_dma_rcb { … };
enum atl1c_mac_speed { … };
enum atl1c_dma_req_block { … };
enum atl1c_nic_type { … };
struct atl1c_hw_stats { … };
struct atl1c_hw { … };
struct atl1c_ring_header { … };
struct atl1c_buffer { … };
#define ATL1C_SET_BUFFER_STATE(buff, state) …
#define ATL1C_SET_PCIMAP_TYPE(buff, type, direction) …
struct atl1c_tpd_ring { … };
struct atl1c_rfd_ring { … };
struct atl1c_rrd_ring { … };
struct atl1c_adapter { … };
#define AT_WRITE_REG(a, reg, value) …
#define AT_WRITE_FLUSH(a) …
#define AT_READ_REG(a, reg, pdata) …
#define AT_WRITE_REGB(a, reg, value) …
#define AT_READ_REGB(a, reg) …
#define AT_WRITE_REGW(a, reg, value) …
#define AT_READ_REGW(a, reg, pdata) …
#define AT_WRITE_REG_ARRAY(a, reg, offset, value) …
#define AT_READ_REG_ARRAY(a, reg, offset) …
extern char atl1c_driver_name[];
void atl1c_reinit_locked(struct atl1c_adapter *adapter);
s32 atl1c_reset_hw(struct atl1c_hw *hw);
void atl1c_set_ethtool_ops(struct net_device *netdev);
#endif