#include "common.h"
#include "linux/pse-pd/pse.h"
#include "netlink.h"
#include <linux/ethtool_netlink.h>
#include <linux/ethtool.h>
#include <linux/phy.h>
struct pse_req_info { … };
struct pse_reply_data { … };
#define PSE_REPDATA(__reply_base) …
const struct nla_policy ethnl_pse_get_policy[ETHTOOL_A_PSE_HEADER + 1] = …;
static int pse_get_pse_attributes(struct net_device *dev,
struct netlink_ext_ack *extack,
struct pse_reply_data *data)
{ … }
static int pse_prepare_data(const struct ethnl_req_info *req_base,
struct ethnl_reply_data *reply_base,
const struct genl_info *info)
{ … }
static int pse_reply_size(const struct ethnl_req_info *req_base,
const struct ethnl_reply_data *reply_base)
{ … }
static int pse_put_pw_limit_ranges(struct sk_buff *skb,
const struct pse_control_status *st)
{ … }
static int pse_fill_reply(struct sk_buff *skb,
const struct ethnl_req_info *req_base,
const struct ethnl_reply_data *reply_base)
{ … }
static void pse_cleanup_data(struct ethnl_reply_data *reply_base)
{ … }
const struct nla_policy ethnl_pse_set_policy[ETHTOOL_A_PSE_MAX + 1] = …;
static int
ethnl_set_pse_validate(struct ethnl_req_info *req_info, struct genl_info *info)
{ … }
static int
ethnl_set_pse(struct ethnl_req_info *req_info, struct genl_info *info)
{ … }
const struct ethnl_request_ops ethnl_pse_request_ops = …;