pxe: add support for label menu text

Use a menu string if present, otherwise use the kernel string.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
This commit is contained in:
Rob Herring 2012-03-28 05:51:34 +00:00 committed by Wolfgang Denk
parent 1e08522699
commit 7815c4e89f

View file

@ -409,6 +409,7 @@ static int get_relfile_envaddr(char *file_path, char *envaddr_name)
*/ */
struct pxe_label { struct pxe_label {
char *name; char *name;
char *menu;
char *kernel; char *kernel;
char *append; char *append;
char *initrd; char *initrd;
@ -491,17 +492,18 @@ static void label_destroy(struct pxe_label *label)
static void label_print(void *data) static void label_print(void *data)
{ {
struct pxe_label *label = data; struct pxe_label *label = data;
const char *c = label->menu ? label->menu : label->kernel;
printf("Label: %s\n", label->name); printf("%s:\t%s\n", label->name, c);
if (label->kernel) if (label->kernel)
printf("\tkernel: %s\n", label->kernel); printf("\t\tkernel: %s\n", label->kernel);
if (label->append) if (label->append)
printf("\tappend: %s\n", label->append); printf("\t\tappend: %s\n", label->append);
if (label->initrd) if (label->initrd)
printf("\tinitrd: %s\n", label->initrd); printf("\t\tinitrd: %s\n", label->initrd);
} }
/* /*
@ -969,6 +971,9 @@ static int parse_label_menu(char **c, struct pxe_menu *cfg,
if (!cfg->default_label) if (!cfg->default_label)
return -ENOMEM; return -ENOMEM;
break;
case T_LABEL:
parse_sliteral(c, &label->menu);
break; break;
default: default:
printf("Ignoring malformed menu command: %.*s\n", printf("Ignoring malformed menu command: %.*s\n",