diff options
author | Kay Sievers <kay@vrfy.org> | 2012-08-10 19:56:57 +0200 |
---|---|---|
committer | Kay Sievers <kay@vrfy.org> | 2012-08-10 19:56:57 +0200 |
commit | dbf61afb29e016fe1b4ac48312a782df1d60a3e6 (patch) | |
tree | 82e12903de297fb388c1e85b27fca627943a2f1b /src | |
parent | c516c8d17f77a1c761447f4c40c8dfffeda2e06d (diff) |
udev: export udev_device_new_from_device_id()
Diffstat (limited to 'src')
-rw-r--r-- | src/libudev/libudev-device.c | 20 | ||||
-rw-r--r-- | src/libudev/libudev-enumerate.c | 2 | ||||
-rw-r--r-- | src/libudev/libudev-private.h | 1 | ||||
-rw-r--r-- | src/libudev/libudev.h | 1 | ||||
-rw-r--r-- | src/libudev/libudev.sym | 5 | ||||
-rw-r--r-- | src/udev/udev-node.c | 2 | ||||
-rw-r--r-- | src/udev/udev-watch.c | 4 |
7 files changed, 29 insertions, 6 deletions
diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c index 98077e777d..1bef70962c 100644 --- a/src/libudev/libudev-device.c +++ b/src/libudev/libudev-device.c @@ -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; diff --git a/src/libudev/libudev-enumerate.c b/src/libudev/libudev-enumerate.c index a945758e38..f0305a488b 100644 --- a/src/libudev/libudev-enumerate.c +++ b/src/libudev/libudev-enumerate.c @@ -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; diff --git a/src/libudev/libudev-private.h b/src/libudev/libudev-private.h index 5990605445..42342234a2 100644 --- a/src/libudev/libudev-private.h +++ b/src/libudev/libudev-private.h @@ -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); diff --git a/src/libudev/libudev.h b/src/libudev/libudev.h index 86439849b1..799f47096e 100644 --- a/src/libudev/libudev.h +++ b/src/libudev/libudev.h @@ -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); diff --git a/src/libudev/libudev.sym b/src/libudev/libudev.sym index 47683ecda4..5b2c3d32cc 100644 --- a/src/libudev/libudev.sym +++ b/src/libudev/libudev.sym @@ -95,3 +95,8 @@ global: local: *; }; + +LIBUDEV_189 { +global: + udev_device_new_from_device_id; +} LIBUDEV_183; diff --git a/src/udev/udev-node.c b/src/udev/udev-node.c index 738d02fa25..df4c8f0152 100644 --- a/src/udev/udev-node.c +++ b/src/udev/udev-node.c @@ -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; diff --git a/src/udev/udev-watch.c b/src/udev/udev-watch.c index 1091ec8d69..c27a280bd3 100644 --- a/src/udev/udev-watch.c +++ b/src/udev/udev-watch.c @@ -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); } |