| /* SPDX-License-Identifier: GPL-2.0 */ | |
| /* | |
| * | |
| * Generic netlink for energy model. | |
| * | |
| * Copyright (c) 2025 Valve Corporation. | |
| * Author: Changwoo Min <changwoo@igalia.com> | |
| */ | |
| #ifndef _EM_NETLINK_H | |
| #define _EM_NETLINK_H | |
| #if defined(CONFIG_ENERGY_MODEL) && defined(CONFIG_NET) | |
| int for_each_em_perf_domain(int (*cb)(struct em_perf_domain*, void *), | |
| void *data); | |
| struct em_perf_domain *em_perf_domain_get_by_id(int id); | |
| void em_notify_pd_created(const struct em_perf_domain *pd); | |
| void em_notify_pd_deleted(const struct em_perf_domain *pd); | |
| void em_notify_pd_updated(const struct em_perf_domain *pd); | |
| #else | |
| static inline | |
| int for_each_em_perf_domain(int (*cb)(struct em_perf_domain*, void *), | |
| void *data) | |
| { | |
| return -EINVAL; | |
| } | |
| static inline | |
| struct em_perf_domain *em_perf_domain_get_by_id(int id) | |
| { | |
| return NULL; | |
| } | |
| static inline void em_notify_pd_created(const struct em_perf_domain *pd) {} | |
| static inline void em_notify_pd_deleted(const struct em_perf_domain *pd) {} | |
| static inline void em_notify_pd_updated(const struct em_perf_domain *pd) {} | |
| #endif | |
| #endif /* _EM_NETLINK_H */ |