-#define _GNU_SOURCE
+#if defined(HAVE_CONFIG_H)
+#include "config.h"
+#endif
#include <assert.h>
#include <stdlib.h>
struct yaboot_state {
int globals_done;
- const char *const *known_names;
/* current option data */
struct discover_boot_option *opt;
const char *default_label;
struct boot_option *opt;
- assert(state->opt);
+ if (!state->opt)
+ return;
opt = state->opt->option;
assert(opt);
/* populate the boot option from state data */
state->opt->boot_image = create_yaboot_devpath_resource(state,
conf, state->boot_image);
+
+ char* args_sigfile_default = talloc_asprintf(opt,
+ "%s.cmdline.sig", state->boot_image);
+ state->opt->args_sig_file = create_yaboot_devpath_resource(state,
+ conf, args_sigfile_default);
+ talloc_free(args_sigfile_default);
+
if (state->initrd) {
state->opt->initrd = create_yaboot_devpath_resource(state,
conf, state->initrd);
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")) {
+ /* an image section finishes our global defintions */
+ state->globals_done = 1;
/* First finish any previous image. */
if (opt)
/* all other processing requires an image */
if (!opt) {
- pb_log("%s: unknown name: %s\n", __func__, name);
+ pb_debug("%s: unknown name: %s\n", __func__, name);
return;
}
return;
}
- pb_log("%s: unknown name: %s\n", __func__, name);
+ pb_debug("%s: unknown name: %s\n", __func__, name);
}
static struct conf_global_option yaboot_global_options[] = {
static const char *const yaboot_conf_files[] = {
"/yaboot.conf",
"/yaboot.cnf",
+ "/etc/lilo.conf",
+ "/etc/silo.conf",
"/etc/yaboot.conf",
"/etc/yaboot.cnf",
"/suseboot/yaboot.cnf",
"/YABOOT.CONF",
"/YABOOT.CNF",
+ "/ETC/LILO.CONF",
+ "/ETC/SILO.CONF",
"/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",
- "device",
- "partition",
- NULL
-};
-
static int yaboot_parse(struct discover_context *dc)
{
const char * const *filename;
conf->finish = yaboot_finish;
conf->parser_info = state = talloc_zero(conf, struct yaboot_state);
- state->known_names = yaboot_known_names;
-
state->opt = NULL;
for (filename = yaboot_conf_files; *filename; filename++) {