svn_rev_377
remove special params, all params are strings now
This commit is contained in:
parent
4320cc59b5
commit
e454ad437a
|
@ -1,39 +1,22 @@
|
|||
#ifndef PARAM_H
|
||||
#define PARAM_H
|
||||
|
||||
#include <net.h>
|
||||
|
||||
#define PARAM_TYPE_STRING 1
|
||||
#define PARAM_TYPE_ULONG 2
|
||||
#define PARAM_TYPE_IPADDR 3
|
||||
|
||||
#define PARAM_FLAG_RO (1 << 0)
|
||||
|
||||
struct device_d;
|
||||
|
||||
typedef union {
|
||||
char *val_str;
|
||||
ulong val_ulong;
|
||||
IPaddr_t val_ip;
|
||||
} value_t;
|
||||
|
||||
struct param_d {
|
||||
struct param_d* (*get)(struct device_d *, struct param_d *param);
|
||||
int (*set)(struct device_d *, struct param_d *param, value_t val);
|
||||
ulong type;
|
||||
char* (*get)(struct device_d *, struct param_d *param);
|
||||
int (*set)(struct device_d *, struct param_d *param, const char *val);
|
||||
ulong flags;
|
||||
char *name;
|
||||
ulong cookie;
|
||||
struct param_d *next;
|
||||
value_t value;
|
||||
char *name;
|
||||
struct param_d *next;
|
||||
char *value;
|
||||
};
|
||||
|
||||
struct param_d* dev_get_param(struct device_d *dev, char *name);
|
||||
int dev_set_param(struct device_d *dev, char *name, value_t val);
|
||||
struct param_d *get_param_by_name(struct device_d *dev, char *name);
|
||||
void print_param(struct param_d *param);
|
||||
IPaddr_t dev_get_param_ip(struct device_d *dev, char *name);
|
||||
int dev_set_param_ip(struct device_d *dev, char *name, IPaddr_t ip);
|
||||
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);
|
||||
|
||||
int dev_add_parameter(struct device_d *dev, struct param_d *par);
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ static int do_get( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||
}
|
||||
|
||||
param = dev_get_param(dev, argv[2]);
|
||||
print_param(param);
|
||||
printf("%s\n", param->value);
|
||||
printf("\n");
|
||||
|
||||
return 0;
|
||||
|
@ -68,7 +68,6 @@ static int do_set( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||
char *endp;
|
||||
int ret;
|
||||
struct param_d *param;
|
||||
value_t val;
|
||||
|
||||
if (argc < 4) {
|
||||
printf ("Usage:\n%s\n", cmdtp->usage);
|
||||
|
@ -87,19 +86,7 @@ static int do_set( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||
return 1;
|
||||
}
|
||||
|
||||
switch (param->type) {
|
||||
case PARAM_TYPE_STRING:
|
||||
val.val_str = argv[3];
|
||||
break;
|
||||
case PARAM_TYPE_ULONG:
|
||||
val.val_ulong = simple_strtoul(argv[3], NULL, 0);
|
||||
break;
|
||||
case PARAM_TYPE_IPADDR:
|
||||
val.val_ip = string_to_ip(argv[3]);
|
||||
break;
|
||||
}
|
||||
|
||||
ret = dev_set_param(dev, argv[2], val);
|
||||
ret = dev_set_param(dev, argv[2], argv[3]);
|
||||
|
||||
if (ret)
|
||||
perror("set parameter");
|
||||
|
|
Loading…
Reference in New Issue