From 1113044be205f9d78642744ffaa01329a77bee79 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Wed, 29 Aug 2007 14:04:55 +0200 Subject: [PATCH] add $name substitution --- udev.7 | 7 ++++++- udev.xml | 10 +++++++++- udev_rules.c | 6 ++++++ udevd.c | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/udev.7 b/udev.7 index 5f0ebb997..0ea554923 100644 --- a/udev.7 +++ b/udev.7 @@ -331,7 +331,7 @@ and \fBATTRS\fR\. .RE .PP -\fB$driver\fR, \fB%d\fR +\fB$driver\fR .RS 4 The driver name of the device matched while searching the devpath upwards for \fBSUBSYSTEMS\fR, @@ -373,6 +373,11 @@ The string returned by the external program requested with PROGRAM\. A single pa The node name of the parent device\. .RE .PP +\fB$name\fR +.RS 4 +The name of the device node\. The value is only set if an earlier rule assigned a value, or during a remove events\. +.RE +.PP \fB$root\fR, \fB%r\fR .RS 4 The udev_root value\. diff --git a/udev.xml b/udev.xml index b43abb779..9fb615294 100644 --- a/udev.xml +++ b/udev.xml @@ -488,7 +488,7 @@ - , + The driver name of the device matched while searching the devpath upwards for , , and . @@ -547,6 +547,14 @@ + + + + The name of the device node. The value is only set if an earlier + rule assigned a value, or during a remove events. + + + , diff --git a/udev_rules.c b/udev_rules.c index 35db958c8..01fb2117b 100644 --- a/udev_rules.c +++ b/udev_rules.c @@ -606,6 +606,7 @@ void udev_rules_apply_format(struct udevice *udev, char *string, size_t maxsize) SUBST_ATTR, SUBST_PARENT, SUBST_TEMP_NODE, + SUBST_NAME, SUBST_ROOT, SUBST_SYS, SUBST_ENV, @@ -627,6 +628,7 @@ void udev_rules_apply_format(struct udevice *udev, char *string, size_t maxsize) { .name = "sysfs", .fmt = 's', .type = SUBST_ATTR }, { .name = "parent", .fmt = 'P', .type = SUBST_PARENT }, { .name = "tempnode", .fmt = 'N', .type = SUBST_TEMP_NODE }, + { .name = "name", .fmt = 'D', .type = SUBST_NAME }, { .name = "root", .fmt = 'r', .type = SUBST_ROOT }, { .name = "sys", .fmt = 'S', .type = SUBST_SYS }, { .name = "env", .fmt = 'E', .type = SUBST_ENV }, @@ -845,6 +847,10 @@ found: strlcat(string, udev->tmp_node, maxsize); dbg("substitute temporary device node name '%s'", udev->tmp_node); break; + case SUBST_NAME: + strlcat(string, udev->name, maxsize); + dbg("substitute udev->name '%s'", udev->name); + break; case SUBST_ROOT: strlcat(string, udev_root, maxsize); dbg("substitute udev_root '%s'", udev_root); diff --git a/udevd.c b/udevd.c index 3c46617e4..5ff5d3f66 100644 --- a/udevd.c +++ b/udevd.c @@ -508,7 +508,7 @@ static int devpath_busy(struct udevd_uevent_msg *msg, int limit) } } - /* check runing-queue for still running events */ + /* check run queue for still running events */ list_for_each_entry(loop_msg, &running_list, node) { if (limit && childs_count++ > limit) { dbg("%llu, maximum number (%i) of childs reached", msg->seqnum, childs_count); -- 2.30.2