#include "common.h"
#include "netlink.h"
#include <linux/phy.h>
#include <linux/phy_link_topology.h>
#include <linux/sfp.h>
struct phy_req_info { … };
#define PHY_REQINFO(__req_base) …
const struct nla_policy ethnl_phy_get_policy[ETHTOOL_A_PHY_HEADER + 1] = …;
static ssize_t
ethnl_phy_reply_size(const struct ethnl_req_info *req_base,
struct netlink_ext_ack *extack)
{ … }
static int
ethnl_phy_fill_reply(const struct ethnl_req_info *req_base, struct sk_buff *skb)
{ … }
static int ethnl_phy_parse_request(struct ethnl_req_info *req_base,
struct nlattr **tb,
struct netlink_ext_ack *extack)
{ … }
int ethnl_phy_doit(struct sk_buff *skb, struct genl_info *info)
{ … }
struct ethnl_phy_dump_ctx { … };
int ethnl_phy_start(struct netlink_callback *cb)
{ … }
int ethnl_phy_done(struct netlink_callback *cb)
{ … }
static int ethnl_phy_dump_one_dev(struct sk_buff *skb, struct net_device *dev,
struct netlink_callback *cb)
{ … }
int ethnl_phy_dumpit(struct sk_buff *skb, struct netlink_callback *cb)
{ … }