services: switch to vlist
[project/unetd.git] / service.h
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3 * Copyright (C) 2022 Felix Fietkau <nbd@nbd.name>
4 */
5 #ifndef __UNETD_SERVICE_H
6 #define __UNETD_SERVICE_H
7
8 struct network_service {
9 struct vlist_node node;
10
11 struct blob_attr *config;
12 const char *type;
13
14 int n_members;
15 struct network_host *members[];
16 };
17
18 void network_services_init(struct network *net);
19 void network_services_free(struct network *net);
20 void network_services_add(struct network *net, struct blob_attr *data);
21
22 static inline void network_services_update_start(struct network *net)
23 {
24 vlist_update(&net->services);
25 }
26
27 static inline void network_services_update_done(struct network *net)
28 {
29 vlist_flush(&net->services);
30 }
31
32 #endif