diff options
author | Kay Sievers <kay.sievers@suse.de> | 2006-01-30 08:39:55 +0100 |
---|---|---|
committer | Kay Sievers <kay.sievers@suse.de> | 2006-01-30 08:39:55 +0100 |
commit | 7e75cfa6fe0818ffb76c2a5a88c8572f04bda879 (patch) | |
tree | 592c15c4ae239318aec7d1a215f95ffd66ab0371 | |
parent | 9538b16d8b6086691dd01d76dea91ba73d13a630 (diff) |
add debug output to sysfs operations
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
-rw-r--r-- | udev_sysfs.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/udev_sysfs.c b/udev_sysfs.c index b579c17caa..ddc0b46790 100644 --- a/udev_sysfs.c +++ b/udev_sysfs.c @@ -175,7 +175,7 @@ struct sysfs_device *sysfs_device_get(const char *devpath) } /* it is a new device */ - dbg("'%s'", devpath_real); + dbg("new uncached device '%s'", devpath_real); dev = malloc(sizeof(struct sysfs_device)); if (dev == NULL) return NULL; @@ -253,6 +253,9 @@ struct sysfs_device *sysfs_device_get_parent(struct sysfs_device *dev) int len; int back; + dbg("open '%s'", dev->devpath); + + /* look if we already know the parent */ if (dev->parent != NULL) return dev->parent; @@ -271,7 +274,7 @@ struct sysfs_device *sysfs_device_get_parent(struct sysfs_device *dev) return NULL; pos[0] = '\0'; - /* are we at the top level */ + /* are we at the top level of /devices */ if (strcmp(parent_devpath, "/devices") == 0) { dbg("/devices top level"); return NULL; @@ -289,6 +292,7 @@ struct sysfs_device *sysfs_device_get_parent(struct sysfs_device *dev) goto device_link; } } + /* get parent and remember it */ dev->parent = sysfs_device_get(parent_devpath); return dev->parent; @@ -316,6 +320,7 @@ device_link: strlcat(parent_devpath, "/", sizeof(parent_devpath)); strlcat(parent_devpath, &device_link_target[back * 3], sizeof(parent_devpath)); + /* get parent and remember it */ dev->parent = sysfs_device_get(parent_devpath); return dev->parent; } @@ -344,6 +349,7 @@ char *sysfs_attr_get_value(const char *devpath, const char *attr_name) ssize_t size; size_t sysfs_len; + dbg("open '%s'/'%s'", devpath, attr_name); sysfs_len = strlcpy(path_full, sysfs_path, sizeof(path_full)); path = &path_full[sysfs_len]; strlcat(path_full, devpath, sizeof(path_full)); @@ -359,18 +365,21 @@ char *sysfs_attr_get_value(const char *devpath, const char *attr_name) } /* store attribute in cache (also negatives are kept in cache) */ + dbg("new uncached attribute '%s'", path_full); attr = malloc(sizeof(struct sysfs_attr)); if (attr == NULL) return NULL; memset(attr, 0x00, sizeof(struct sysfs_attr)); strlcpy(attr->path, path, sizeof(attr->path)); - dbg("add to cache '%s' '%s'", attr->path, attr->value); + dbg("add to cache '%s'", path_full); list_add(&attr->node, &attr_list); /* read attribute value */ fd = open(path_full, O_RDONLY); - if (fd < 0) + if (fd < 0) { + dbg("attribute '%s' does not exist", path_full); goto out; + } size = read(fd, value, sizeof(value)); close(fd); if (size < 0) @@ -381,6 +390,7 @@ char *sysfs_attr_get_value(const char *devpath, const char *attr_name) /* got a valid value, store and return it */ value[size] = '\0'; remove_trailing_chars(value, '\n'); + dbg("cache '%s' with value '%s'", path_full, value); strlcpy(attr->value_local, value, sizeof(attr->value_local)); attr->value = attr->value_local; |