Harald Welte | 3e5ab69 | 2018-06-04 04:26:20 +0200 | [diff] [blame] | 1 | #pragma once |
| 2 | |
| 3 | #include <osmocom/core/select.h> |
| 4 | #include <osmocom/core/utils.h> |
Harald Welte | 1a36f33 | 2018-06-04 17:36:33 +0200 | [diff] [blame] | 5 | #include <osmocom/vty/command.h> |
Harald Welte | 3e5ab69 | 2018-06-04 04:26:20 +0200 | [diff] [blame] | 6 | |
| 7 | #include <stdbool.h> |
| 8 | #include <linux/if.h> |
| 9 | |
Harald Welte | 1a36f33 | 2018-06-04 17:36:33 +0200 | [diff] [blame] | 10 | #include "value_node.h" |
| 11 | |
Harald Welte | 9e7fe00 | 2018-06-04 20:09:26 +0200 | [diff] [blame] | 12 | struct rtnl_client_state; |
Harald Welte | 3e5ab69 | 2018-06-04 04:26:20 +0200 | [diff] [blame] | 13 | |
| 14 | struct osysmon_state { |
Harald Welte | 9e7fe00 | 2018-06-04 20:09:26 +0200 | [diff] [blame] | 15 | struct rtnl_client_state *rcs; |
Harald Welte | 1a36f33 | 2018-06-04 17:36:33 +0200 | [diff] [blame] | 16 | /* list of 'struct ctrl client' */ |
| 17 | struct llist_head ctrl_clients; |
Harald Welte | 9e7fe00 | 2018-06-04 20:09:26 +0200 | [diff] [blame] | 18 | /* list of 'struct netdev' */ |
| 19 | struct llist_head netdevs; |
Harald Welte | 81e2023 | 2018-06-04 21:25:56 +0200 | [diff] [blame] | 20 | /* list of 'struct osysmon_file' */ |
| 21 | struct llist_head files; |
Harald Welte | 3e5ab69 | 2018-06-04 04:26:20 +0200 | [diff] [blame] | 22 | }; |
Harald Welte | 1a36f33 | 2018-06-04 17:36:33 +0200 | [diff] [blame] | 23 | |
| 24 | extern struct osysmon_state *g_oss; |
| 25 | |
| 26 | |
| 27 | |
| 28 | enum osysmon_vty_node { |
| 29 | CTRL_CLIENT_NODE = _LAST_OSMOVTY_NODE + 1, |
| 30 | CTRL_CLIENT_GETVAR_NODE, |
Harald Welte | 9e7fe00 | 2018-06-04 20:09:26 +0200 | [diff] [blame] | 31 | NETDEV_NODE, |
Harald Welte | 1a36f33 | 2018-06-04 17:36:33 +0200 | [diff] [blame] | 32 | }; |
| 33 | |
| 34 | |
| 35 | int osysmon_ctrl_go_parent(struct vty *vty); |
| 36 | int osysmon_ctrl_init(); |
| 37 | int osysmon_ctrl_poll(struct value_node *parent); |
Harald Welte | 32f7a99 | 2018-06-04 18:07:33 +0200 | [diff] [blame] | 38 | |
Harald Welte | 9e7fe00 | 2018-06-04 20:09:26 +0200 | [diff] [blame] | 39 | int osysmon_rtnl_go_parent(struct vty *vty); |
| 40 | int osysmon_rtnl_init(); |
| 41 | int osysmon_rtnl_poll(struct value_node *parent); |
| 42 | |
Harald Welte | 32f7a99 | 2018-06-04 18:07:33 +0200 | [diff] [blame] | 43 | int osysmon_sysinfo_init(); |
| 44 | int osysmon_sysinfo_poll(struct value_node *parent); |
Harald Welte | 81e2023 | 2018-06-04 21:25:56 +0200 | [diff] [blame] | 45 | |
| 46 | int osysmon_file_init(); |
| 47 | int osysmon_file_poll(struct value_node *parent); |