protocol: Separate device add from boot-option add messages
[petitboot] / discover / parser-conf.h
index 09015d1734e8df4fedc629a6bf0cbc16f8855557..efeb4f3d241c6a994db0fc225b1cc27b24455d6b 100644 (file)
@@ -33,22 +33,38 @@ struct conf_context {
        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);
+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