summaryrefslogtreecommitdiffhomepage
path: root/config.h
blob: 22a562f0d4637a829e44d3e3402a9f031cc1ffde (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef __NETIFD_CONFIG_H
#define __NETIFD_CONFIG_H

#include <libubox/blobmsg.h>

enum config_param_type {
	CONFIG_PARAM_TYPE_SIMPLE,
	CONFIG_PARAM_TYPE_LIST,
	CONFIG_PARAM_TYPE_SECTION,
};

union config_param_info {
	enum blobmsg_type type;
	struct config_params *section;
};

struct config_param_list {
	int n_params, n_next;

	const struct blobmsg_policy *params;
	const union config_param_info *info;

	const struct config_param_list *next[];
};

struct config_state {
	struct blob_attr *data;
	unsigned int version;
};

void config_set_state(struct config_state *state, const struct blob_attr *attr);


#endif