9
0
Fork 0

parameter: support removing named parameters

Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Jan Luebbe 2012-10-10 12:42:51 +02:00 committed by Sascha Hauer
parent 1c0b9f3954
commit 247022ec92
2 changed files with 22 additions and 0 deletions

View File

@ -30,6 +30,8 @@ int dev_add_param(struct device_d *dev, const char *name,
int dev_add_param_fixed(struct device_d *dev, char *name, char *value);
void dev_remove_param(struct device_d *dev, char *name);
void dev_remove_parameters(struct device_d *dev);
int dev_param_set_generic(struct device_d *dev, struct param_d *p,
@ -67,6 +69,8 @@ static inline int dev_add_param_fixed(struct device_d *dev, char *name, char *va
return 0;
}
static inline void dev_remove_param(struct device_d *dev, char *name) {}
static inline void dev_remove_parameters(struct device_d *dev) {}
static inline int dev_param_set_generic(struct device_d *dev, struct param_d *p,

View File

@ -212,6 +212,24 @@ int dev_add_param_fixed(struct device_d *dev, char *name, char *value)
return 0;
}
/**
* dev_remove_param - remove a parameter from a device and free its
* memory
* @param dev The device
* @param name The name of the parameter
*/
void dev_remove_param(struct device_d *dev, char *name)
{
struct param_d *p = get_param_by_name(dev, name);
if (p) {
p->set(dev, p, NULL);
list_del(&p->list);
free(p->name);
free(p);
}
}
/**
* dev_remove_parameters - remove all parameters from a device and free their
* memory