static void extract_sb_file(struct sb_file_t *file) { char buffer[64]; struct cmd_file_t *cmd_file = xmalloc(sizeof(struct cmd_file_t)); memset(cmd_file, 0, sizeof(struct cmd_file_t)); db_generate_sb_version(&file->product_ver, buffer, sizeof(buffer)); db_add_str_opt(&cmd_file->opt_list, "productVersion", buffer); db_generate_sb_version(&file->component_ver, buffer, sizeof(buffer)); db_add_str_opt(&cmd_file->opt_list, "componentVersion", buffer); db_add_int_opt(&cmd_file->opt_list, "driveTag", file->drive_tag); db_add_int_opt(&cmd_file->opt_list, "flags", file->flags); db_add_int_opt(&cmd_file->opt_list, "timestampLow", file->timestamp & 0xffffffff); db_add_int_opt(&cmd_file->opt_list, "timestampHigh", file->timestamp >> 32); db_add_int_opt(&cmd_file->opt_list, "sbMinorVersion", file->minor_version); for(int i = 0; i < file->nr_sections; i++) extract_sb_section(&file->sections[i], cmd_file); char *filename = xmalloc(strlen(g_out_prefix) + 32); sprintf(filename, "%smake.db", g_out_prefix); if(g_debug) printf("Write command file to %s\n", filename); db_generate_file(cmd_file, filename, NULL, generic_std_printf); db_free(cmd_file); }
static void extract_sb_file(struct sb_file_t *file) { for(int i = 0; i < file->nr_sections; i++) extract_sb_section(&file->sections[i]); }