protocol: Separate device add from boot-option add messages
[petitboot] / discover / parser-conf.h
index 66013f34b2b27ea9e3c447ace788effef87ab705..efeb4f3d241c6a994db0fc225b1cc27b24455d6b 100644 (file)
@@ -33,20 +33,34 @@ 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);