From a02ceb683ca90bc45d9b9e952c4ef20410f421f3 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 18 Mar 2011 17:10:50 +0000 Subject: [PATCH] +eeze_udev_syspath_get_devname, thanks to Clement Battin SVN revision: 57854 --- legacy/eeze/ChangeLog | 3 +++ legacy/eeze/src/lib/Eeze.h | 1 + legacy/eeze/src/lib/eeze_udev_syspath.c | 28 +++++++++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/legacy/eeze/ChangeLog b/legacy/eeze/ChangeLog index 40274b98f2..08c42e2386 100644 --- a/legacy/eeze/ChangeLog +++ b/legacy/eeze/ChangeLog @@ -1,3 +1,6 @@ +2011-03-12 Mike Blumenkrantz (discomfitor/zmike) ++eeze_udev_syspath_get_devname, added from patch sent by Clement Battin + 2011-03-12 Mike Blumenkrantz (discomfitor/zmike) +EEZE_UDEV_TYPE_NET, added from patch sent by Clement Battin diff --git a/legacy/eeze/src/lib/Eeze.h b/legacy/eeze/src/lib/Eeze.h index 07d648ef6e..d1727b0d81 100644 --- a/legacy/eeze/src/lib/Eeze.h +++ b/legacy/eeze/src/lib/Eeze.h @@ -205,6 +205,7 @@ typedef void(*Eeze_Udev_Watch_Cb)(const char *, Eeze_Udev_Event, void *, Eeze_Ud EAPI const char *eeze_udev_syspath_get_parent(const char *syspath); EAPI Eina_List *eeze_udev_syspath_get_parents(const char *syspath); EAPI const char *eeze_udev_syspath_get_devpath(const char *syspath); + EAPI const char *eeze_udev_syspath_get_devname(const char *syspath); EAPI const char *eeze_udev_syspath_get_subsystem(const char *syspath); EAPI const char *eeze_udev_syspath_get_property(const char *syspath, const char *property); EAPI const char *eeze_udev_syspath_get_sysattr(const char *syspath, const char *sysattr); diff --git a/legacy/eeze/src/lib/eeze_udev_syspath.c b/legacy/eeze/src/lib/eeze_udev_syspath.c index 6ac8ed728f..da5ab104ee 100644 --- a/legacy/eeze/src/lib/eeze_udev_syspath.c +++ b/legacy/eeze/src/lib/eeze_udev_syspath.c @@ -101,6 +101,34 @@ eeze_udev_syspath_get_devpath(const char *syspath) return name; } +/** + * Get the /dev/ name from the /sys/ path. + * + * @param syspath The /sys/ path with or without the /sys/ + * @return A stringshared char* of the device name without the /dev/ path, or NULL on failure + * + * Takes /sys/$PATH and turns it into the corresponding /dev/x/"y". + */ +EAPI const char * +eeze_udev_syspath_get_devname(const char *syspath) +{ + _udev_device *device; + const char *name = NULL; + + if (!syspath) + return NULL; + + if (!(device = _new_device(syspath))) + return NULL; + + if (!(name = udev_device_get_sysname(device))) + return NULL; + + name = eina_stringshare_add(name); + udev_device_unref(device); + return name; +} + /** * Get the subsystem of a device from the /sys/ path. *