static int boot_entry(struct blspec_entry *be) { int ret; if (be->scriptpath) { ret = boot_script(be->scriptpath); } else { if (IS_ENABLED(CONFIG_BLSPEC)) ret = blspec_boot(be, verbose, dryrun); else ret = -ENOSYS; } return ret; }
void compile(const char* path, CompileOptions& opts) { Buffer buf = opts.read(path); TempAllocator1024 ta; JsonObject boot(ta); sjson::parse(buf, boot); const char* boot_script_json = boot["boot_script"]; const char* boot_package_json = boot["boot_package"]; RESOURCE_COMPILER_ASSERT(boot_script_json != NULL, opts, "'boot_script' must be specified."); RESOURCE_COMPILER_ASSERT(boot_package_json != NULL, opts, "'boot_package' must be specified."); DynamicString boot_script(ta); DynamicString boot_package(ta); sjson::parse_string(boot_script_json, boot_script); sjson::parse_string(boot_package_json, boot_package); RESOURCE_COMPILER_ASSERT_RESOURCE_EXISTS(RESOURCE_EXTENSION_SCRIPT, boot_script.c_str(), opts); RESOURCE_COMPILER_ASSERT_RESOURCE_EXISTS(RESOURCE_EXTENSION_PACKAGE, boot_package.c_str(), opts); opts.write(buf); }