Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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]);
}