mirror of
https://github.com/ipxe/ipxe
synced 2025-12-26 09:32:33 +03:00
[params] Add support for the general concept of a form parameter list
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
46
src/include/ipxe/params.h
Normal file
46
src/include/ipxe/params.h
Normal file
@@ -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 */
|
||||
@@ -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 );
|
||||
|
||||
Reference in New Issue
Block a user