summaryrefslogtreecommitdiff
path: root/src/libudev/libudev-device.c
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2015-03-06 15:22:30 +0100
committerTom Gundersen <teg@jklm.no>2015-03-12 12:03:50 +0100
commit8f0f13f04555d3bc67511d2e334c667cef7e8971 (patch)
tree04925aaac97305fc06e8d9829a20aef7f4954d3e /src/libudev/libudev-device.c
parenta4445e88cece0444c66d70876b03065158dd4685 (diff)
downloadsystemd-8f0f13f04555d3bc67511d2e334c667cef7e8971.tar.gz
systemd-8f0f13f04555d3bc67511d2e334c667cef7e8971.tar.bz2
systemd-8f0f13f04555d3bc67511d2e334c667cef7e8971.zip
libudev: introduce clone_with_db()
This allows us to move the db reading from udevd to libudev.
Diffstat (limited to 'src/libudev/libudev-device.c')
-rw-r--r--src/libudev/libudev-device.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c
index 2604ad7051..c0a061af6c 100644
--- a/src/libudev/libudev-device.c
+++ b/src/libudev/libudev-device.c
@@ -1986,6 +1986,20 @@ struct udev_device *udev_device_shallow_clone(struct udev_device *old_device)
return device;
}
+struct udev_device *udev_device_clone_with_db(struct udev_device *old_device)
+{
+ struct udev_device *device;
+
+ device = udev_device_shallow_clone(old_device);
+ if (!device)
+ return NULL;
+
+ udev_device_read_db(device);
+ udev_device_set_info_loaded(device);
+
+ return device;
+}
+
struct udev_device *udev_device_new_from_nulstr(struct udev *udev, char *nulstr, ssize_t buflen) {
struct udev_device *device;
ssize_t bufpos = 0;