+ res = create_devpath_resource(opt, conf->dc->device, devpath);
+
+ if (desc_str)
+ *desc_str = devpath;
+ else
+ talloc_free(devpath);
+
+ return res;
+}
+
+
+static void yaboot_process_pair(struct conf_context *conf, const char *name,
+ char *value)
+{
+ struct yaboot_state *state = conf->parser_info;
+ struct discover_boot_option *opt = state->opt;
+ struct fixed_pair {
+ const char *image;
+ const char *initrd;
+ };
+ static const struct fixed_pair suse_fp32 = {
+ .image = "/suseboot/vmlinux32",
+ .initrd = "/suseboot/initrd32",
+ };
+ static const struct fixed_pair suse_fp64 = {
+ .image = "/suseboot/vmlinux64",
+ .initrd = "/suseboot/initrd64",
+ };
+ const struct fixed_pair *suse_fp;
+
+ /* fixup for bare values */
+
+ if (!name)
+ name = value;
+
+ if (!state->globals_done && conf_set_global_option(conf, name, value))
+ return;
+
+ if (!conf_param_in_list(state->known_names, name))
+ return;
+
+ state->globals_done = 1;
+
+ /* image */
+
+ if (streq(name, "image")) {
+
+ /* First finish any previous image. */
+ if (opt)
+ yaboot_finish(conf);
+
+ /* Then start the new image. */
+ opt = state_start_new_option(conf, state);
+
+ opt->boot_image = create_yaboot_devpath_resource(opt,
+ conf, value, &state->desc_image);
+
+ return;