New boot_image boot specs partition_offset, partition_hd_cyl, partition_sec_hd

This commit is contained in:
2010-09-05 11:37:45 +00:00
parent 687f5b8658
commit 3051cc81d3
9 changed files with 183 additions and 39 deletions

View File

@ -791,6 +791,40 @@ treatment_patch:;
} else
was_ok= 0;
} else if(strncmp(treatpt, "partition_offset=", 17)==0) {
u= 0;
sscanf(treatpt + 17, "%u", &u);
if(u > 0 && u < 16) {
sprintf(xorriso->info_text,
"-boot_image %s partition_offset= : Non-zero number too small (<16).",
formpt);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
xorriso->partition_offset= u;
} else if(strncmp(treatpt, "partition_hd_cyl=", 17)==0) {
u= 0;
sscanf(treatpt + 17, "%u", &u);
if(u > 255) {
sprintf(xorriso->info_text,
"-boot_image %s partition_hd_cyl= : Number too large (>255).", formpt);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
xorriso->partition_heads_per_cyl= u;
} else if(strncmp(treatpt, "partition_sec_hd=", 17)==0) {
u= 0;
sscanf(treatpt + 17, "%u", &u);
if(u > 63) {
sprintf(xorriso->info_text,
"-boot_image %s partition_sec_hd= : Number too large (>63).", formpt);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
xorriso->partition_secs_per_head= u;
} else if(strncmp(treatpt, "platform_id=", 12)==0) {
if(strncmp(treatpt + 12, "0x", 2) == 0)
sscanf(treatpt + 14, "%x", &u);