33#include <linux/version.h>
34#include <linux/types.h>
35#include <linux/errno.h>
36#include <linux/module.h>
38#include <linux/netdevice.h>
39#include <linux/ioport.h>
40#include <linux/slab.h>
41#include <linux/pagemap.h>
42#include <linux/list.h>
43#include <linux/sched.h>
46#include <rtnet_port.h>
49#define irqreturn_t void
55#define SET_NETDEV_DEV(net, pdev)
62#undef NETIF_F_HW_VLAN_TX
63#undef CONFIG_NET_POLL_CONTROLLER
64#undef ETHTOOL_OPS_COMPAT
65#undef ETHTOOL_GPERMADDR
67#ifndef HAVE_FREE_NETDEV
68#define free_netdev(x) kfree(x)
72#undef CONFIG_E1000_NAPI
74#undef CONFIG_E1000_DISABLE_PACKET_SPLIT
75#define CONFIG_E1000_DISABLE_PACKET_SPLIT 1
88#define module_param(v,t,p) MODULE_PARM(v, "i");
92#define DMA_64BIT_MASK 0xffffffffffffffffULL
96#define DMA_32BIT_MASK 0x00000000ffffffffULL
101#define unlikely(_x) _x
107#define PCI_DEVICE(vend,dev) \
108 .vendor = (vend), .device = (dev), \
109 .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID
115#ifndef ETHTOOL_GSTATS
116#define ETHTOOL_GSTATS 0x1d
117#undef ethtool_drvinfo
118#define ethtool_drvinfo k_ethtool_drvinfo
119struct k_ethtool_drvinfo {
128 uint32_t testinfo_len;
130 uint32_t regdump_len;
133struct ethtool_stats {
139#ifndef ETHTOOL_PHYS_ID
140#define ETHTOOL_PHYS_ID 0x1c
141#ifndef ETHTOOL_GSTRINGS
142#define ETHTOOL_GSTRINGS 0x1b
143enum ethtool_stringset {
147struct ethtool_gstrings {
154#define ETHTOOL_TEST 0x1a
155enum ethtool_test_flags {
156 ETH_TEST_FL_OFFLINE = (1 << 0),
157 ETH_TEST_FL_FAILED = (1 << 1),
166#ifndef ETHTOOL_GEEPROM
167#define ETHTOOL_GEEPROM 0xb
169struct ethtool_eeprom {
177struct ethtool_value {
183#define ETHTOOL_GLINK 0xa
192#define ETHTOOL_GREGS 0x00000004
193#define ethtool_regs _kc_ethtool_regs
195struct _kc_ethtool_regs {
202#ifndef ETHTOOL_GMSGLVL
203#define ETHTOOL_GMSGLVL 0x00000007
205#ifndef ETHTOOL_SMSGLVL
206#define ETHTOOL_SMSGLVL 0x00000008
208#ifndef ETHTOOL_NWAY_RST
209#define ETHTOOL_NWAY_RST 0x00000009
212#define ETHTOOL_GLINK 0x0000000a
214#ifndef ETHTOOL_GEEPROM
215#define ETHTOOL_GEEPROM 0x0000000b
217#ifndef ETHTOOL_SEEPROM
218#define ETHTOOL_SEEPROM 0x0000000c
220#ifndef ETHTOOL_GCOALESCE
221#define ETHTOOL_GCOALESCE 0x0000000e
223#define ethtool_coalesce _kc_ethtool_coalesce
224struct _kc_ethtool_coalesce {
231 u32 rx_coalesce_usecs;
239 u32 rx_max_coalesced_frames;
246 u32 rx_coalesce_usecs_irq;
247 u32 rx_max_coalesced_frames_irq;
253 u32 tx_coalesce_usecs;
261 u32 tx_max_coalesced_frames;
268 u32 tx_coalesce_usecs_irq;
269 u32 tx_max_coalesced_frames_irq;
276 u32 stats_block_coalesce_usecs;
285 u32 use_adaptive_rx_coalesce;
286 u32 use_adaptive_tx_coalesce;
293 u32 rx_coalesce_usecs_low;
294 u32 rx_max_coalesced_frames_low;
295 u32 tx_coalesce_usecs_low;
296 u32 tx_max_coalesced_frames_low;
308 u32 rx_coalesce_usecs_high;
309 u32 rx_max_coalesced_frames_high;
310 u32 tx_coalesce_usecs_high;
311 u32 tx_max_coalesced_frames_high;
316 u32 rate_sample_interval;
319#ifndef ETHTOOL_SCOALESCE
320#define ETHTOOL_SCOALESCE 0x0000000f
322#ifndef ETHTOOL_GRINGPARAM
323#define ETHTOOL_GRINGPARAM 0x00000010
325#define ethtool_ringparam _kc_ethtool_ringparam
326struct _kc_ethtool_ringparam {
334 u32 rx_mini_max_pending;
335 u32 rx_jumbo_max_pending;
343 u32 rx_jumbo_pending;
347#ifndef ETHTOOL_SRINGPARAM
348#define ETHTOOL_SRINGPARAM 0x00000011
350#ifndef ETHTOOL_GPAUSEPARAM
351#define ETHTOOL_GPAUSEPARAM 0x00000012
353#define ethtool_pauseparam _kc_ethtool_pauseparam
354struct _kc_ethtool_pauseparam {
372#ifndef ETHTOOL_SPAUSEPARAM
373#define ETHTOOL_SPAUSEPARAM 0x00000013
375#ifndef ETHTOOL_GRXCSUM
376#define ETHTOOL_GRXCSUM 0x00000014
378#ifndef ETHTOOL_SRXCSUM
379#define ETHTOOL_SRXCSUM 0x00000015
381#ifndef ETHTOOL_GTXCSUM
382#define ETHTOOL_GTXCSUM 0x00000016
384#ifndef ETHTOOL_STXCSUM
385#define ETHTOOL_STXCSUM 0x00000017
388#define ETHTOOL_GSG 0x00000018
392#define ETHTOOL_SSG 0x00000019
396#define ETHTOOL_TEST 0x0000001a
398#ifndef ETHTOOL_GSTRINGS
399#define ETHTOOL_GSTRINGS 0x0000001b
401#ifndef ETHTOOL_PHYS_ID
402#define ETHTOOL_PHYS_ID 0x0000001c
404#ifndef ETHTOOL_GSTATS
405#define ETHTOOL_GSTATS 0x0000001d
408#define ETHTOOL_GTSO 0x0000001e
411#define ETHTOOL_STSO 0x0000001f
415#define NET_IP_ALIGN 2
419#define NETDEV_TX_OK 0
422#ifndef NETDEV_TX_BUSY
423#define NETDEV_TX_BUSY 1
426#ifndef NETDEV_TX_LOCKED
427#define NETDEV_TX_LOCKED -1
432#ifndef SKB_DATAREF_SHIFT
433#define skb_header_cloned(x) 0
440#define USE_DRIVER_SHUTDOWN_HANDLER