discover: log unresolved boot options
[petitboot] / discover / parser-conf.h
index 66013f34b2b27ea9e3c447ace788effef87ab705..3704bcb4117af9dab8426bc2faf48468137fdcc5 100644 (file)
@@ -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);