#include "libsysfs/sysfs/libsysfs.h"
#include "libsysfs/dlist.h"
#include "udev.h"
+#include "udev_lib.h"
#include "udev_version.h"
#include "logging.h"
#include "udevdb.h"
int main_argc;
#ifdef LOG
-unsigned char logname[42];
+unsigned char logname[LOGNAME_SIZE];
void log_message (int level, const char *format, ...)
{
va_list args;
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("\n");
return 0;
}
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);
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"
+ "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 in a rule to match the\n"
- "device for which the node will be created.\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);
- sysfs_close_attribute(attr);
+
+ 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);
/* get the device link (if parent exists look here) */
class_dev_parent = sysfs_get_classdev_parent(class_dev);
- if (class_dev_parent != NULL) {
- //sysfs_close_class_device(class_dev);
- class_dev = class_dev_parent;
- }
- sysfs_dev = sysfs_get_classdev_device(class_dev);
+ if (class_dev_parent != NULL)
+ sysfs_dev = sysfs_get_classdev_device(class_dev_parent);
+ else
+ sysfs_dev = sysfs_get_classdev_device(class_dev);
+
if (sysfs_dev != NULL)
printf("follow the class device's \"device\"\n");
if (sysfs_dev_parent == NULL)
break;
- //sysfs_close_device(sysfs_dev);
sysfs_dev = sysfs_dev_parent;
}
- sysfs_close_device(sysfs_dev);
exit:
- //sysfs_close_class_device(class_dev);
+ sysfs_close_class_device(class_dev);
return retval;
}