#include "netlink.h"
#include "common.h"
#include "bitset.h"
struct fec_req_info { … };
struct fec_reply_data { … };
#define FEC_REPDATA(__reply_base) …
#define ETHTOOL_FEC_MASK …
const struct nla_policy ethnl_fec_get_policy[ETHTOOL_A_FEC_HEADER + 1] = …;
static void
ethtool_fec_to_link_modes(u32 fec, unsigned long *link_modes, u8 *fec_auto)
{ … }
static int
ethtool_link_modes_to_fecparam(struct ethtool_fecparam *fec,
unsigned long *link_modes, u8 fec_auto)
{ … }
static void
fec_stats_recalc(struct fec_stat_grp *grp, struct ethtool_fec_stat *stats)
{ … }
static int fec_prepare_data(const struct ethnl_req_info *req_base,
struct ethnl_reply_data *reply_base,
const struct genl_info *info)
{ … }
static int fec_reply_size(const struct ethnl_req_info *req_base,
const struct ethnl_reply_data *reply_base)
{ … }
static int fec_put_stats(struct sk_buff *skb, const struct fec_reply_data *data)
{ … }
static int fec_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_fec_set_policy[ETHTOOL_A_FEC_AUTO + 1] = …;
static int
ethnl_set_fec_validate(struct ethnl_req_info *req_info, struct genl_info *info)
{ … }
static int
ethnl_set_fec(struct ethnl_req_info *req_info, struct genl_info *info)
{ … }
const struct ethnl_request_ops ethnl_fec_request_ops = …;