X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fparser-conf.h;h=3704bcb4117af9dab8426bc2faf48468137fdcc5;hp=09015d1734e8df4fedc629a6bf0cbc16f8855557;hb=9af0c65fa5ba9ae8527a70dbf0e808d777dfb479;hpb=5472ed16df5642aedc124a1b49a35d99da98cc37 diff --git a/discover/parser-conf.h b/discover/parser-conf.h index 09015d1..3704bcb 100644 --- a/discover/parser-conf.h +++ b/discover/parser-conf.h @@ -29,26 +29,40 @@ 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); char *conf_strip_str(char *s); +char *conf_replace_char(char *s, char from, char to); #endif