diff options
author | Kay Sievers <kay.sievers@vrfy.org> | 2007-08-29 14:04:55 +0200 |
---|---|---|
committer | Kay Sievers <kay.sievers@vrfy.org> | 2007-08-29 14:04:55 +0200 |
commit | 1113044be205f9d78642744ffaa01329a77bee79 (patch) | |
tree | 944494300c894b8e2ce36f07c4fdc0799c625581 | |
parent | 739b614721580b95aebdfd295eebb0a6246803ad (diff) |
add $name substitution
-rw-r--r-- | udev.7 | 7 | ||||
-rw-r--r-- | udev.xml | 10 | ||||
-rw-r--r-- | udev_rules.c | 6 | ||||
-rw-r--r-- | udevd.c | 2 |
4 files changed, 22 insertions, 3 deletions
@@ -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\. @@ -488,7 +488,7 @@ </varlistentry> <varlistentry> - <term><option>$driver</option>, <option>%d</option></term> + <term><option>$driver</option></term> <listitem> <para>The driver name of the device matched while searching the devpath upwards for <option>SUBSYSTEMS</option>, <option>KERNELS</option>, <option>DRIVERS</option> and <option>ATTRS</option>. @@ -548,6 +548,14 @@ </varlistentry> <varlistentry> + <term><option>$name</option></term> + <listitem> + <para>The name of the device node. The value is only set if an earlier + rule assigned a value, or during a remove events.</para> + </listitem> + </varlistentry> + + <varlistentry> <term><option>$root</option>, <option>%r</option></term> <listitem> <para>The udev_root value.</para> diff --git a/udev_rules.c b/udev_rules.c index 35db958c8d..01fb2117b2 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); @@ -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); |