From 38f1ffbd30e38b3215fa81114230ae2948dca8dc Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 2 Dec 2024 10:57:36 +0100 Subject: pkg/declextract: refactor netlink generation Emit all information related to a single netlink family close to each other. Previously we emitted them scattered and grouped by info type. That was both inconvinient to emit and inconvinient to read. NFC. --- tools/syz-declextract/testdata/netlink.c.txt | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'tools') diff --git a/tools/syz-declextract/testdata/netlink.c.txt b/tools/syz-declextract/testdata/netlink.c.txt index 87b3ae122..96af4f31b 100644 --- a/tools/syz-declextract/testdata/netlink.c.txt +++ b/tools/syz-declextract/testdata/netlink.c.txt @@ -10,19 +10,10 @@ include include resource genl_bar_family_id$auto[int16] -resource genl_foo_family_family_id$auto[int16] type msghdr_bar$auto[CMD, POLICY] msghdr_netlink[netlink_msg_t[genl_bar_family_id$auto, genlmsghdr_t[CMD], POLICY]] -type msghdr_foo_family$auto[CMD, POLICY] msghdr_netlink[netlink_msg_t[genl_foo_family_family_id$auto, genlmsghdr_t[CMD], POLICY]] syz_genetlink_get_family_id$auto_bar(name ptr[in, string["BAR"]], fd sock_nl_generic) genl_bar_family_id$auto -syz_genetlink_get_family_id$auto_foo_family(name ptr[in, string["foo family"]], fd sock_nl_generic) genl_foo_family_family_id$auto -sendmsg$auto_NETLINK_BAR_CMD_FOO(fd sock_nl_generic, msg ptr[in, msghdr_bar$auto[NETLINK_BAR_CMD_FOO, foo_genl_policy_netlink$auto]], f flags[send_flags]) -sendmsg$auto_NETLINK_FOO_CMD_BAR(fd sock_nl_generic, msg ptr[in, msghdr_foo_family$auto[NETLINK_FOO_CMD_BAR, foo_genl_policy_netlink$auto]], f flags[send_flags]) -sendmsg$auto_NETLINK_FOO_CMD_FOO(fd sock_nl_generic, msg ptr[in, msghdr_foo_family$auto[NETLINK_FOO_CMD_FOO, foo_genl_policy_netlink$auto]], f flags[send_flags]) -foo_genl_nested_policy_netlink$auto [ - NETLINK_FOO_NESTED_ATTR1 nlattr[NETLINK_FOO_NESTED_ATTR1, int32] - NETLINK_FOO_NESTED_ATTR2 nlattr[NETLINK_FOO_NESTED_ATTR2, int32] -] [varlen] +sendmsg$auto_NETLINK_BAR_CMD_FOO(fd sock_nl_generic, msg ptr[in, msghdr_bar$auto[NETLINK_BAR_CMD_FOO, foo_genl_policy_netlink$auto]], f flags[send_flags]) foo_genl_policy_netlink$auto [ NETLINK_FOO_ATTR1 nlattr[NETLINK_FOO_ATTR1, int32] @@ -34,6 +25,18 @@ foo_genl_policy_netlink$auto [ NETLINK_FOO_ATTR7 nlattr[NETLINK_FOO_ATTR7, netlink_foo_struct2$auto] ] [varlen] +foo_genl_nested_policy_netlink$auto [ + NETLINK_FOO_NESTED_ATTR1 nlattr[NETLINK_FOO_NESTED_ATTR1, int32] + NETLINK_FOO_NESTED_ATTR2 nlattr[NETLINK_FOO_NESTED_ATTR2, int32] +] [varlen] + +resource genl_foo_family_family_id$auto[int16] +type msghdr_foo_family$auto[CMD, POLICY] msghdr_netlink[netlink_msg_t[genl_foo_family_family_id$auto, genlmsghdr_t[CMD], POLICY]] +syz_genetlink_get_family_id$auto_foo_family(name ptr[in, string["foo family"]], fd sock_nl_generic) genl_foo_family_family_id$auto + +sendmsg$auto_NETLINK_FOO_CMD_FOO(fd sock_nl_generic, msg ptr[in, msghdr_foo_family$auto[NETLINK_FOO_CMD_FOO, foo_genl_policy_netlink$auto]], f flags[send_flags]) +sendmsg$auto_NETLINK_FOO_CMD_BAR(fd sock_nl_generic, msg ptr[in, msghdr_foo_family$auto[NETLINK_FOO_CMD_BAR, foo_genl_policy_netlink$auto]], f flags[send_flags]) + netlink_foo_struct1$auto { a int32 b int32 -- cgit mrf-deployment