summaryrefslogtreecommitdiffhomepage
path: root/config.h
blob: 5623a40fcd0022ec74d2ee2f6e44b845e1291941 (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
35
36
#ifndef __NETIFD_CONFIG_H
#define __NETIFD_CONFIG_H

#include <libubox/blobmsg.h>

extern bool config_init;

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_init_interfaces(const char *name);
void config_set_state(struct config_state *state, const struct blob_attr *attr);

#endif