diff options
| author | Brandon Philips <brandon@ifup.org> | 2008-07-15 05:18:41 -0400 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@redhat.com> | 2008-08-07 02:22:08 -0400 |
| commit | b11f8d8cc3bb2fa6fa55286babc1a5ebb2e932c4 (patch) | |
| tree | bafbb4ca35003403da55c5a34c56e2390d1af8b2 /include/linux | |
| parent | 4f63135eb23015a17eaf4f7478deedf63e98ff5c (diff) | |
ethtool: Expand ethtool_cmd.speed to 32 bits
Introduce the speed_hi field to ethtool_cmd, using the reserved space,
to expand the speed field to 2^32 Megabits/second.
Making this field expansion now gives us plenty of time to fix up the
user-space pieces that use SIOCETHTOOL before hardware faster than 64
Gb/s is available.
Signed-off-by: Brandon Philips <bphilips@suse.de>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/ethtool.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index 8bb5e87df365..b4b038b89ee6 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h | |||
| @@ -27,9 +27,24 @@ struct ethtool_cmd { | |||
| 27 | __u8 autoneg; /* Enable or disable autonegotiation */ | 27 | __u8 autoneg; /* Enable or disable autonegotiation */ |
| 28 | __u32 maxtxpkt; /* Tx pkts before generating tx int */ | 28 | __u32 maxtxpkt; /* Tx pkts before generating tx int */ |
| 29 | __u32 maxrxpkt; /* Rx pkts before generating rx int */ | 29 | __u32 maxrxpkt; /* Rx pkts before generating rx int */ |
| 30 | __u32 reserved[4]; | 30 | __u16 speed_hi; |
| 31 | __u16 reserved2; | ||
| 32 | __u32 reserved[3]; | ||
| 31 | }; | 33 | }; |
| 32 | 34 | ||
| 35 | static inline void ethtool_cmd_speed_set(struct ethtool_cmd *ep, | ||
| 36 | __u32 speed) | ||
| 37 | { | ||
| 38 | |||
| 39 | ep->speed = (__u16)speed; | ||
| 40 | ep->speed_hi = (__u16)(speed >> 16); | ||
| 41 | } | ||
| 42 | |||
| 43 | static inline __u32 ethtool_cmd_speed(struct ethtool_cmd *ep) | ||
| 44 | { | ||
| 45 | return (ep->speed_hi << 16) | ep->speed; | ||
| 46 | } | ||
| 47 | |||
| 33 | #define ETHTOOL_BUSINFO_LEN 32 | 48 | #define ETHTOOL_BUSINFO_LEN 32 |
| 34 | /* these strings are set to whatever the driver author decides... */ | 49 | /* these strings are set to whatever the driver author decides... */ |
| 35 | struct ethtool_drvinfo { | 50 | struct ethtool_drvinfo { |
