chiark / gitweb /
udev: export udev_device_new_from_device_id()
authorKay Sievers <kay@vrfy.org>
Fri, 10 Aug 2012 17:56:57 +0000 (19:56 +0200)
committerKay Sievers <kay@vrfy.org>
Fri, 10 Aug 2012 17:56:57 +0000 (19:56 +0200)
Makefile.am
docs/libudev/libudev-sections.txt
src/libudev/libudev-device.c
src/libudev/libudev-enumerate.c
src/libudev/libudev-private.h
src/libudev/libudev.h
src/libudev/libudev.sym
src/udev/udev-node.c
src/udev/udev-watch.c

index ad8f71d821c3edb9f819df59305b9a8400f94d0c..9062dd65dfb9835bdfce7684468841b5b2131d8f 100644 (file)
@@ -26,9 +26,9 @@ SUBDIRS = . po
 # remove targets if the command fails
 .DELETE_ON_ERROR:
 
-LIBUDEV_CURRENT=1
-LIBUDEV_REVISION=4
-LIBUDEV_AGE=0
+LIBUDEV_CURRENT=2
+LIBUDEV_REVISION=0
+LIBUDEV_AGE=1
 
 LIBGUDEV_CURRENT=1
 LIBGUDEV_REVISION=2
index 9f41ca6ac5b77cca4f5322ff329b1e7547d2f9ca..11e8e1cdf5a6fd24b2a8e278d655365c8e937a91 100644 (file)
@@ -33,6 +33,7 @@ udev_device_get_udev
 udev_device_new_from_syspath
 udev_device_new_from_devnum
 udev_device_new_from_subsystem_sysname
+udev_device_new_from_device_id
 udev_device_new_from_environment
 udev_device_get_parent
 udev_device_get_parent_with_subsystem_devtype
index 98077e777de7c4787d4c5d1a47c45c30af17eaed..1bef70962c59d7b8a080a6b21090fcf22c644ca8 100644 (file)
@@ -714,7 +714,25 @@ _public_ struct udev_device *udev_device_new_from_devnum(struct udev *udev, char
         return udev_device_new_from_syspath(udev, path);
 }
 
-struct udev_device *udev_device_new_from_id_filename(struct udev *udev, char *id)
+/**
+ * udev_device_new_from_device_id:
+ * @udev: udev library context
+ * @id: text string identifying a kernel device
+ *
+ * Create new udev device, and fill in information from the sys
+ * device and the udev database entry. The device is looked-up
+ * by a special string:
+ *   b8:2          - block device major:minor
+ *   c128:1        - char device major:minor
+ *   n3            - network device ifindex
+ *   +sound:card29 - kernel driver core subsystem:device name
+ *
+ * The initial refcount is 1, and needs to be decremented to
+ * release the resources of the udev device.
+ *
+ * Returns: a new udev device, or #NULL, if it does not exist
+ **/
+_public_ struct udev_device *udev_device_new_from_device_id(struct udev *udev, char *id)
 {
         char type;
         int maj, min;
index a945758e3820088d4f2441e44acb9874805c55b4..f0305a488b9f33f573a1e9c8df5cee7eedee4d90 100644 (file)
@@ -789,7 +789,7 @@ static int scan_devices_tags(struct udev_enumerate *udev_enumerate)
                         if (dent->d_name[0] == '.')
                                 continue;
 
-                        dev = udev_device_new_from_id_filename(udev_enumerate->udev, dent->d_name);
+                        dev = udev_device_new_from_device_id(udev_enumerate->udev, dent->d_name);
                         if (dev == NULL)
                                 continue;
 
index 5990605445639b51891ca45e4877f0bbb4a894a7..42342234a26fa5c6e90eaf331e3d1357d8cc0e66 100644 (file)
@@ -47,7 +47,6 @@ struct udev_list_entry *udev_get_properties_list_entry(struct udev *udev);
 
 /* libudev-device.c */
 struct udev_device *udev_device_new(struct udev *udev);
-struct udev_device *udev_device_new_from_id_filename(struct udev *udev, char *id);
 mode_t udev_device_get_devnode_mode(struct udev_device *udev_device);
 int udev_device_set_syspath(struct udev_device *udev_device, const char *syspath);
 int udev_device_set_devnode(struct udev_device *udev_device, const char *devnode);
index 86439849b1f048ee50ff77e07c36ceb5e4d5795f..799f47096e4e309d5d2bb45acb7d139e3907b354 100644 (file)
@@ -73,6 +73,7 @@ struct udev *udev_device_get_udev(struct udev_device *udev_device);
 struct udev_device *udev_device_new_from_syspath(struct udev *udev, const char *syspath);
 struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, dev_t devnum);
 struct udev_device *udev_device_new_from_subsystem_sysname(struct udev *udev, const char *subsystem, const char *sysname);
+struct udev_device *udev_device_new_from_device_id(struct udev *udev, char *id);
 struct udev_device *udev_device_new_from_environment(struct udev *udev);
 /* udev_device_get_parent_*() does not take a reference on the returned device, it is automatically unref'd with the parent */
 struct udev_device *udev_device_get_parent(struct udev_device *udev_device);
index 47683ecda4423ad31649ec7fa435336b8a834870..5b2c3d32cc3b646638d1d136193f5223c4d180ef 100644 (file)
@@ -95,3 +95,8 @@ global:
 local:
         *;
 };
+
+LIBUDEV_189 {
+global:
+        udev_device_new_from_device_id;
+} LIBUDEV_183;
index 738d02fa2525d50b040d3b8e6e5178e81b44f893..df4c8f0152570c3b174449f4b3178a79ce619dd2 100644 (file)
@@ -159,7 +159,7 @@ static const char *link_find_prioritized(struct udev_device *dev, bool add, cons
                 if (strcmp(dent->d_name, udev_device_get_id_filename(dev)) == 0)
                         continue;
 
-                dev_db = udev_device_new_from_id_filename(udev, dent->d_name);
+                dev_db = udev_device_new_from_device_id(udev, dent->d_name);
                 if (dev_db != NULL) {
                         const char *devnode;
 
index 1091ec8d69765cbf4f5c6606d3d5e7bbbc232ac7..c27a280bd30ce510a5b626f82a9a810fec9d09ff 100644 (file)
@@ -75,7 +75,7 @@ void udev_watch_restore(struct udev *udev)
                                 goto unlink;
                         device[len] = '\0';
 
-                        dev = udev_device_new_from_id_filename(udev, device);
+                        dev = udev_device_new_from_device_id(udev, device);
                         if (dev == NULL)
                                 goto unlink;
 
@@ -154,5 +154,5 @@ struct udev_device *udev_watch_lookup(struct udev *udev, int wd)
                 return NULL;
         device[len] = '\0';
 
-        return udev_device_new_from_id_filename(udev, device);
+        return udev_device_new_from_device_id(udev, device);
 }