chiark / gitweb /
[PATCH] udev - switch callout part selector to {attribute}
authorkay.sievers@vrfy.org <kay.sievers@vrfy.org>
Tue, 17 Feb 2004 09:29:03 +0000 (01:29 -0800)
committerGreg KH <gregkh@suse.de>
Wed, 27 Apr 2005 04:32:28 +0000 (21:32 -0700)
Here we change the magic callout part number selector to the new
atribute syntax. The syntax to select the second part of the callout string:

 '%2c' is now '%c{2}'

I think it's more clear and we no longer misuse the length argument.

The old syntax is still supported, but we should remove it some
time in the future.

etc/udev/udev.rules.devfs
etc/udev/udev.rules.gentoo
extras/ide-devfs.sh
extras/name_cdrom.pl
namedev.c
test/udev-test.pl

index f9333e9..77d3cf5 100644 (file)
@@ -2,7 +2,7 @@
 # fields.  See the udev man page for a full description of them.
 
 # ide block devices
-BUS="ide", KERNEL="hd*", PROGRAM="/etc/udev/ide-devfs.sh %k %b %n", NAME="%k", SYMLINK="%1c %2c"
+BUS="ide", KERNEL="hd*", PROGRAM="/etc/udev/ide-devfs.sh %k %b %n", NAME="%k", SYMLINK="%c{1} %c{2}"
 
 # md block devices
 KERNEL="md[0-9]*", NAME="md/%n"
index b3ca042..7e89669 100644 (file)
@@ -57,7 +57,7 @@ KERNEL="ttyUSB0", NAME="pl2303"
 
 # devfs-names for ide-devices (uncomment only one)
 #  /dev/ide/.../{disc,cd} and /dev/{cdroms,discs}/* type names
-BUS="ide", PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", RESULT="hd*", NAME="%1c", SYMLINK="%2c %3c"
+BUS="ide", PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", RESULT="hd*", NAME="%c{1}", SYMLINK="%c{2} %c{3}"
  
 # fb devices
 KERNEL="fb[0-9]*", NAME="fb/%n", SYMLINK="%k"
index 1cf6f9c..0a9369d 100644 (file)
@@ -2,7 +2,7 @@
 
 # udev external PROGRAM script
 # return devfs-names for ide-devices
-# BUS="ide", KERNEL="hd*", PROGRAM="/etc/udev/ide-devfs.sh %k %b %n", NAME="%k", SYMLINK="%1c %2c"
+# BUS="ide", KERNEL="hd*", PROGRAM="/etc/udev/ide-devfs.sh %k %b %n", NAME="%k", SYMLINK="%c{1} %c{2}"
 
 HOST="${2%\.[0-9]}"
 TARGET="${2#[0-9]\.}"
index 3a4772e..766f6f3 100644 (file)
@@ -2,7 +2,7 @@
 
 # a horribly funny script that shows how flexible udev can really be
 # This is to be executed by udev with the following rules:
-# KERNEL="[hs]d[a-z]", PROGRAM="name_cdrom.pl %M %m", NAME="%1c", SYMLINK="cdrom"
+# KERNEL="[hs]d[a-z]", PROGRAM="name_cdrom.pl %M %m", NAME="%c{1}", SYMLINK="cdrom"
 
 use strict;
 use warnings;
index 942788b..186a9f5 100644 (file)
--- a/namedev.c
+++ b/namedev.c
@@ -219,6 +219,7 @@ static void apply_format(struct udevice *udev, unsigned char *string, struct sys
        char *pos3;
        char *attr;
        int num;
+       int i;
        char c;
        struct sysfs_attribute *tmpattr;
 
@@ -270,11 +271,15 @@ static void apply_format(struct udevice *udev, unsigned char *string, struct sys
                case 'c':
                        if (strlen(udev->program_result) == 0)
                                break;
-                       if (num > 0) {
+                       /* get part part of the result string */
+                       i = num; /* num syntax is deprecated and will be removed  */
+                       if (attr != NULL)
+                               i = atoi(attr);
+                       if (i > 0) {
                                strncpy(temp1, udev->program_result, sizeof(temp1));
                                pos2 = temp1;
-                               while (num) {
-                                       num--;
+                               while (i) {
+                                       i--;
                                        pos3 = strsep(&pos2, " ");
                                        if (pos3 == NULL) {
                                                dbg("requested part of result string not found");
index e238c90..6e031c4 100644 (file)
@@ -194,16 +194,6 @@ BUS="scsi", PLACE="0:0:0:0", NAME="Major:%M:minor:%m:kernelnumber:%n:bus:%b"
 EOF
        },
        {
-               desc     => "select sysfs attribute by SYSFS{vendor}",
-               subsys   => "block",
-               devpath  => "block/sda",
-               expected => "disk-IBM-ESXS-sda" ,
-               conf     => <<EOF
-BUS="scsi", SYSFS{vendor}="IBM-ESXS", NAME="disk-%s{vendor}-%k"
-KERNEL="ttyUSB0", NAME="visor"
-EOF
-       },
-       {
                desc     => "sustitution of sysfs value (%s{file})",
                subsys   => "block",
                devpath  => "block/sda",
@@ -250,7 +240,7 @@ EOF
                devpath  => "block/sda/sda3",
                expected => "link1" ,
                conf     => <<EOF
-BUS="scsi", PROGRAM="/bin/echo -n node link1 link2", RESULT="node *", NAME="%1c", SYMLINK="%2c %3c"
+BUS="scsi", PROGRAM="/bin/echo -n node link1 link2", RESULT="node *", NAME="%c{1}", SYMLINK="%c{2} %c{3}"
 EOF
        },
        {