diff --git a/include/driver.h b/include/driver.h index ee0749d..b9edca0 100644 --- a/include/driver.h +++ b/include/driver.h @@ -25,7 +25,8 @@ #include -#define MAX_DRIVER_NAME 32 +#define MAX_DRIVER_NAME 32 +#define FORMAT_DRIVER_MANE_ID "%s%d" #include @@ -176,9 +177,11 @@ char *deviceid_from_spec_str(const char *str, char **endp); +extern const char *dev_id(const struct device_d *dev); + static inline const char *dev_name(const struct device_d *dev) { - return dev->name; + return dev_id(dev); } /* linear list over all available devices @@ -239,11 +242,10 @@ } /* debugging and troubleshooting/diagnostic helpers. */ -extern const char *dev_id(const struct device_d *dev); #define dev_printf(dev, format, arg...) \ - printf("%s@%s: " format , dev_name(dev) , \ - dev_id(dev) , ## arg) + printf("%s@%s: " format , (dev)->name , \ + dev_name(dev) , ## arg) #define dev_emerg(dev, format, arg...) \ dev_printf((dev) , format , ## arg) diff --git a/lib/driver.c b/lib/driver.c index 00aca9c..39881c2 100644 --- a/lib/driver.c +++ b/lib/driver.c @@ -45,11 +45,9 @@ struct device_d *get_device_by_name(const char *name) { struct device_d *dev; - char devname[MAX_DRIVER_NAME + 3]; for_each_device(dev) { - sprintf(devname, "%s%d", dev->name, dev->id); - if(!strcmp(name, devname)) + if(!strcmp(dev_name(dev), name)) return dev; } @@ -115,7 +113,7 @@ } } - debug ("register_device: %s\n",new_device->name); + debug ("register_device: %s\n", dev_name(new_device)); if (!new_device->bus) { // dev_err(new_device, "no bus type associated. Needs fixup\n"); @@ -138,7 +136,7 @@ int unregister_device(struct device_d *old_dev) { - debug("unregister_device: %s:%s\n",old_dev->name, old_dev->id); + debug("unregister_device: %s\n", dev_name(old_dev)); if (!list_empty(&old_dev->children)) { errno = -EBUSY; @@ -182,7 +180,7 @@ static void noinfo(struct device_d *dev) { - printf("no info available for %s\n", dev->name); + printf("no info available for %s\n", dev_name(dev)); } static void noshortinfo(struct device_d *dev) @@ -255,7 +253,7 @@ for (i = 0; i < depth; i++) printf("| "); - printf("%c----%s%d", edge, dev->name, dev->id); + printf("%c----%s", edge, dev_name(dev)); if (!list_empty(&dev->cdevs)) { printf(" ("); list_for_each_entry(cdev, &dev->cdevs, devices_list) { @@ -282,7 +280,7 @@ { static char buf[sizeof(unsigned long) * 2]; - sprintf(buf, "%s%d", dev->name, dev->id); + sprintf(buf, FORMAT_DRIVER_MANE_ID, dev->name, dev->id); return buf; }