#include "common.h"
#include "netlink.h"
struct mm_req_info { … };
struct mm_reply_data { … };
#define MM_REPDATA(__reply_base) …
#define ETHTOOL_MM_STAT_CNT …
const struct nla_policy ethnl_mm_get_policy[ETHTOOL_A_MM_HEADER + 1] = …;
static int mm_prepare_data(const struct ethnl_req_info *req_base,
struct ethnl_reply_data *reply_base,
const struct genl_info *info)
{ … }
static int mm_reply_size(const struct ethnl_req_info *req_base,
const struct ethnl_reply_data *reply_base)
{ … }
static int mm_put_stat(struct sk_buff *skb, u64 val, u16 attrtype)
{ … }
static int mm_put_stats(struct sk_buff *skb,
const struct ethtool_mm_stats *stats)
{ … }
static int mm_fill_reply(struct sk_buff *skb,
const struct ethnl_req_info *req_base,
const struct ethnl_reply_data *reply_base)
{ … }
const struct nla_policy ethnl_mm_set_policy[ETHTOOL_A_MM_MAX + 1] = …;
static void mm_state_to_cfg(const struct ethtool_mm_state *state,
struct ethtool_mm_cfg *cfg)
{ … }
static int
ethnl_set_mm_validate(struct ethnl_req_info *req_info, struct genl_info *info)
{ … }
static int ethnl_set_mm(struct ethnl_req_info *req_info, struct genl_info *info)
{ … }
const struct ethnl_request_ops ethnl_mm_request_ops = …;
bool __ethtool_dev_mm_supported(struct net_device *dev)
{ … }
bool ethtool_dev_mm_supported(struct net_device *dev)
{ … }
EXPORT_SYMBOL_GPL(…);