diff options
Diffstat (limited to 'utility/load_kernel_test.c')
-rw-r--r-- | utility/load_kernel_test.c | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/utility/load_kernel_test.c b/utility/load_kernel_test.c index 3e4fb90c..540d4382 100644 --- a/utility/load_kernel_test.c +++ b/utility/load_kernel_test.c @@ -22,6 +22,10 @@ #define LBA_BYTES 512 #define KERNEL_BUFFER_SIZE 0xA00000 +static uint8_t workbuf[VB2_KERNEL_WORKBUF_RECOMMENDED_SIZE]; +static struct vb2_context *ctx; +static struct vb2_shared_data *sd; + /* Global variables for stub functions */ static LoadKernelParams lkp; static FILE *image_file = NULL; @@ -225,31 +229,22 @@ int main(int argc, char* argv[]) lkp.kernel_buffer_size = KERNEL_BUFFER_SIZE; /* Set up vboot context. */ - struct vb2_context ctx; - memset(&ctx, 0, sizeof(ctx)); - /* No need to initialize ctx->nvdata[]; defaults are fine */ - /* TODO(chromium:441893): support dev-mode flag and external gpt flag */ - ctx.workbuf = malloc(VB2_KERNEL_WORKBUF_RECOMMENDED_SIZE); - if (!ctx.workbuf) { - fprintf(stderr, "Can't allocate workbuf\n"); + if (vb2api_init(&workbuf, sizeof(workbuf), &ctx)) { + fprintf(stderr, "Can't initialize workbuf\n"); return 1; } - ctx.workbuf_size = VB2_KERNEL_WORKBUF_RECOMMENDED_SIZE; + sd = vb2_get_sd(ctx); + sd->vbsd = shared; + + /* No need to initialize ctx->nvdata[]; defaults are fine */ + /* TODO(chromium:441893): support dev-mode flag and external gpt flag */ if (boot_flags & BOOT_FLAG_RECOVERY) - ctx.flags |= VB2_CONTEXT_RECOVERY_MODE; + ctx->flags |= VB2_CONTEXT_RECOVERY_MODE; if (boot_flags & BOOT_FLAG_DEVELOPER) - ctx.flags |= VB2_CONTEXT_DEVELOPER_MODE; - if (VB2_SUCCESS != vb2_init_context(&ctx)) { - free(ctx.workbuf); - fprintf(stderr, "Can't init context\n"); - return 1; - } - - struct vb2_shared_data *sd = vb2_get_sd(&ctx); - sd->vbsd = shared; + ctx->flags |= VB2_CONTEXT_DEVELOPER_MODE; /* Call LoadKernel() */ - rv = LoadKernel(&ctx, &lkp); + rv = LoadKernel(ctx, &lkp); printf("LoadKernel() returned %d\n", rv); if (VB2_SUCCESS == rv) { |