chiark / gitweb /
[PATCH] catch replace device by wildcard
authorkay.sievers@vrfy.org <kay.sievers@vrfy.org>
Wed, 3 Dec 2003 01:52:26 +0000 (17:52 -0800)
committerGreg KH <gregkh@suse.de>
Wed, 27 Apr 2005 04:13:05 +0000 (21:13 -0700)
  catch device name by wildcard to support a whole class of devices
  by just one config line like:
  REPLACE, KERNEL="tty*", NAME="vc/%n"

namedev.c
test/udev-test.pl

index 0abd4b8041192d4f9148655be5ed8c6e6d9ecd6d..ea64f3404f101450eee5c02ad058e71f9da1729a 100644 (file)
--- a/namedev.c
+++ b/namedev.c
@@ -860,8 +860,8 @@ static int do_replace(struct sysfs_class_device *class_dev, struct udevice *udev
                        continue;
 
                dbg_parse("compare name '%s' with '%s'",
                        continue;
 
                dbg_parse("compare name '%s' with '%s'",
-                         dev->kernel_name, dev->name);
-               if (strcmp(dev->kernel_name, class_dev->name) != 0)
+                         dev->kernel_name, class_dev->name);
+               if (strncmp_wildcard(class_dev->name, dev->kernel_name, NAME_SIZE) != 0)
                        continue;
 
                strfieldcpy(udev->name, dev->name);
                        continue;
 
                strfieldcpy(udev->name, dev->name);
index 3f48de8f3eaa7624df7441e37ecfeca67fc096c3..8b967c353c6e5c0364433dc786ffd702498e75dd 100644 (file)
@@ -48,6 +48,15 @@ EOF
                expected => "boot_disk1" ,
                conf     => <<EOF
 LABEL, BUS="scsi", vendor="IBM-ESXS", NAME="boot_disk%n"
                expected => "boot_disk1" ,
                conf     => <<EOF
 LABEL, BUS="scsi", vendor="IBM-ESXS", NAME="boot_disk%n"
+EOF
+       },
+       {
+               desc     => "catch device by wildcard",
+               subsys   => "tty",
+               devpath  => "class/tty/ttyUSB0",
+               expected => "visor/0" ,
+               conf     => <<EOF
+REPLACE, KERNEL="ttyUSB*", NAME="visor/%n"
 EOF
        },
        {
 EOF
        },
        {