chiark / gitweb /
[PATCH] netdev - udevdb+dev.d changes
[elogind.git] / udevinfo.c
index 800882eb1aa4b2d077bc7315d41a448e77c99e2b..8329fe7d06dd51681583b7af937f2c07c30121dd 100644 (file)
@@ -108,13 +108,14 @@ static int print_record(char *path, struct udevice *dev)
 {
        printf("P: %s\n", path);
        printf("N: %s\n", dev->name);
+       printf("T: %c\n", dev->type);
        printf("M: %#o\n", dev->mode);
        printf("S: %s\n", dev->symlink);
        printf("O: %s\n", dev->owner);
        printf("G: %s\n", dev->group);
        printf("F: %s\n", dev->config_file);
        printf("L: %i\n", dev->config_line);
-       printf("T: %li\n", dev->config_time);
+       printf("U: %li\n", dev->config_uptime);
        printf("\n");
        return 0;
 }
@@ -138,6 +139,10 @@ static int print_device_chain(const char *path)
        struct sysfs_device *sysfs_dev;
        struct sysfs_device *sysfs_dev_parent;
        int retval = 0;
+       char type;
+
+       type = get_device_type(path, "");
+       dbg("device type is %c", type);
 
        /*  get the class dev */
        class_dev = sysfs_open_class_device_path(path);
@@ -146,21 +151,23 @@ static int print_device_chain(const char *path)
                return -1;
        }
 
-       /* read the 'dev' file for major/minor*/
-       attr = sysfs_get_classdev_attr(class_dev, "dev");
-       if (attr == NULL) {
-               printf("couldn't get the \"dev\" file\n");
-               retval = -1;
-               goto exit;
-       }
-
        printf("\nudevinfo starts with the device the node belongs to and then walks up the\n"
               "device chain, to print for every device found, all possibly useful attributes\n"
               "in the udev key format.\n"
               "Only attributes within one device section may be used together in one rule,\n"
               "to match the device for which the node will be created.\n"
               "\n");
-       printf("device '%s' has major:minor %s", class_dev->path, attr->value);
+
+       if (type == 'b' || type =='c') {
+               /* read the 'dev' file for major/minor*/
+               attr = sysfs_get_classdev_attr(class_dev, "dev");
+               if (attr == NULL) {
+                       printf("couldn't get the \"dev\" file\n");
+                       retval = -1;
+                       goto exit;
+               }
+               printf("device '%s' has major:minor %s", class_dev->path, attr->value);
+       }
 
        /* open sysfs class device directory and print all attributes */
        printf("  looking at class device '%s':\n", class_dev->path);