diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-11-26 01:39:19 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-11-26 03:16:47 +0100 |
commit | d6170d27b26eeeace966bb9720d66fcac2a6ef1b (patch) | |
tree | 0610f7c4abf3e350ad56d804015778917138dd47 /src/udev/udevadm-info.c | |
parent | update TODO (diff) | |
download | systemd-d6170d27b26eeeace966bb9720d66fcac2a6ef1b.tar.xz systemd-d6170d27b26eeeace966bb9720d66fcac2a6ef1b.zip |
udevadm: split out find_device helper
The idea is to unify the way that devices can be specified.
Diffstat (limited to 'src/udev/udevadm-info.c')
-rw-r--r-- | src/udev/udevadm-info.c | 30 |
1 files changed, 1 insertions, 29 deletions
diff --git a/src/udev/udevadm-info.c b/src/udev/udevadm-info.c index 22d0826011..a56f159543 100644 --- a/src/udev/udevadm-info.c +++ b/src/udev/udevadm-info.c @@ -31,6 +31,7 @@ #include "udev.h" #include "udev-util.h" +#include "udevadm-util.h" static bool skip_attribute(const char *name) { static const char* const skip[] = { @@ -257,35 +258,6 @@ static void cleanup_db(struct udev *udev) { } } -static struct udev_device *find_device(struct udev *udev, const char *id, const char *prefix) { - char name[UTIL_PATH_SIZE]; - - if (prefix && !startswith(id, prefix)) { - strscpyl(name, sizeof(name), prefix, id, NULL); - id = name; - } - - if (startswith(id, "/dev/")) { - struct stat statbuf; - char type; - - if (stat(id, &statbuf) < 0) - return NULL; - - if (S_ISBLK(statbuf.st_mode)) - type = 'b'; - else if (S_ISCHR(statbuf.st_mode)) - type = 'c'; - else - return NULL; - - return udev_device_new_from_devnum(udev, type, statbuf.st_rdev); - } else if (startswith(id, "/sys/")) - return udev_device_new_from_syspath(udev, id); - else - return NULL; -} - static int uinfo(struct udev *udev, int argc, char *argv[]) { _cleanup_udev_device_unref_ struct udev_device *device = NULL; bool root = 0; |