aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2025-02-04 19:52:35 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2025-02-04 19:52:35 +0000
commit753a4acd09e45d84cd863355943dbb2ccbcda77b (patch)
treed412700cee849bd64f8445ffa2af2a7025dab70f
parentc032fb855766d25d91b190af554e1ba86bbe7856 (diff)
netlink: make struct genl_family and genl_group private
-rw-r--r--sys/netlink/netlink_generic.c72
-rw-r--r--sys/netlink/netlink_var.h15
2 files changed, 41 insertions, 46 deletions
diff --git a/sys/netlink/netlink_generic.c b/sys/netlink/netlink_generic.c
index d4c84a34b850..30c73133134b 100644
--- a/sys/netlink/netlink_generic.c
+++ b/sys/netlink/netlink_generic.c
@@ -47,8 +47,47 @@
#include <netlink/netlink_debug.h>
_DECLARE_DEBUG(LOG_INFO);
-static int dump_family(struct nlmsghdr *hdr, struct genlmsghdr *ghdr,
- const struct genl_family *gf, struct nl_writer *nw);
+static int nlctrl_handle_getfamily(struct nlmsghdr *, struct nl_pstate *);
+
+static struct genl_cmd nlctrl_cmds[] = {
+ [CTRL_CMD_GETFAMILY] = {
+ .cmd_num = CTRL_CMD_GETFAMILY,
+ .cmd_name = "GETFAMILY",
+ .cmd_cb = nlctrl_handle_getfamily,
+ .cmd_flags = GENL_CMD_CAP_DO | GENL_CMD_CAP_DUMP |
+ GENL_CMD_CAP_HASPOL,
+ },
+};
+
+static struct genl_family {
+ const char *family_name;
+ uint16_t family_hdrsize;
+ uint16_t family_version;
+ uint16_t family_attr_max;
+ uint16_t family_cmd_size;
+ uint16_t family_num_groups;
+ struct genl_cmd *family_cmds;
+} families[MAX_FAMILIES] = {
+ [CTRL_FAMILY_ID] = {
+ .family_name = CTRL_FAMILY_NAME,
+ .family_hdrsize = 0,
+ .family_version = 2,
+ .family_attr_max = CTRL_ATTR_MAX,
+ .family_cmd_size = CTRL_CMD_GETFAMILY + 1,
+ .family_cmds = nlctrl_cmds,
+ .family_num_groups = 1,
+ },
+};
+
+static struct genl_group {
+ struct genl_family *group_family;
+ const char *group_name;
+} groups[MAX_GROUPS] = {
+ [CTRL_GROUP_ID] = {
+ .group_family = &families[CTRL_FAMILY_ID],
+ .group_name = CTRL_GROUP_NAME,
+ },
+};
/*
* Handler called by netlink subsystem when matching netlink message is received
@@ -299,35 +338,6 @@ SX_SYSINIT(genl_lock, &sx_lock, "genetlink lock");
#define GENL_ASSERT_LOCKED() sx_assert(&sx_lock, SA_LOCKED)
#define GENL_ASSERT_XLOCKED() sx_assert(&sx_lock, SA_XLOCKED)
-static struct genl_cmd nlctrl_cmds[] = {
- [CTRL_CMD_GETFAMILY] = {
- .cmd_num = CTRL_CMD_GETFAMILY,
- .cmd_name = "GETFAMILY",
- .cmd_cb = nlctrl_handle_getfamily,
- .cmd_flags = GENL_CMD_CAP_DO | GENL_CMD_CAP_DUMP |
- GENL_CMD_CAP_HASPOL,
- },
-};
-
-static struct genl_family families[MAX_FAMILIES] = {
- [CTRL_FAMILY_ID] = {
- .family_name = CTRL_FAMILY_NAME,
- .family_hdrsize = 0,
- .family_version = 2,
- .family_attr_max = CTRL_ATTR_MAX,
- .family_cmd_size = CTRL_CMD_GETFAMILY + 1,
- .family_cmds = nlctrl_cmds,
- .family_num_groups = 1,
- },
-}
-;
-static struct genl_group groups[MAX_GROUPS] = {
- [CTRL_GROUP_ID] = {
- .group_family = &families[CTRL_FAMILY_ID],
- .group_name = CTRL_GROUP_NAME,
- },
-};
-
static struct genl_family *
find_family(const char *family_name)
{
diff --git a/sys/netlink/netlink_var.h b/sys/netlink/netlink_var.h
index 87b9f5aaaecd..c341abf7ca55 100644
--- a/sys/netlink/netlink_var.h
+++ b/sys/netlink/netlink_var.h
@@ -144,21 +144,6 @@ struct nl_buf *nl_buf_alloc(size_t len, int mflag);
void nl_buf_free(struct nl_buf *nb);
/* netlink_generic.c */
-struct genl_family {
- const char *family_name;
- uint16_t family_hdrsize;
- uint16_t family_version;
- uint16_t family_attr_max;
- uint16_t family_cmd_size;
- uint16_t family_num_groups;
- struct genl_cmd *family_cmds;
-};
-
-struct genl_group {
- struct genl_family *group_family;
- const char *group_name;
-};
-
struct genl_family *genl_get_family(uint16_t family_id);
struct genl_group *genl_get_group(uint32_t group_id);