+ if (streq(name, "root")) {
+ opt->option->boot_args = talloc_asprintf_append(
+ opt->option->boot_args, "root=%s ", value);
+ return;
+ }
+
+ pb_log("%s: unknown name: %s\n", __func__, name);
+}
+
+static struct conf_global_option yaboot_global_options[] = {
+ { .name = "boot" },
+ { .name = "initrd" },
+ { .name = "partition" },
+ { .name = "video" },
+ { .name = NULL },
+};
+
+static const char *const yaboot_conf_files[] = {
+ "/yaboot.conf",
+ "/yaboot.cnf",
+ "/etc/yaboot.conf",
+ "/etc/yaboot.cnf",
+ "/suseboot/yaboot.cnf",
+ "/YABOOT.CONF",
+ "/YABOOT.CNF",
+ "/ETC/YABOOT.CONF",
+ "/ETC/YABOOT.CNF",
+ "/SUSEBOOT/YABOOT.CNF",
+ NULL
+};
+
+static const char *yaboot_known_names[] = {
+ "append",
+ "image",
+ "image[64bit]", /* SUSE extension */
+ "image[32bit]", /* SUSE extension */
+ "initrd",
+ "initrd-size",
+ "label",
+ "literal",
+ "ramdisk",
+ "read-only",
+ "read-write",
+ "root",
+ NULL
+};
+
+static int yaboot_parse(struct discover_context *dc, char *buf, int len)
+{
+ struct conf_context *conf;
+ struct yaboot_state *state;
+
+ conf = talloc_zero(dc, struct conf_context);
+
+ if (!conf)