static char *fs_argv[5];
-static int do_get_ext2(struct cmd_tbl *cmdtp, const char *file_path,
+static int do_get_ext2(struct pxe_context *ctx, const char *file_path,
char *file_addr)
{
#ifdef CONFIG_CMD_EXT2
fs_argv[3] = file_addr;
fs_argv[4] = (void *)file_path;
- if (!do_ext2load(cmdtp, 0, 5, fs_argv))
+ if (!do_ext2load(ctx->cmdtp, 0, 5, fs_argv))
return 1;
#endif
return -ENOENT;
}
-static int do_get_fat(struct cmd_tbl *cmdtp, const char *file_path,
+static int do_get_fat(struct pxe_context *ctx, const char *file_path,
char *file_addr)
{
#ifdef CONFIG_CMD_FAT
fs_argv[3] = file_addr;
fs_argv[4] = (void *)file_path;
- if (!do_fat_fsload(cmdtp, 0, 5, fs_argv))
+ if (!do_fat_fsload(ctx->cmdtp, 0, 5, fs_argv))
return 1;
#endif
return -ENOENT;
}
-static int do_get_any(struct cmd_tbl *cmdtp, const char *file_path,
+static int do_get_any(struct pxe_context *ctx, const char *file_path,
char *file_addr)
{
#ifdef CONFIG_CMD_FS_GENERIC
fs_argv[3] = file_addr;
fs_argv[4] = (void *)file_path;
- if (!do_load(cmdtp, 0, 5, fs_argv, FS_TYPE_ANY))
+ if (!do_load(ctx->cmdtp, 0, 5, fs_argv, FS_TYPE_ANY))
return 1;
#endif
return -ENOENT;
char *const argv[])
{
unsigned long pxefile_addr_r;
+ struct pxe_context ctx;
struct pxe_menu *cfg;
char *pxefile_addr_str;
char *filename;
env_set("bootfile", filename);
}
+ pxe_setup_ctx(&ctx, cmdtp, NULL);
if (strstr(argv[3], "ext2")) {
- do_getfile = do_get_ext2;
+ ctx.getfile = do_get_ext2;
} else if (strstr(argv[3], "fat")) {
- do_getfile = do_get_fat;
+ ctx.getfile = do_get_fat;
} else if (strstr(argv[3], "any")) {
- do_getfile = do_get_any;
+ ctx.getfile = do_get_any;
} else {
printf("Invalid filesystem: %s\n", argv[3]);
return 1;
return 1;
}
- if (get_pxe_file(cmdtp, filename, pxefile_addr_r) < 0) {
+ if (get_pxe_file(&ctx, filename, pxefile_addr_r) < 0) {
printf("Error reading config file\n");
return 1;
}
- cfg = parse_pxefile(cmdtp, pxefile_addr_r);
+ cfg = parse_pxefile(&ctx, pxefile_addr_r);
if (!cfg) {
printf("Error parsing config file\n");
if (prompt)
cfg->prompt = 1;
- handle_pxe_menu(cmdtp, cfg);
+ handle_pxe_menu(&ctx, cfg);
destroy_pxe_menu(cfg);