1bd26631cSChangwoo Min // SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) 2bd26631cSChangwoo Min /* Do not edit directly, auto-generated from: */ 3caa07a81SChangwoo Min /* Documentation/netlink/specs/dev-energymodel.yaml */ 4bd26631cSChangwoo Min /* YNL-GEN kernel source */ 5e56cadaaSJakub Kicinski /* To regenerate run: tools/net/ynl/ynl-regen.sh */ 6bd26631cSChangwoo Min 7bd26631cSChangwoo Min #include <net/netlink.h> 8bd26631cSChangwoo Min #include <net/genetlink.h> 9bd26631cSChangwoo Min 10bd26631cSChangwoo Min #include "em_netlink_autogen.h" 11bd26631cSChangwoo Min 12caa07a81SChangwoo Min #include <uapi/linux/dev_energymodel.h> 13bd26631cSChangwoo Min 14*380ff27aSChangwoo Min /* DEV_ENERGYMODEL_CMD_GET_PERF_DOMAINS - do */ 15*380ff27aSChangwoo Min static const struct nla_policy dev_energymodel_get_perf_domains_nl_policy[DEV_ENERGYMODEL_A_PERF_DOMAIN_PERF_DOMAIN_ID + 1] = { 16*380ff27aSChangwoo Min [DEV_ENERGYMODEL_A_PERF_DOMAIN_PERF_DOMAIN_ID] = { .type = NLA_U32, }, 17*380ff27aSChangwoo Min }; 18*380ff27aSChangwoo Min 19caa07a81SChangwoo Min /* DEV_ENERGYMODEL_CMD_GET_PERF_TABLE - do */ 20caa07a81SChangwoo Min static const struct nla_policy dev_energymodel_get_perf_table_nl_policy[DEV_ENERGYMODEL_A_PERF_TABLE_PERF_DOMAIN_ID + 1] = { 21caa07a81SChangwoo Min [DEV_ENERGYMODEL_A_PERF_TABLE_PERF_DOMAIN_ID] = { .type = NLA_U32, }, 22bd26631cSChangwoo Min }; 23bd26631cSChangwoo Min 24caa07a81SChangwoo Min /* Ops table for dev_energymodel */ 25caa07a81SChangwoo Min static const struct genl_split_ops dev_energymodel_nl_ops[] = { 26bd26631cSChangwoo Min { 27caa07a81SChangwoo Min .cmd = DEV_ENERGYMODEL_CMD_GET_PERF_DOMAINS, 28caa07a81SChangwoo Min .doit = dev_energymodel_nl_get_perf_domains_doit, 29*380ff27aSChangwoo Min .policy = dev_energymodel_get_perf_domains_nl_policy, 30*380ff27aSChangwoo Min .maxattr = DEV_ENERGYMODEL_A_PERF_DOMAIN_PERF_DOMAIN_ID, 31bd26631cSChangwoo Min .flags = GENL_CMD_CAP_DO, 32bd26631cSChangwoo Min }, 33bd26631cSChangwoo Min { 34*380ff27aSChangwoo Min .cmd = DEV_ENERGYMODEL_CMD_GET_PERF_DOMAINS, 35*380ff27aSChangwoo Min .dumpit = dev_energymodel_nl_get_perf_domains_dumpit, 36*380ff27aSChangwoo Min .flags = GENL_CMD_CAP_DUMP, 37*380ff27aSChangwoo Min }, 38*380ff27aSChangwoo Min { 39caa07a81SChangwoo Min .cmd = DEV_ENERGYMODEL_CMD_GET_PERF_TABLE, 40caa07a81SChangwoo Min .doit = dev_energymodel_nl_get_perf_table_doit, 41caa07a81SChangwoo Min .policy = dev_energymodel_get_perf_table_nl_policy, 42caa07a81SChangwoo Min .maxattr = DEV_ENERGYMODEL_A_PERF_TABLE_PERF_DOMAIN_ID, 43bd26631cSChangwoo Min .flags = GENL_CMD_CAP_DO, 44bd26631cSChangwoo Min }, 45bd26631cSChangwoo Min }; 46bd26631cSChangwoo Min 47caa07a81SChangwoo Min static const struct genl_multicast_group dev_energymodel_nl_mcgrps[] = { 48caa07a81SChangwoo Min [DEV_ENERGYMODEL_NLGRP_EVENT] = { "event", }, 49bd26631cSChangwoo Min }; 50bd26631cSChangwoo Min 51caa07a81SChangwoo Min struct genl_family dev_energymodel_nl_family __ro_after_init = { 52caa07a81SChangwoo Min .name = DEV_ENERGYMODEL_FAMILY_NAME, 53caa07a81SChangwoo Min .version = DEV_ENERGYMODEL_FAMILY_VERSION, 54bd26631cSChangwoo Min .netnsok = true, 55bd26631cSChangwoo Min .parallel_ops = true, 56bd26631cSChangwoo Min .module = THIS_MODULE, 57caa07a81SChangwoo Min .split_ops = dev_energymodel_nl_ops, 58caa07a81SChangwoo Min .n_split_ops = ARRAY_SIZE(dev_energymodel_nl_ops), 59caa07a81SChangwoo Min .mcgrps = dev_energymodel_nl_mcgrps, 60caa07a81SChangwoo Min .n_mcgrps = ARRAY_SIZE(dev_energymodel_nl_mcgrps), 61bd26631cSChangwoo Min }; 62