mirror of
https://github.com/systemd/systemd.git
synced 2025-03-03 16:58:37 +03:00
missing: add ETHTOOL_LINK_MODE_* and struct ethtool_link_settings
This commit is contained in:
parent
f921797d61
commit
8a716f26ef
58
meson.build
58
meson.build
@ -449,33 +449,39 @@ endforeach
|
||||
|
||||
conf.set10('WANT_LINUX_STAT_H', want_linux_stat_h)
|
||||
|
||||
foreach decl : [['IFLA_INET6_ADDR_GEN_MODE', 'linux/if_link.h'],
|
||||
['IN6_ADDR_GEN_MODE_STABLE_PRIVACY', 'linux/if_link.h'],
|
||||
['IFLA_VRF_TABLE', 'linux/if_link.h'],
|
||||
['IFLA_MACVLAN_FLAGS', 'linux/if_link.h'],
|
||||
['IFLA_IPVLAN_FLAGS', 'linux/if_link.h'],
|
||||
['IFLA_PHYS_PORT_ID', 'linux/if_link.h'],
|
||||
['IFLA_BOND_AD_ACTOR_SYSTEM', 'linux/if_link.h'],
|
||||
['IFLA_VLAN_PROTOCOL', 'linux/if_link.h'],
|
||||
['IFLA_VXLAN_REMCSUM_NOPARTIAL', 'linux/if_link.h'],
|
||||
['IFLA_VXLAN_GPE', 'linux/if_link.h'],
|
||||
['IFLA_GENEVE_LABEL', 'linux/if_link.h'],
|
||||
foreach decl : [['IFLA_INET6_ADDR_GEN_MODE', 'linux/if_link.h'],
|
||||
['IN6_ADDR_GEN_MODE_STABLE_PRIVACY', 'linux/if_link.h'],
|
||||
['IFLA_VRF_TABLE', 'linux/if_link.h'],
|
||||
['IFLA_MACVLAN_FLAGS', 'linux/if_link.h'],
|
||||
['IFLA_IPVLAN_FLAGS', 'linux/if_link.h'],
|
||||
['IFLA_PHYS_PORT_ID', 'linux/if_link.h'],
|
||||
['IFLA_BOND_AD_ACTOR_SYSTEM', 'linux/if_link.h'],
|
||||
['IFLA_VLAN_PROTOCOL', 'linux/if_link.h'],
|
||||
['IFLA_VXLAN_REMCSUM_NOPARTIAL', 'linux/if_link.h'],
|
||||
['IFLA_VXLAN_GPE', 'linux/if_link.h'],
|
||||
['IFLA_GENEVE_LABEL', 'linux/if_link.h'],
|
||||
# if_tunnel.h is buggy and cannot be included on its own
|
||||
['IFLA_VTI_REMOTE', 'linux/if_tunnel.h', '#include <net/if.h>'],
|
||||
['IFLA_IPTUN_ENCAP_DPORT', 'linux/if_tunnel.h', '#include <net/if.h>'],
|
||||
['IFLA_GRE_ENCAP_DPORT', 'linux/if_tunnel.h', '#include <net/if.h>'],
|
||||
['IFLA_BRIDGE_VLAN_INFO', 'linux/if_bridge.h'],
|
||||
['IFLA_BRPORT_PROXYARP', 'linux/if_link.h'],
|
||||
['IFLA_BRPORT_LEARNING_SYNC', 'linux/if_link.h'],
|
||||
['IFLA_BR_VLAN_DEFAULT_PVID', 'linux/if_link.h'],
|
||||
['IPVLAN_F_PRIVATE', 'linux/if_link.h'],
|
||||
['NDA_IFINDEX', 'linux/neighbour.h'],
|
||||
['IFA_FLAGS', 'linux/if_addr.h'],
|
||||
['FRA_UID_RANGE', 'linux/fib_rules.h'],
|
||||
['LO_FLAGS_PARTSCAN', 'linux/loop.h'],
|
||||
['VXCAN_INFO_PEER', 'linux/can/vxcan.h'],
|
||||
['FOU_ATTR_REMCSUM_NOPARTIAL', 'linux/fou.h'],
|
||||
['FOU_CMD_GET', 'linux/fou.h'],
|
||||
['IFLA_VTI_REMOTE', 'linux/if_tunnel.h', '#include <net/if.h>'],
|
||||
['IFLA_IPTUN_ENCAP_DPORT', 'linux/if_tunnel.h', '#include <net/if.h>'],
|
||||
['IFLA_GRE_ENCAP_DPORT', 'linux/if_tunnel.h', '#include <net/if.h>'],
|
||||
['IFLA_BRIDGE_VLAN_INFO', 'linux/if_bridge.h'],
|
||||
['IFLA_BRPORT_PROXYARP', 'linux/if_link.h'],
|
||||
['IFLA_BRPORT_LEARNING_SYNC', 'linux/if_link.h'],
|
||||
['IFLA_BR_VLAN_DEFAULT_PVID', 'linux/if_link.h'],
|
||||
['IPVLAN_F_PRIVATE', 'linux/if_link.h'],
|
||||
['NDA_IFINDEX', 'linux/neighbour.h'],
|
||||
['IFA_FLAGS', 'linux/if_addr.h'],
|
||||
['FRA_UID_RANGE', 'linux/fib_rules.h'],
|
||||
['LO_FLAGS_PARTSCAN', 'linux/loop.h'],
|
||||
['VXCAN_INFO_PEER', 'linux/can/vxcan.h'],
|
||||
['FOU_ATTR_REMCSUM_NOPARTIAL', 'linux/fou.h'],
|
||||
['FOU_CMD_GET', 'linux/fou.h'],
|
||||
['ETHTOOL_LINK_MODE_10baseT_Half_BIT', 'linux/ethtool.h'],
|
||||
['ETHTOOL_LINK_MODE_25000baseCR_Full_BIT', 'linux/ethtool.h'],
|
||||
['ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT', 'linux/ethtool.h'],
|
||||
['ETHTOOL_LINK_MODE_1000baseX_Full_BIT', 'linux/ethtool.h'],
|
||||
['ETHTOOL_LINK_MODE_2500baseT_Full_BIT', 'linux/ethtool.h'],
|
||||
['ETHTOOL_LINK_MODE_FEC_NONE_BIT', 'linux/ethtool.h'],
|
||||
]
|
||||
prefix = decl.length() > 2 ? decl[2] : ''
|
||||
have = cc.has_header_symbol(decl[1], decl[0], prefix : prefix)
|
||||
|
@ -1457,4 +1457,131 @@ struct statx {
|
||||
#define FOU_ENCAP_MAX (__FOU_ENCAP_MAX - 1)
|
||||
#endif
|
||||
|
||||
#if !HAVE_ETHTOOL_LINK_MODE_10baseT_Half_BIT /* linux@3f1ac7a700d039c61d8d8b99f28d605d489a60cf (4.6) */
|
||||
struct ethtool_link_settings {
|
||||
__u32 cmd;
|
||||
__u32 speed;
|
||||
__u8 duplex;
|
||||
__u8 port;
|
||||
__u8 phy_address;
|
||||
__u8 autoneg;
|
||||
__u8 mdio_support;
|
||||
__u8 eth_tp_mdix;
|
||||
__u8 eth_tp_mdix_ctrl;
|
||||
__s8 link_mode_masks_nwords;
|
||||
__u8 transceiver;
|
||||
__u8 reserved1[3];
|
||||
__u32 reserved[7];
|
||||
__u32 link_mode_masks[0];
|
||||
/* layout of link_mode_masks fields:
|
||||
* __u32 map_supported[link_mode_masks_nwords];
|
||||
* __u32 map_advertising[link_mode_masks_nwords];
|
||||
* __u32 map_lp_advertising[link_mode_masks_nwords];
|
||||
*/
|
||||
};
|
||||
enum ethtool_link_mode_bit_indices {
|
||||
ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0,
|
||||
ETHTOOL_LINK_MODE_10baseT_Full_BIT = 1,
|
||||
ETHTOOL_LINK_MODE_100baseT_Half_BIT = 2,
|
||||
ETHTOOL_LINK_MODE_100baseT_Full_BIT = 3,
|
||||
ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 4,
|
||||
ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 5,
|
||||
ETHTOOL_LINK_MODE_Autoneg_BIT = 6,
|
||||
ETHTOOL_LINK_MODE_TP_BIT = 7,
|
||||
ETHTOOL_LINK_MODE_AUI_BIT = 8,
|
||||
ETHTOOL_LINK_MODE_MII_BIT = 9,
|
||||
ETHTOOL_LINK_MODE_FIBRE_BIT = 10,
|
||||
ETHTOOL_LINK_MODE_BNC_BIT = 11,
|
||||
ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 12,
|
||||
ETHTOOL_LINK_MODE_Pause_BIT = 13,
|
||||
ETHTOOL_LINK_MODE_Asym_Pause_BIT = 14,
|
||||
ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 15,
|
||||
ETHTOOL_LINK_MODE_Backplane_BIT = 16,
|
||||
ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 17,
|
||||
ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 18,
|
||||
ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 19,
|
||||
ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 20,
|
||||
ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 21,
|
||||
ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 22,
|
||||
ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 23,
|
||||
ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 24,
|
||||
ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 25,
|
||||
ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 26,
|
||||
ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 27,
|
||||
ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28,
|
||||
ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29,
|
||||
ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30,
|
||||
ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31,
|
||||
ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32,
|
||||
ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33,
|
||||
ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34,
|
||||
ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35,
|
||||
ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36,
|
||||
ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37,
|
||||
ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38,
|
||||
ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39,
|
||||
ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40,
|
||||
ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41,
|
||||
ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42,
|
||||
ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43,
|
||||
ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44,
|
||||
ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45,
|
||||
ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46,
|
||||
ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47,
|
||||
ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48,
|
||||
|
||||
ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49,
|
||||
ETHTOOL_LINK_MODE_FEC_RS_BIT = 50,
|
||||
ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51,
|
||||
|
||||
/* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit
|
||||
* 31. Please do NOT define any SUPPORTED_* or ADVERTISED_*
|
||||
* macro for bits > 31. The only way to use indices > 31 is to
|
||||
* use the new ETHTOOL_GLINKSETTINGS/ETHTOOL_SLINKSETTINGS API.
|
||||
*/
|
||||
|
||||
__ETHTOOL_LINK_MODE_LAST
|
||||
= ETHTOOL_LINK_MODE_FEC_BASER_BIT,
|
||||
};
|
||||
#else
|
||||
#if !HAVE_ETHTOOL_LINK_MODE_25000baseCR_Full_BIT /* linux@3851112e4737cd52aaeda0ce8d084be9ee128106 (4.7) */
|
||||
#define ETHTOOL_LINK_MODE_25000baseCR_Full_BIT 31
|
||||
#define ETHTOOL_LINK_MODE_25000baseKR_Full_BIT 32
|
||||
#define ETHTOOL_LINK_MODE_25000baseSR_Full_BIT 33
|
||||
#define ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT 34
|
||||
#define ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT 35
|
||||
#define ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT 36
|
||||
#define ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT 37
|
||||
#define ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT 38
|
||||
#define ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT 39
|
||||
#endif
|
||||
#if !HAVE_ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT /* linux@89da45b8b5b2187734a11038b8593714f964ffd1 (4.8) */
|
||||
#define ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT 40
|
||||
#endif
|
||||
#if !HAVE_ETHTOOL_LINK_MODE_1000baseX_Full_BIT /* linux@5711a98221443aec54c4c81ee98c6ae46acccb65 (4.9) */
|
||||
#define ETHTOOL_LINK_MODE_1000baseX_Full_BIT 41
|
||||
#define ETHTOOL_LINK_MODE_10000baseCR_Full_BIT 42
|
||||
#define ETHTOOL_LINK_MODE_10000baseSR_Full_BIT 43
|
||||
#define ETHTOOL_LINK_MODE_10000baseLR_Full_BIT 44
|
||||
#define ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT 45
|
||||
#define ETHTOOL_LINK_MODE_10000baseER_Full_BIT 46
|
||||
#endif
|
||||
#if !HAVE_ETHTOOL_LINK_MODE_2500baseT_Full_BIT /* linux@94842b4fc4d6b1691cfc86c6f5251f299d27f4ba (4.10) */
|
||||
#define ETHTOOL_LINK_MODE_2500baseT_Full_BIT 47
|
||||
#define ETHTOOL_LINK_MODE_5000baseT_Full_BIT 48
|
||||
#endif
|
||||
#if !HAVE_ETHTOOL_LINK_MODE_FEC_NONE_BIT /* linux@1a5f3da20bd966220931239fbd31e6ac6ff42251 (4.14) */
|
||||
#define ETHTOOL_LINK_MODE_FEC_NONE_BIT 49
|
||||
#define ETHTOOL_LINK_MODE_FEC_RS_BIT 50
|
||||
#define ETHTOOL_LINK_MODE_FEC_BASER_BIT 51
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Strictly speaking, this is not a missing field. Just for our convention. */
|
||||
#if !HAVE_ETHTOOL_LINK_MODE_FEC_NONE_BIT
|
||||
#define _ETHTOOL_LINK_MODE_MAX 52
|
||||
#else
|
||||
#define _ETHTOOL_LINK_MODE_MAX (__ETHTOOL_LINK_MODE_LAST + 1)
|
||||
#endif
|
||||
|
||||
#include "missing_syscall.h"
|
||||
|
Loading…
x
Reference in New Issue
Block a user