1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-28 03:25:31 +03:00

add $driver subtitution

This commit is contained in:
Hannes Reinecke 2007-07-25 15:24:58 +02:00 committed by Kay Sievers
parent 76bd9d319e
commit fea9b2d292
3 changed files with 27 additions and 0 deletions

10
udev.7
View File

@ -335,6 +335,16 @@ and
\fBATTRS\fR.
.RE
.PP
\fB$driver\fR, \fB%d\fR
.RS 4
The driver name of the device matched while searching the devpath upwards for
\fBSUBSYSTEMS\fR,
\fBKERNELS\fR,
\fBDRIVERS\fR
and
\fBATTRS\fR.
.RE
.PP
\fB$attr{\fR\fB\fIfile\fR\fR\fB}\fR, \fB%s{\fR\fB\fIfile\fR\fR\fB}\fR
.RS 4
The value of a sysfs attribute found at the device, where all keys of the rule have matched. If the matching device does not have such an attribute, all devices along the chain of parents are searched for a matching attribute. If the attribute is a symlink, the last element of the symlink target is returned as the value.

View File

@ -487,6 +487,15 @@
</listitem>
</varlistentry>
<varlistentry>
<term><option>$driver</option>, <option>%d</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>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>$attr{<replaceable>file</replaceable>}</option>, <option>%s{<replaceable>file</replaceable>}</option></term>
<listitem>

View File

@ -597,6 +597,7 @@ void udev_rules_apply_format(struct udevice *udev, char *string, size_t maxsize)
SUBST_KERNEL,
SUBST_KERNEL_NUMBER,
SUBST_ID,
SUBST_DRIVER,
SUBST_MAJOR,
SUBST_MINOR,
SUBST_RESULT,
@ -616,6 +617,7 @@ void udev_rules_apply_format(struct udevice *udev, char *string, size_t maxsize)
{ .name = "number", .fmt = 'n', .type = SUBST_KERNEL_NUMBER },
{ .name = "kernel", .fmt = 'k', .type = SUBST_KERNEL },
{ .name = "id", .fmt = 'b', .type = SUBST_ID },
{ .name = "driver", .fmt = 'd', .type = SUBST_DRIVER },
{ .name = "major", .fmt = 'M', .type = SUBST_MAJOR },
{ .name = "minor", .fmt = 'm', .type = SUBST_MINOR },
{ .name = "result", .fmt = 'c', .type = SUBST_RESULT },
@ -707,6 +709,12 @@ found:
dbg("substitute id '%s'", udev->dev_parent->kernel);
}
break;
case SUBST_DRIVER:
if (udev->dev_parent != NULL) {
strlcat(string, udev->dev_parent->driver, maxsize);
dbg("substitute driver '%s'", udev->dev_parent->driver);
}
break;
case SUBST_MAJOR:
sprintf(temp2, "%d", major(udev->devt));
strlcat(string, temp2, maxsize);