diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2007-07-05 18:01:49 +0200 |
---|---|---|
committer | Sascha Hauer <sha@octopus.labnet.pengutronix.de> | 2007-07-05 18:01:49 +0200 |
commit | d729a09f52dfafab555fa5e6e9d0cb22b4bb15fb (patch) | |
tree | 5f38fa3254fef9fc22ebbade63949b1a2c7b8c86 /lib_generic | |
parent | a78b0a43215c76cbb3b5d3ccac3328819cb9c045 (diff) | |
download | barebox-d729a09f52dfafab555fa5e6e9d0cb22b4bb15fb.tar.gz barebox-d729a09f52dfafab555fa5e6e9d0cb22b4bb15fb.tar.xz |
svn_rev_391
remove different parameter types, all params are strings now
Diffstat (limited to 'lib_generic')
-rw-r--r-- | lib_generic/misc.c | 54 |
1 files changed, 14 insertions, 40 deletions
diff --git a/lib_generic/misc.c b/lib_generic/misc.c index 31db462183..e0568739f0 100644 --- a/lib_generic/misc.c +++ b/lib_generic/misc.c @@ -7,6 +7,7 @@ #include <linux/ctype.h> #include <errno.h> #include <fs.h> +#include <net.h> int cmd_get_data_size(char* arg, int default_size) { @@ -386,7 +387,7 @@ int dummy_probe(struct device_d *dev) return 0; } -struct param_d *get_param_by_name(struct device_d *dev, char *name) +struct param_d *get_param_by_name(struct device_d *dev, const char *name) { struct param_d *param = dev->param; @@ -399,21 +400,7 @@ struct param_d *get_param_by_name(struct device_d *dev, char *name) return NULL; } -void print_param(struct param_d *param) { - switch (param->type) { - case PARAM_TYPE_STRING: - printf("%s", param->value.val_str); - break; - case PARAM_TYPE_ULONG: - printf("%ld", param->value.val_ulong); - break; - case PARAM_TYPE_IPADDR: - print_IPaddr(param->value.val_ip); - break; - } -} - -struct param_d* dev_get_param(struct device_d *dev, char *name) +char *dev_get_param(struct device_d *dev, const char *name) { struct param_d *param = get_param_by_name(dev, name); @@ -425,31 +412,23 @@ struct param_d* dev_get_param(struct device_d *dev, char *name) if (param->get) return param->get(dev, param); - return param; + return param->value; } IPaddr_t dev_get_param_ip(struct device_d *dev, char *name) { - struct param_d *param = dev_get_param(dev, name); - - if (!param || param->type != PARAM_TYPE_IPADDR) { - errno = -EINVAL; - return 0; - } - - return param->value.val_ip; + return string_to_ip(dev_get_param(dev, name)); } int dev_set_param_ip(struct device_d *dev, char *name, IPaddr_t ip) { - value_t val; - - val.val_ip = ip; + char ipstr[16]; + ip_to_string(ip, ipstr); - return dev_set_param(dev, name, val); + return dev_set_param(dev, name, ipstr); } -int dev_set_param(struct device_d *dev, char *name, value_t val) +int dev_set_param(struct device_d *dev, const char *name, const char *val) { struct param_d *param; @@ -473,14 +452,10 @@ int dev_set_param(struct device_d *dev, char *name, value_t val) if (param->set) return param->set(dev, param, val); - if (param->type == PARAM_TYPE_STRING) { - if (param->value.val_str) - free(param->value.val_str); - param->value.val_str = strdup(val.val_str); - return 0; - } + if (param->value) + free(param->value); - param->value = val; + param->value = strdup(val); return 0; } @@ -537,9 +512,7 @@ int do_devinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) printf("%s\n", param ? "Parameters:" : "no parameters available"); while (param) { - printf("%16s = ", param->name); - print_param(param); - printf("\n"); + printf("%16s = %s\n", param->name, param->value); param = param->next; } @@ -554,3 +527,4 @@ U_BOOT_CMD( "" ); + |