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:
parent
1c0b9f3954
commit
247022ec92
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue