X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fparser-conf.h;h=3704bcb4117af9dab8426bc2faf48468137fdcc5;hp=66013f34b2b27ea9e3c447ace788effef87ab705;hb=d27570168fd6d5a2144553002c8082ae626b7e84;hpb=59c55e2b636c0f877d36dbd158ede80a6dbf7ae3 diff --git a/discover/parser-conf.h b/discover/parser-conf.h index 66013f3..3704bcb 100644 --- a/discover/parser-conf.h +++ b/discover/parser-conf.h @@ -29,24 +29,36 @@ struct conf_global_option { struct conf_context { void *parser_info; struct discover_context *dc; - char *buf; struct conf_global_option *global_options; - const char *const *conf_files; + char *(*get_pair)(struct conf_context *conf, char *str, char **name_out, + char **value_out, char terminator); void (*process_pair)(struct conf_context *conf, const char *name, char *value); void (*finish)(struct conf_context *conf); }; -int conf_parse(struct conf_context *conf); -char *conf_get_param_pair(char *str, char **name_out, char **value_out, - char terminator); +void conf_parse_buf(struct conf_context *conf, char *buf, int len); +char *conf_get_pair(struct conf_context *conf, char *str, char **name_out, + char **value_out, char delimiter, char terminator); void conf_init_global_options(struct conf_context *conf); const char *conf_get_global_option(struct conf_context *conf, const char *name); int conf_set_global_option(struct conf_context *conf, const char *name, const char *value); +static inline char *conf_get_pair_equal(struct conf_context *conf, char *str, + char **name_out, char **value_out, char terminator) +{ + return conf_get_pair(conf, str, name_out, value_out, '=', terminator); +} + +static inline char *conf_get_pair_space(struct conf_context *conf, char *str, + char **name_out, char **value_out, char terminator) +{ + return conf_get_pair(conf, str, name_out, value_out, ' ', terminator); +} + /* utility routines */ int conf_param_in_list(const char *const *list, const char *param);