libudev: device - add udev_device_get_property_value()

This commit is contained in:
Kay Sievers
2009-01-06 00:26:28 +01:00
parent 34ac42b98d
commit 3d7b2831cd
5 changed files with 18 additions and 10 deletions
+1
View File
@@ -29,6 +29,7 @@ udev_device_get_subsystem
udev_device_get_devtype
udev_device_get_devlinks_list_entry
udev_device_get_properties_list_entry
udev_device_get_properties_value
udev_device_get_action
udev_device_get_driver
udev_device_get_devnum
+14
View File
@@ -1059,6 +1059,20 @@ struct udev_list_entry *udev_device_add_property_from_string(struct udev_device
return udev_device_add_property(udev_device, name, val);
}
const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key)
{
struct udev_list_entry *list_entry;
if (udev_device == NULL)
return NULL;
if (key == NULL)
return NULL;
list_entry = udev_device_get_properties_list_entry(udev_device);
list_entry = udev_list_entry_get_by_name(list_entry, key);
return udev_list_entry_get_value(list_entry);
}
#define ENVP_SIZE 128
#define MONITOR_BUF_SIZE 4096
static int update_envp_monitor_buf(struct udev_device *udev_device)
+1
View File
@@ -75,6 +75,7 @@ extern const char *udev_device_get_sysnum(struct udev_device *udev_device);
extern const char *udev_device_get_devnode(struct udev_device *udev_device);
extern struct udev_list_entry *udev_device_get_devlinks_list_entry(struct udev_device *udev_device);
extern struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_device *udev_device);
extern const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key);
extern const char *udev_device_get_driver(struct udev_device *udev_device);
extern dev_t udev_device_get_devnum(struct udev_device *udev_device);
extern const char *udev_device_get_action(struct udev_device *udev_device);
+1 -6
View File
@@ -421,14 +421,9 @@ found:
dbg(event->udev, "missing attribute\n");
break;
} else {
struct udev_list_entry *list_entry;
const char *value;
list_entry = udev_device_get_properties_list_entry(event->dev);
list_entry = udev_list_entry_get_by_name(list_entry, attr);
if (list_entry == NULL)
break;
value = udev_list_entry_get_value(list_entry);
value = udev_device_get_property_value(event->dev, attr);
if (value == NULL)
break;
dbg(event->udev, "substitute env '%s=%s'\n", attr, value);
+1 -4
View File
@@ -2059,13 +2059,10 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
break;
case TK_M_ENV:
{
struct udev_list_entry *list_entry;
const char *key_name = &rules->buf[cur->key.attr_off];
const char *value;
list_entry = udev_device_get_properties_list_entry(event->dev);
list_entry = udev_list_entry_get_by_name(list_entry, key_name);
value = udev_list_entry_get_value(list_entry);
value = udev_device_get_property_value(event->dev, key_name);
if (value == NULL) {
dbg(event->udev, "ENV{%s} is not set, treat as empty\n", key_name);
value = "";