diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2018-10-16 12:15:40 -0700 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-10-18 09:02:24 +0200 |
commit | 05683764a77ff91419cabe0c26e537589b8a28ff (patch) | |
tree | e51127b561984c8b612c8881b8e943c29c9daddf /drivers/base | |
parent | d800b11619bb857ed857df1332c5b6e9c41d6414 (diff) | |
download | barebox-05683764a77ff91419cabe0c26e537589b8a28ff.tar.gz barebox-05683764a77ff91419cabe0c26e537589b8a28ff.tar.xz |
drivers: Introduce dev_set_name()
Introduce dev_set_name() in order to hide implementation details of
setting device's name so it'd be easier to change it.
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/bus.c | 2 | ||||
-rw-r--r-- | drivers/base/driver.c | 21 | ||||
-rw-r--r-- | drivers/base/resource.c | 2 |
3 files changed, 23 insertions, 2 deletions
diff --git a/drivers/base/bus.c b/drivers/base/bus.c index b889a48662..1038d20a12 100644 --- a/drivers/base/bus.c +++ b/drivers/base/bus.c @@ -32,7 +32,7 @@ int bus_register(struct bus_type *bus) return -EEXIST; bus->dev = xzalloc(sizeof(*bus->dev)); - strcpy(bus->dev->name, bus->name); + dev_set_name(bus->dev, bus->name); bus->dev->id = DEVICE_ID_SINGLE; ret = register_device(bus->dev); diff --git a/drivers/base/driver.c b/drivers/base/driver.c index c43a4bde2a..c9e6e6ddd6 100644 --- a/drivers/base/driver.c +++ b/drivers/base/driver.c @@ -478,6 +478,27 @@ const char *dev_id(const struct device_d *dev) return buf; } +/** + * dev_set_name - set a device name + * @dev: device + * @fmt: format string for the device's name + * + */ +int dev_set_name(struct device_d *dev, const char *fmt, ...) +{ + va_list vargs; + int err; + + va_start(vargs, fmt); + err = vsnprintf(dev->name, sizeof(dev->name), fmt, vargs); + va_end(vargs); + + WARN_ON(err < 0); + + return err; +} +EXPORT_SYMBOL_GPL(dev_set_name); + static void devices_shutdown(void) { struct device_d *dev; diff --git a/drivers/base/resource.c b/drivers/base/resource.c index 6c2d7fed46..cb7105bf8d 100644 --- a/drivers/base/resource.c +++ b/drivers/base/resource.c @@ -27,7 +27,7 @@ struct device_d *device_alloc(const char *devname, int id) struct device_d *dev; dev = xzalloc(sizeof(*dev)); - strcpy(dev->name, devname); + dev_set_name(dev, devname); dev->id = id; return dev; |