summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2017-04-06 11:41:59 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2017-04-10 08:49:59 +0200
commitc6d839ea1dd2a926bab5ea179b2b72dc409bc2dd (patch)
treed4dbb85678f7aa32b7c5f8dfe0e51984041833aa /include
parenta2badef726c5a216813e4b2ddf04f35076833395 (diff)
downloadbarebox-c6d839ea1dd2a926bab5ea179b2b72dc409bc2dd.tar.gz
barebox-c6d839ea1dd2a926bab5ea179b2b72dc409bc2dd.tar.xz
parameter: Give device parameters types
This adds a variable type enum and adds this to the device parameters. This information gives the user a hint which values a parameter expects and also helps to organize the parameters better internally. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include')
-rw-r--r--include/param.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/param.h b/include/param.h
index f9f3398cae..2eb040fea4 100644
--- a/include/param.h
+++ b/include/param.h
@@ -10,6 +10,19 @@
struct device_d;
typedef uint32_t IPaddr_t;
+enum param_type {
+ PARAM_TYPE_STRING = 0,
+ PARAM_TYPE_INT32,
+ PARAM_TYPE_UINT32,
+ PARAM_TYPE_INT64,
+ PARAM_TYPE_UINT64,
+ PARAM_TYPE_BOOL,
+ PARAM_TYPE_ENUM,
+ PARAM_TYPE_BITMASK,
+ PARAM_TYPE_IPV4,
+ PARAM_TYPE_MAC,
+};
+
struct param_d {
const char* (*get)(struct device_d *, struct param_d *param);
int (*set)(struct device_d *, struct param_d *param, const char *val);
@@ -20,9 +33,11 @@ struct param_d {
struct device_d *dev;
void *driver_priv;
struct list_head list;
+ enum param_type type;
};
#ifdef CONFIG_PARAMETER
+const char *get_param_type(struct param_d *param);
const char *dev_get_param(struct device_d *dev, const char *name);
int dev_set_param(struct device_d *dev, const char *name, const char *val);
struct param_d *get_param_by_name(struct device_d *dev, const char *name);