include/linux/ethtool_netlink.h
Source file repositories/reference/linux-study-clean/include/linux/ethtool_netlink.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/ethtool_netlink.h- Extension
.h- Size
- 4009 bytes
- Lines
- 147
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
uapi/linux/ethtool_netlink.hlinux/ethtool.hlinux/netdevice.h
Detected Declarations
struct phy_deviceenum ethtool_multicast_groupsfunction ethnl_cable_test_allocfunction ethnl_cable_test_freefunction ethnl_cable_test_fault_length_with_srcfunction ethnl_cable_test_amplitudefunction ethnl_cable_test_pulsefunction ethnl_cable_test_stepfunction ethtool_aggregate_mac_statsfunction ethnl_pse_send_ntffunction ethnl_cable_test_fault_length
Annotated Snippet
#ifndef _LINUX_ETHTOOL_NETLINK_H_
#define _LINUX_ETHTOOL_NETLINK_H_
#include <uapi/linux/ethtool_netlink.h>
#include <linux/ethtool.h>
#include <linux/netdevice.h>
#define __ETHTOOL_LINK_MODE_MASK_NWORDS \
DIV_ROUND_UP(__ETHTOOL_LINK_MODE_MASK_NBITS, 32)
#define ETHTOOL_PAUSE_STAT_CNT (__ETHTOOL_A_PAUSE_STAT_CNT - \
ETHTOOL_A_PAUSE_STAT_TX_FRAMES)
enum ethtool_multicast_groups {
ETHNL_MCGRP_MONITOR,
};
struct phy_device;
#if IS_ENABLED(CONFIG_ETHTOOL_NETLINK)
int ethnl_cable_test_alloc(struct phy_device *phydev, u8 cmd);
void ethnl_cable_test_free(struct phy_device *phydev);
void ethnl_cable_test_finished(struct phy_device *phydev);
int ethnl_cable_test_result_with_src(struct phy_device *phydev, u8 pair,
u8 result, u32 src);
int ethnl_cable_test_fault_length_with_src(struct phy_device *phydev, u8 pair,
u32 cm, u32 src);
int ethnl_cable_test_amplitude(struct phy_device *phydev, u8 pair, s16 mV);
int ethnl_cable_test_pulse(struct phy_device *phydev, u16 mV);
int ethnl_cable_test_step(struct phy_device *phydev, u32 first, u32 last,
u32 step);
void ethtool_aggregate_mac_stats(struct net_device *dev,
struct ethtool_eth_mac_stats *mac_stats);
void ethtool_aggregate_phy_stats(struct net_device *dev,
struct ethtool_eth_phy_stats *phy_stats);
void ethtool_aggregate_ctrl_stats(struct net_device *dev,
struct ethtool_eth_ctrl_stats *ctrl_stats);
void ethtool_aggregate_pause_stats(struct net_device *dev,
struct ethtool_pause_stats *pause_stats);
void ethtool_aggregate_rmon_stats(struct net_device *dev,
struct ethtool_rmon_stats *rmon_stats);
bool ethtool_dev_mm_supported(struct net_device *dev);
void ethnl_pse_send_ntf(struct net_device *netdev, unsigned long notif);
#else
static inline int ethnl_cable_test_alloc(struct phy_device *phydev, u8 cmd)
{
return -EOPNOTSUPP;
}
static inline void ethnl_cable_test_free(struct phy_device *phydev)
{
}
static inline void ethnl_cable_test_finished(struct phy_device *phydev)
{
}
static inline int ethnl_cable_test_result_with_src(struct phy_device *phydev,
u8 pair, u8 result, u32 src)
{
return -EOPNOTSUPP;
}
static inline int ethnl_cable_test_fault_length_with_src(struct phy_device *phydev,
u8 pair, u32 cm, u32 src)
{
return -EOPNOTSUPP;
}
static inline int ethnl_cable_test_amplitude(struct phy_device *phydev,
u8 pair, s16 mV)
{
return -EOPNOTSUPP;
}
static inline int ethnl_cable_test_pulse(struct phy_device *phydev, u16 mV)
{
return -EOPNOTSUPP;
}
static inline int ethnl_cable_test_step(struct phy_device *phydev, u32 first,
u32 last, u32 step)
{
return -EOPNOTSUPP;
}
static inline void
ethtool_aggregate_mac_stats(struct net_device *dev,
struct ethtool_eth_mac_stats *mac_stats)
Annotation
- Immediate include surface: `uapi/linux/ethtool_netlink.h`, `linux/ethtool.h`, `linux/netdevice.h`.
- Detected declarations: `struct phy_device`, `enum ethtool_multicast_groups`, `function ethnl_cable_test_alloc`, `function ethnl_cable_test_free`, `function ethnl_cable_test_fault_length_with_src`, `function ethnl_cable_test_amplitude`, `function ethnl_cable_test_pulse`, `function ethnl_cable_test_step`, `function ethtool_aggregate_mac_stats`, `function ethnl_pse_send_ntf`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.