1
2
3
4
5
6
7#ifndef _PARSE_OBJ_LIST_H_
8#define _PARSE_OBJ_LIST_H_
9
10
11
12
13#include <sys/queue.h>
14#include <cmdline_parse.h>
15
16#define OBJ_NAME_LEN_MAX 64
17
18struct object {
19 SLIST_ENTRY(object) next;
20 char name[OBJ_NAME_LEN_MAX];
21 cmdline_ipaddr_t ip;
22};
23
24
25SLIST_HEAD(object_list, object);
26
27
28struct token_obj_list_data {
29 struct object_list *list;
30};
31
32struct token_obj_list {
33 struct cmdline_token_hdr hdr;
34 struct token_obj_list_data obj_list_data;
35};
36typedef struct token_obj_list parse_token_obj_list_t;
37
38extern struct cmdline_token_ops token_obj_list_ops;
39
40int parse_obj_list(cmdline_parse_token_hdr_t *tk, const char *srcbuf, void *res,
41 unsigned ressize);
42int complete_get_nb_obj_list(cmdline_parse_token_hdr_t *tk);
43int complete_get_elt_obj_list(cmdline_parse_token_hdr_t *tk, int idx,
44 char *dstbuf, unsigned int size);
45int get_help_obj_list(cmdline_parse_token_hdr_t *tk, char *dstbuf, unsigned int size);
46
47#define TOKEN_OBJ_LIST_INITIALIZER(structure, field, obj_list_ptr) \
48{ \
49 .hdr = { \
50 .ops = &token_obj_list_ops, \
51 .offset = offsetof(structure, field), \
52 }, \
53 .obj_list_data = { \
54 .list = obj_list_ptr, \
55 }, \
56}
57
58#endif
59