Lines Matching refs:label

514 	struct pxe_label *label;  in label_create()  local
516 label = malloc(sizeof(struct pxe_label)); in label_create()
518 if (!label) in label_create()
521 memset(label, 0, sizeof(struct pxe_label)); in label_create()
523 return label; in label_create()
534 static void label_destroy(struct pxe_label *label) in label_destroy() argument
536 if (label->name) in label_destroy()
537 free(label->name); in label_destroy()
539 if (label->kernel) in label_destroy()
540 free(label->kernel); in label_destroy()
542 if (label->config) in label_destroy()
543 free(label->config); in label_destroy()
545 if (label->append) in label_destroy()
546 free(label->append); in label_destroy()
548 if (label->initrd) in label_destroy()
549 free(label->initrd); in label_destroy()
551 if (label->fdt) in label_destroy()
552 free(label->fdt); in label_destroy()
554 if (label->fdtdir) in label_destroy()
555 free(label->fdtdir); in label_destroy()
557 free(label); in label_destroy()
568 struct pxe_label *label = data; in label_print() local
569 const char *c = label->menu ? label->menu : label->name; in label_print()
571 printf("%s:\t%s\n", label->num, c); in label_print()
583 static int label_localboot(struct pxe_label *label) in label_localboot() argument
592 if (label->append) { in label_localboot()
595 cli_simple_process_macros(label->append, bootargs); in label_localboot()
619 static int label_boot(cmd_tbl_t *cmdtp, struct pxe_label *label) in label_boot() argument
631 label_print(label); in label_boot()
633 label->attempted = 1; in label_boot()
635 if (label->localboot) { in label_boot()
636 if (label->localboot_val >= 0) in label_boot()
637 label_localboot(label); in label_boot()
641 if (label->kernel == NULL) { in label_boot()
643 label->name); in label_boot()
647 if (label->initrd) { in label_boot()
648 if (get_relfile_envaddr(cmdtp, label->initrd, "ramdisk_addr_r") < 0) { in label_boot()
650 label->name); in label_boot()
660 if (get_relfile_envaddr(cmdtp, label->kernel, "kernel_addr_r") < 0) { in label_boot()
662 label->name); in label_boot()
666 if (label->ipappend & 0x1) { in label_boot()
673 if (label->ipappend & 0x2) { in label_boot()
682 if ((label->ipappend & 0x3) || label->append) { in label_boot()
686 if (strlen(label->append ?: "") + in label_boot()
689 strlen(label->append ?: ""), in label_boot()
694 if (label->append) in label_boot()
695 strncpy(bootargs, label->append, in label_boot()
708 if (label->config) { in label_boot()
709 int len = strlen(bootm_argv[1]) + strlen(label->config) + 1; in label_boot()
716 snprintf(fit_addr, len, "%s%s", bootm_argv[1], label->config); in label_boot()
740 if (label->fdt) { in label_boot()
741 fdtfile = label->fdt; in label_boot()
742 } else if (label->fdtdir) { in label_boot()
764 len = strlen(label->fdtdir); in label_boot()
767 else if (label->fdtdir[len - 1] != '/') in label_boot()
772 len = strlen(label->fdtdir) + strlen(slash) + in label_boot()
782 label->fdtdir, slash, f1, f2, f3, f4); in label_boot()
791 label->name); in label_boot()
1180 struct pxe_label *label) in parse_label_menu() argument
1192 cfg->default_label = strdup(label->name); in parse_label_menu()
1199 parse_sliteral(c, &label->menu); in parse_label_menu()
1215 static int parse_label_kernel(char **c, struct pxe_label *label) in parse_label_kernel() argument
1220 err = parse_sliteral(c, &label->kernel); in parse_label_kernel()
1224 s = strstr(label->kernel, "#"); in parse_label_kernel()
1228 label->config = malloc(strlen(s) + 1); in parse_label_kernel()
1229 if (!label->config) in parse_label_kernel()
1232 strcpy(label->config, s); in parse_label_kernel()
1251 struct pxe_label *label; in parse_label() local
1254 label = label_create(); in parse_label()
1255 if (!label) in parse_label()
1258 err = parse_sliteral(c, &label->name); in parse_label()
1261 label_destroy(label); in parse_label()
1265 list_add_tail(&label->list, &cfg->labels); in parse_label()
1274 err = parse_label_menu(c, cfg, label); in parse_label()
1279 err = parse_label_kernel(c, label); in parse_label()
1283 err = parse_sliteral(c, &label->append); in parse_label()
1284 if (label->initrd) in parse_label()
1286 s = strstr(label->append, "initrd="); in parse_label()
1291 label->initrd = malloc(len + 1); in parse_label()
1292 strncpy(label->initrd, s, len); in parse_label()
1293 label->initrd[len] = '\0'; in parse_label()
1298 if (!label->initrd) in parse_label()
1299 err = parse_sliteral(c, &label->initrd); in parse_label()
1303 if (!label->fdt) in parse_label()
1304 err = parse_sliteral(c, &label->fdt); in parse_label()
1308 if (!label->fdtdir) in parse_label()
1309 err = parse_sliteral(c, &label->fdtdir); in parse_label()
1313 label->localboot = 1; in parse_label()
1314 err = parse_integer(c, &label->localboot_val); in parse_label()
1318 err = parse_integer(c, &label->ipappend); in parse_label()
1435 struct pxe_label *label; in destroy_pxe_menu() local
1444 label = list_entry(pos, struct pxe_label, list); in destroy_pxe_menu()
1446 label_destroy(label); in destroy_pxe_menu()
1494 struct pxe_label *label; in pxe_menu_to_menu() local
1511 label = list_entry(pos, struct pxe_label, list); in pxe_menu_to_menu()
1513 sprintf(label->num, "%d", i++); in pxe_menu_to_menu()
1514 if (menu_item_add(m, label->num, label) != 1) { in pxe_menu_to_menu()
1519 (strcmp(label->name, cfg->default_label) == 0)) in pxe_menu_to_menu()
1520 default_num = label->num; in pxe_menu_to_menu()
1549 struct pxe_label *label; in boot_unattempted_labels() local
1552 label = list_entry(pos, struct pxe_label, list); in boot_unattempted_labels()
1554 if (!label->attempted) in boot_unattempted_labels()
1555 label_boot(cmdtp, label); in boot_unattempted_labels()