thermal_nl.h (1207B)
1/* SPDX-License-Identifier: LGPL-2.1+ */ 2/* Copyright (C) 2022, Linaro Ltd - Daniel Lezcano <daniel.lezcano@linaro.org> */ 3#ifndef __THERMAL_H 4#define __THERMAL_H 5 6#include <netlink/netlink.h> 7#include <netlink/genl/genl.h> 8#include <netlink/genl/mngt.h> 9#include <netlink/genl/ctrl.h> 10 11struct thermal_handler { 12 int done; 13 int error; 14 struct thermal_ops *ops; 15 struct nl_msg *msg; 16 struct nl_sock *sk_event; 17 struct nl_sock *sk_sampling; 18 struct nl_sock *sk_cmd; 19 struct nl_cb *cb_cmd; 20 struct nl_cb *cb_event; 21 struct nl_cb *cb_sampling; 22}; 23 24struct thermal_handler_param { 25 struct thermal_handler *th; 26 void *arg; 27}; 28 29/* 30 * Low level netlink 31 */ 32extern int nl_subscribe_thermal(struct nl_sock *nl_sock, struct nl_cb *nl_cb, 33 const char *group); 34 35extern int nl_unsubscribe_thermal(struct nl_sock *nl_sock, struct nl_cb *nl_cb, 36 const char *group); 37 38extern int nl_thermal_connect(struct nl_sock **nl_sock, struct nl_cb **nl_cb); 39 40extern void nl_thermal_disconnect(struct nl_sock *nl_sock, struct nl_cb *nl_cb); 41 42extern int nl_send_msg(struct nl_sock *sock, struct nl_cb *nl_cb, struct nl_msg *msg, 43 int (*rx_handler)(struct nl_msg *, void *), 44 void *data); 45 46#endif /* __THERMAL_H */