chiark / gitweb /
udev: event - introduce and use internal udev_device_shallow_clone()
[elogind.git] / src / libudev / libudev-device.c
index 193c706d89d185e2d65152005ccd45a0ea51af7a..08331a232929a8a07dd7c23ea7a79f00fd4e6238 100644 (file)
@@ -1944,3 +1944,24 @@ int udev_device_rename(struct udev_device *udev_device, const char *name)
 
         return 0;
 }
+
+struct udev_device *udev_device_shallow_clone(struct udev_device *old_device)
+{
+        struct udev_device *device;
+
+        if (old_device == NULL)
+                return NULL;
+
+        device = udev_device_new(old_device->udev);
+        if (!device) {
+                errno = ENOMEM;
+
+                return NULL;
+        }
+
+        udev_device_set_syspath(device, udev_device_get_syspath(old_device));
+        udev_device_set_subsystem(device, udev_device_get_subsystem(old_device));
+        udev_device_set_devnum(device, udev_device_get_devnum(old_device));
+
+        return device;
+}