diff options
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/ipxe/params.h | 46 | ||||
| -rw-r--r-- | src/include/ipxe/parseopt.h | 2 |
2 files changed, 48 insertions, 0 deletions
diff --git a/src/include/ipxe/params.h b/src/include/ipxe/params.h new file mode 100644 index 000000000..d78adf562 --- /dev/null +++ b/src/include/ipxe/params.h @@ -0,0 +1,46 @@ +#ifndef _IPXE_PARAMS_H +#define _IPXE_PARAMS_H + +/** @file + * + * Form parameters + * + */ + +FILE_LICENCE ( GPL2_OR_LATER ); + +#include <ipxe/list.h> +#include <ipxe/refcnt.h> + +/** A form parameter list */ +struct parameters { + /** List of all parameter lists */ + struct list_head list; + /** Name */ + const char *name; + /** Parameters */ + struct list_head entries; +}; + +/** A form parameter */ +struct parameter { + /** List of form parameters */ + struct list_head list; + /** Key */ + const char *key; + /** Value */ + const char *value; +}; + +/** Iterate over all form parameters in a list */ +#define for_each_param( param, params ) \ + list_for_each_entry ( (param), &(params)->entries, list ) + +extern struct parameters * find_parameters ( const char *name ); +extern struct parameters * create_parameters ( const char *name ); +extern struct parameter * add_parameter ( struct parameters *params, + const char *key, const char *value ); +extern void destroy_parameters ( struct parameters *params ); +extern void claim_parameters ( struct parameters *params ); + +#endif /* _IPXE_PARAMS_H */ diff --git a/src/include/ipxe/parseopt.h b/src/include/ipxe/parseopt.h index 2e38d231f..108ce04ce 100644 --- a/src/include/ipxe/parseopt.h +++ b/src/include/ipxe/parseopt.h @@ -15,6 +15,7 @@ FILE_LICENCE ( GPL2_OR_LATER ); struct net_device; struct menu; +struct parameters; /** A command-line option descriptor */ struct option_descriptor { @@ -135,6 +136,7 @@ extern int parse_setting ( char *text, struct named_setting *setting, extern int parse_existing_setting ( char *text, struct named_setting *setting ); extern int parse_autovivified_setting ( char *text, struct named_setting *setting ); +extern int parse_parameters ( char *text, struct parameters **params ); extern void print_usage ( struct command_descriptor *cmd, char **argv ); extern int reparse_options ( int argc, char **argv, struct command_descriptor *cmd, void *opts ); |
