1 // SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) 2 /* Do not edit directly, auto-generated from: */ 3 /* Documentation/netlink/specs/devlink.yaml */ 4 /* YNL-GEN kernel source */ 5 6 #include <net/netlink.h> 7 #include <net/genetlink.h> 8 9 #include "netlink_gen.h" 10 11 #include <uapi/linux/devlink.h> 12 13 /* DEVLINK_CMD_GET - do */ 14 static const struct nla_policy devlink_get_nl_policy[DEVLINK_ATTR_DEV_NAME + 1] = { 15 [DEVLINK_ATTR_BUS_NAME] = { .type = NLA_NUL_STRING, }, 16 [DEVLINK_ATTR_DEV_NAME] = { .type = NLA_NUL_STRING, }, 17 }; 18 19 /* DEVLINK_CMD_INFO_GET - do */ 20 static const struct nla_policy devlink_info_get_nl_policy[DEVLINK_ATTR_DEV_NAME + 1] = { 21 [DEVLINK_ATTR_BUS_NAME] = { .type = NLA_NUL_STRING, }, 22 [DEVLINK_ATTR_DEV_NAME] = { .type = NLA_NUL_STRING, }, 23 }; 24 25 /* Ops table for devlink */ 26 const struct genl_split_ops devlink_nl_ops[4] = { 27 { 28 .cmd = DEVLINK_CMD_GET, 29 .validate = GENL_DONT_VALIDATE_STRICT, 30 .pre_doit = devlink_nl_pre_doit, 31 .doit = devlink_nl_get_doit, 32 .post_doit = devlink_nl_post_doit, 33 .policy = devlink_get_nl_policy, 34 .maxattr = DEVLINK_ATTR_DEV_NAME, 35 .flags = GENL_CMD_CAP_DO, 36 }, 37 { 38 .cmd = DEVLINK_CMD_GET, 39 .validate = GENL_DONT_VALIDATE_DUMP, 40 .dumpit = devlink_nl_get_dumpit, 41 .flags = GENL_CMD_CAP_DUMP, 42 }, 43 { 44 .cmd = DEVLINK_CMD_INFO_GET, 45 .validate = GENL_DONT_VALIDATE_STRICT, 46 .pre_doit = devlink_nl_pre_doit, 47 .doit = devlink_nl_info_get_doit, 48 .post_doit = devlink_nl_post_doit, 49 .policy = devlink_info_get_nl_policy, 50 .maxattr = DEVLINK_ATTR_DEV_NAME, 51 .flags = GENL_CMD_CAP_DO, 52 }, 53 { 54 .cmd = DEVLINK_CMD_INFO_GET, 55 .validate = GENL_DONT_VALIDATE_DUMP, 56 .dumpit = devlink_nl_info_get_dumpit, 57 .flags = GENL_CMD_CAP_DUMP, 58 }, 59 }; 60