static void print_all_attributes(struct udev *udev, const char *devpath, const char *key)
{
- char path[PATH_SIZE];
+ char path[UTIL_PATH_SIZE];
DIR *dir;
struct dirent *dent;
if (dir != NULL) {
for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) {
struct stat statbuf;
- char filename[PATH_SIZE];
+ char filename[UTIL_PATH_SIZE];
char *attr_value;
- char value[NAME_SIZE];
+ char value[UTIL_NAME_SIZE];
size_t len;
if (dent->d_name[0] == '.')
printf(" %s{%s}==\"%s\"\n", key, dent->d_name, value);
}
+ closedir(dir);
}
printf("\n");
}
static int print_device_chain(struct udev *udev, const char *devpath)
{
- struct sysfs_device *dev;
+ struct udev_device *device;
+ const char *str;
- dev = sysfs_device_get(udev, devpath);
- if (dev == NULL)
+ device = udev_device_new_from_devpath(udev, devpath);
+ if (device == NULL)
return -1;
printf("\n"
"and the attributes from one single parent device.\n"
"\n");
- printf(" looking at device '%s':\n", dev->devpath);
- printf(" KERNEL==\"%s\"\n", dev->kernel);
- printf(" SUBSYSTEM==\"%s\"\n", dev->subsystem);
- printf(" DRIVER==\"%s\"\n", dev->driver);
- print_all_attributes(udev, dev->devpath, "ATTR");
-
- /* walk up the chain of devices */
- while (1) {
- dev = sysfs_device_get_parent(udev, dev);
- if (dev == NULL)
+ printf(" looking at device '%s':\n", udev_device_get_devpath(device));
+ printf(" KERNEL==\"%s\"\n", udev_device_get_sysname(device));
+ str = udev_device_get_subsystem(device);
+ if (str == NULL)
+ str = "";
+ printf(" SUBSYSTEM==\"%s\"\n", str);
+ str = udev_device_get_driver(device);
+ if (str == NULL)
+ str = "";
+ printf(" DRIVER==\"%s\"\n", str);
+ print_all_attributes(udev, udev_device_get_devpath(device), "ATTR");
+
+ while (device != NULL) {
+ struct udev_device *device_parent;
+
+ device_parent = udev_device_new_from_parent(device);
+ udev_device_unref(device);
+ if (device_parent == NULL)
break;
- printf(" looking at parent device '%s':\n", dev->devpath);
- printf(" KERNELS==\"%s\"\n", dev->kernel);
- printf(" SUBSYSTEMS==\"%s\"\n", dev->subsystem);
- printf(" DRIVERS==\"%s\"\n", dev->driver);
-
- print_all_attributes(udev, dev->devpath, "ATTRS");
+ device = device_parent;
+ printf(" looking at parent device '%s':\n", udev_device_get_devpath(device));
+ printf(" KERNELS==\"%s\"\n", udev_device_get_sysname(device));
+ str = udev_device_get_subsystem(device);
+ if (str == NULL)
+ str = "";
+ printf(" SUBSYSTEMS==\"%s\"\n", str);
+ str = udev_device_get_driver(device);
+ if (str == NULL)
+ str = "";
+ printf(" DRIVERS==\"%s\"\n", str);
+ print_all_attributes(udev, udev_device_get_devpath(device), "ATTRS");
}
return 0;
/* select the device that seems to match */
list_for_each_entry(device, &name_list, node) {
struct udevice *udevice_loop;
- char filename[PATH_SIZE];
+ char filename[UTIL_PATH_SIZE];
struct stat statbuf;
udevice_loop = udev_device_init(udev);
QUERY_ALL,
} query = QUERY_NONE;
- char path[PATH_SIZE] = "";
- char name[PATH_SIZE] = "";
+ char path[UTIL_PATH_SIZE] = "";
+ char name[UTIL_PATH_SIZE] = "";
struct name_entry *name_loop;
int rc = 0;
util_remove_trailing_chars(path, '/');
/* possibly resolve to real devpath */
- if (sysfs_resolve_link(udev, path, sizeof(path)) != 0) {
- char temp[PATH_SIZE];
+ if (util_resolve_sys_link(udev, path, sizeof(path)) != 0) {
+ char temp[UTIL_PATH_SIZE];
char *pos;
/* also check if the parent is a link */
util_strlcpy(temp, path, sizeof(temp));
pos = strrchr(temp, '/');
if (pos != 0) {
- char tail[PATH_SIZE];
+ char tail[UTIL_PATH_SIZE];
util_strlcpy(tail, pos, sizeof(tail));
pos[0] = '\0';
- if (sysfs_resolve_link(udev, temp, sizeof(temp)) == 0) {
+ if (util_resolve_sys_link(udev, temp, sizeof(temp)) == 0) {
util_strlcpy(path, temp, sizeof(path));
util_strlcat(path, tail, sizeof(path));
}