#include "conf-files.h"
#include "udev.h"
-#include "libudev-hwdb-def.h"
+#include "hwdb-internal.h"
+#include "hwdb-util.h"
/*
* Generic udev properties, key/value database based on modalias strings.
}
log_debug("=== trie on-disk ===");
- log_debug("size: %8"PRIu64" bytes", size);
+ log_debug("size: %8"PRIi64" bytes", size);
log_debug("header: %8zu bytes", sizeof(struct trie_header_f));
log_debug("nodes: %8"PRIu64" bytes (%8"PRIu64")",
t.nodes_count * sizeof(struct trie_node_f), t.nodes_count);
value[0] = '\0';
value++;
+ /* libudev requires properties to start with a space */
+ while (isblank(line[0]) && isblank(line[1]))
+ line++;
+
if (line[0] == '\0' || value[0] == '\0') {
log_error("Error, empty key or value '%s' in '%s':", line, filename);
return -EINVAL;
err = conf_files_list_strv(&files, ".hwdb", root, conf_file_dirs);
if (err < 0) {
- log_error_errno(-err, "failed to enumerate hwdb files: %m");
+ log_error_errno(err, "failed to enumerate hwdb files: %m");
rc = EXIT_FAILURE;
goto out;
}
mkdir_parents(hwdb_bin, 0755);
err = trie_store(trie, hwdb_bin);
if (err < 0) {
- log_error_errno(-err, "Failure writing database %s: %m", hwdb_bin);
+ log_error_errno(err, "Failure writing database %s: %m", hwdb_bin);
rc = EXIT_FAILURE;
}
}
if (test) {
- struct udev_hwdb *hwdb = udev_hwdb_new(udev);
+ _cleanup_hwdb_unref_ sd_hwdb *hwdb = NULL;
+ int r;
- if (hwdb) {
- struct udev_list_entry *entry;
+ r = sd_hwdb_new(&hwdb);
+ if (r >= 0) {
+ const char *key, *value;
- udev_list_entry_foreach(entry, udev_hwdb_get_properties_list_entry(hwdb, test, 0))
- printf("%s=%s\n", udev_list_entry_get_name(entry), udev_list_entry_get_value(entry));
- udev_hwdb_unref(hwdb);
+ SD_HWDB_FOREACH_PROPERTY(hwdb, test, key, value)
+ printf("%s=%s\n", key, value);
}
}
out:
const struct udevadm_cmd udevadm_hwdb = {
.name = "hwdb",
.cmd = adm_hwdb,
- .help = "maintain the hardware database index",
};