Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
linux
ethtool.h
Go to the documentation of this file.
1
/*
2
* ethtool.h: Defines for Linux ethtool.
3
*
4
* Copyright (C) 1998 David S. Miller (
[email protected]
)
5
* Copyright 2001 Jeff Garzik <
[email protected]
>
6
* Portions Copyright 2001 Sun Microsystems (
[email protected]
)
7
* Portions Copyright 2002 Intel (
[email protected]
,
8
*
[email protected]
,
9
*
[email protected]
)
10
* Portions Copyright (C) Sun Microsystems 2008
11
*/
12
#ifndef _LINUX_ETHTOOL_H
13
#define _LINUX_ETHTOOL_H
14
15
#include <
linux/compat.h
>
16
#include <
uapi/linux/ethtool.h
>
17
18
#ifdef CONFIG_COMPAT
19
20
struct
compat_ethtool_rx_flow_spec {
21
u32
flow_type;
22
union
ethtool_flow_union
h_u;
23
struct
ethtool_flow_ext
h_ext;
24
union
ethtool_flow_union
m_u;
25
struct
ethtool_flow_ext
m_ext;
26
compat_u64
ring_cookie;
27
u32
location
;
28
};
29
30
struct
compat_ethtool_rxnfc {
31
u32
cmd
;
32
u32
flow_type;
33
compat_u64
data
;
34
struct
compat_ethtool_rx_flow_spec
fs
;
35
u32
rule_cnt;
36
u32
rule_locs[0];
37
};
38
39
#endif
/* CONFIG_COMPAT */
40
41
#include <
linux/rculist.h
>
42
43
extern
int
__ethtool_get_settings
(
struct
net_device
*
dev
,
44
struct
ethtool_cmd
*
cmd
);
45
55
enum
ethtool_phys_id_state
{
56
ETHTOOL_ID_INACTIVE
,
57
ETHTOOL_ID_ACTIVE
,
58
ETHTOOL_ID_ON
,
59
ETHTOOL_ID_OFF
60
};
61
62
struct
net_device
;
63
64
/* Some generic methods drivers may use in their ethtool_ops */
65
u32
ethtool_op_get_link
(
struct
net_device
*
dev
);
66
int
ethtool_op_get_ts_info
(
struct
net_device
*
dev
,
struct
ethtool_ts_info
*eti);
67
75
static
inline
u32
ethtool_rxfh_indir_default(
u32
index
,
u32
n_rx_rings)
76
{
77
return
index % n_rx_rings;
78
}
79
190
struct
ethtool_ops
{
191
int
(*
get_settings
)(
struct
net_device
*,
struct
ethtool_cmd
*);
192
int
(*
set_settings
)(
struct
net_device
*,
struct
ethtool_cmd
*);
193
void
(*
get_drvinfo
)(
struct
net_device
*,
struct
ethtool_drvinfo
*);
194
int
(*
get_regs_len
)(
struct
net_device
*);
195
void
(*
get_regs
)(
struct
net_device
*,
struct
ethtool_regs
*,
void
*);
196
void
(*
get_wol
)(
struct
net_device
*,
struct
ethtool_wolinfo
*);
197
int
(*
set_wol
)(
struct
net_device
*,
struct
ethtool_wolinfo
*);
198
u32
(*
get_msglevel
)(
struct
net_device
*);
199
void
(*
set_msglevel
)(
struct
net_device
*,
u32
);
200
int
(*
nway_reset
)(
struct
net_device
*);
201
u32
(*
get_link
)(
struct
net_device
*);
202
int
(*
get_eeprom_len
)(
struct
net_device
*);
203
int
(*
get_eeprom
)(
struct
net_device
*,
204
struct
ethtool_eeprom
*,
u8
*);
205
int
(*
set_eeprom
)(
struct
net_device
*,
206
struct
ethtool_eeprom
*,
u8
*);
207
int
(*
get_coalesce
)(
struct
net_device
*,
struct
ethtool_coalesce
*);
208
int
(*
set_coalesce
)(
struct
net_device
*,
struct
ethtool_coalesce
*);
209
void
(*
get_ringparam
)(
struct
net_device
*,
210
struct
ethtool_ringparam
*);
211
int
(*
set_ringparam
)(
struct
net_device
*,
212
struct
ethtool_ringparam
*);
213
void
(*
get_pauseparam
)(
struct
net_device
*,
214
struct
ethtool_pauseparam
*);
215
int
(*
set_pauseparam
)(
struct
net_device
*,
216
struct
ethtool_pauseparam
*);
217
void
(*
self_test
)(
struct
net_device
*,
struct
ethtool_test
*,
u64
*);
218
void
(*
get_strings
)(
struct
net_device
*,
u32
stringset,
u8
*);
219
int
(*
set_phys_id
)(
struct
net_device
*,
enum
ethtool_phys_id_state
);
220
void
(*
get_ethtool_stats
)(
struct
net_device
*,
221
struct
ethtool_stats
*,
u64
*);
222
int
(*
begin
)(
struct
net_device
*);
223
void
(*
complete
)(
struct
net_device
*);
224
u32
(*
get_priv_flags
)(
struct
net_device
*);
225
int
(*
set_priv_flags
)(
struct
net_device
*,
u32
);
226
int
(*
get_sset_count
)(
struct
net_device
*,
int
);
227
int
(*
get_rxnfc
)(
struct
net_device
*,
228
struct
ethtool_rxnfc
*,
u32
*
rule_locs
);
229
int
(*
set_rxnfc
)(
struct
net_device
*,
struct
ethtool_rxnfc
*);
230
int
(*
flash_device
)(
struct
net_device
*,
struct
ethtool_flash
*);
231
int
(*
reset
)(
struct
net_device
*,
u32
*);
232
u32
(*
get_rxfh_indir_size
)(
struct
net_device
*);
233
int
(*
get_rxfh_indir
)(
struct
net_device
*,
u32
*);
234
int
(*
set_rxfh_indir
)(
struct
net_device
*,
const
u32
*);
235
void
(*
get_channels
)(
struct
net_device
*,
struct
ethtool_channels
*);
236
int
(*
set_channels
)(
struct
net_device
*,
struct
ethtool_channels
*);
237
int
(*
get_dump_flag
)(
struct
net_device
*,
struct
ethtool_dump
*);
238
int
(*
get_dump_data
)(
struct
net_device
*,
239
struct
ethtool_dump
*,
void
*);
240
int
(*
set_dump
)(
struct
net_device
*,
struct
ethtool_dump
*);
241
int
(*
get_ts_info
)(
struct
net_device
*,
struct
ethtool_ts_info
*);
242
int
(*
get_module_info
)(
struct
net_device
*,
243
struct
ethtool_modinfo
*);
244
int
(*
get_module_eeprom
)(
struct
net_device
*,
245
struct
ethtool_eeprom
*,
u8
*);
246
int
(*
get_eee
)(
struct
net_device
*,
struct
ethtool_eee
*);
247
int
(*
set_eee
)(
struct
net_device
*,
struct
ethtool_eee
*);
248
249
250
};
251
#endif
/* _LINUX_ETHTOOL_H */
Generated on Thu Jan 10 2013 14:51:22 for Linux Kernel by
1.8.2