From: Yu Watanabe Date: Sat, 13 Oct 2018 15:42:43 +0000 (+0900) Subject: udev: replace udev_device by sd_device in udev-builtin-hwdb.c X-Git-Tag: v240~493^2~20 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bfc38d8fffb97a0bd564c79fb1ca2595a486fc63;p=platform%2Fupstream%2Fsystemd.git udev: replace udev_device by sd_device in udev-builtin-hwdb.c --- diff --git a/src/udev/udev-builtin-hwdb.c b/src/udev/udev-builtin-hwdb.c index a0742f9..8073c9d 100644 --- a/src/udev/udev-builtin-hwdb.c +++ b/src/udev/udev-builtin-hwdb.c @@ -16,7 +16,7 @@ static sd_hwdb *hwdb; -int udev_builtin_hwdb_lookup(struct udev_device *dev, +int udev_builtin_hwdb_lookup(sd_device *dev, const char *prefix, const char *modalias, const char *filter, bool test) { _cleanup_free_ char *lookup = NULL; @@ -37,22 +37,20 @@ int udev_builtin_hwdb_lookup(struct udev_device *dev, if (filter && fnmatch(filter, key, FNM_NOESCAPE) != 0) continue; - if (udev_builtin_add_property(dev->device, test, key, value) < 0) + if (udev_builtin_add_property(dev, test, key, value) < 0) return -ENOMEM; n++; } return n; } -static const char *modalias_usb(struct udev_device *dev, char *s, size_t size) { +static const char *modalias_usb(sd_device *dev, char *s, size_t size) { const char *v, *p; uint16_t vn, pn; - v = udev_device_get_sysattr_value(dev, "idVendor"); - if (!v) + if (sd_device_get_sysattr_value(dev, "idVendor", &v) < 0) return NULL; - p = udev_device_get_sysattr_value(dev, "idProduct"); - if (!p) + if (sd_device_get_sysattr_value(dev, "idProduct", &p) < 0) return NULL; if (safe_atoux16(v, &vn) < 0) return NULL; @@ -62,10 +60,10 @@ static const char *modalias_usb(struct udev_device *dev, char *s, size_t size) { return s; } -static int udev_builtin_hwdb_search(struct udev_device *dev, struct udev_device *srcdev, +static int udev_builtin_hwdb_search(sd_device *dev, sd_device *srcdev, const char *subsystem, const char *prefix, const char *filter, bool test) { - struct udev_device *d; + sd_device *d; char s[16]; bool last = false; int r = 0; @@ -75,21 +73,21 @@ static int udev_builtin_hwdb_search(struct udev_device *dev, struct udev_device if (!srcdev) srcdev = dev; - for (d = srcdev; d && !last; d = udev_device_get_parent(d)) { - const char *dsubsys; - const char *modalias = NULL; + for (d = srcdev; d; ) { + const char *dsubsys, *devtype, *modalias = NULL; - dsubsys = udev_device_get_subsystem(d); - if (!dsubsys) - continue; + if (sd_device_get_subsystem(d, &dsubsys) < 0) + goto next; /* look only at devices of a specific subsystem */ if (subsystem && !streq(dsubsys, subsystem)) - continue; + goto next; - modalias = udev_device_get_property_value(d, "MODALIAS"); + (void) sd_device_get_property_value(d, "MODALIAS", &modalias); - if (streq(dsubsys, "usb") && streq_ptr(udev_device_get_devtype(d), "usb_device")) { + if (streq(dsubsys, "usb") && + sd_device_get_devtype(d, &devtype) >= 0 && + streq(devtype, "usb_device")) { /* if the usb_device does not have a modalias, compose one */ if (!modalias) modalias = modalias_usb(d, s, sizeof(s)); @@ -99,17 +97,23 @@ static int udev_builtin_hwdb_search(struct udev_device *dev, struct udev_device } if (!modalias) - continue; + goto next; r = udev_builtin_hwdb_lookup(dev, prefix, modalias, filter, test); if (r > 0) break; + + if (last) + break; +next: + if (sd_device_get_parent(d, &d) < 0) + break; } return r; } -static int builtin_hwdb(struct udev_device *dev, int argc, char *argv[], bool test) { +static int builtin_hwdb(struct udev_device *_dev, int argc, char *argv[], bool test) { static const struct option options[] = { { "filter", required_argument, NULL, 'f' }, { "device", required_argument, NULL, 'd' }, @@ -121,7 +125,8 @@ static int builtin_hwdb(struct udev_device *dev, int argc, char *argv[], bool te const char *device = NULL; const char *subsystem = NULL; const char *prefix = NULL; - _cleanup_(udev_device_unrefp) struct udev_device *srcdev = NULL; + _cleanup_(sd_device_unrefp) sd_device *srcdev = NULL; + sd_device *dev = _dev->device; if (!hwdb) return EXIT_FAILURE; @@ -160,14 +165,13 @@ static int builtin_hwdb(struct udev_device *dev, int argc, char *argv[], bool te } /* read data from another device than the device we will store the data */ - if (device) { - srcdev = udev_device_new_from_device_id(NULL, device); - if (!srcdev) + if (device) + if (sd_device_new_from_device_id(&srcdev, device) < 0) return EXIT_FAILURE; - } if (udev_builtin_hwdb_search(dev, srcdev, subsystem, prefix, filter, test) > 0) return EXIT_SUCCESS; + return EXIT_FAILURE; } diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c index e7195e0..e154661 100644 --- a/src/udev/udev-builtin-net_id.c +++ b/src/udev/udev-builtin-net_id.c @@ -735,7 +735,7 @@ static int ieee_oui(struct udev_device *dev, struct netnames *names, bool test) xsprintf(str, "OUI:%02X%02X%02X%02X%02X%02X", names->mac[0], names->mac[1], names->mac[2], names->mac[3], names->mac[4], names->mac[5]); - udev_builtin_hwdb_lookup(dev, NULL, str, NULL, test); + udev_builtin_hwdb_lookup(dev->device, NULL, str, NULL, test); return 0; } diff --git a/src/udev/udev-builtin.h b/src/udev/udev-builtin.h index 080a71c..497bf18 100644 --- a/src/udev/udev-builtin.h +++ b/src/udev/udev-builtin.h @@ -64,5 +64,5 @@ int udev_builtin_run(struct udev_device *dev, enum udev_builtin_cmd cmd, const c void udev_builtin_list(void); bool udev_builtin_validate(void); int udev_builtin_add_property(sd_device *dev, bool test, const char *key, const char *val); -int udev_builtin_hwdb_lookup(struct udev_device *dev, const char *prefix, const char *modalias, +int udev_builtin_hwdb_lookup(sd_device *dev, const char *prefix, const char *modalias, const char *filter, bool test);