New -as mkisofs options -isohybrid-gpt-basdat, -isohybrid-gpt-hfsplus, -isohybrid-apm-hfsplus

This commit is contained in:
2012-06-20 19:06:26 +00:00
parent 08ecc2bdb5
commit 4a61dec017
9 changed files with 168 additions and 63 deletions

View File

@ -494,7 +494,7 @@ int Xorriso_attach_boot_image(struct XorrisO *xorriso, int flag)
if(xorriso->boot_efi_default) {
emul= 0;
platform_id= 0xef;
xorriso->patch_isolinux_image= 0;
xorriso->patch_isolinux_image= (xorriso->patch_isolinux_image & ~3) | 0;
}
if(platform_id == 0xef || load_size < 0) {
ret= Xorriso_iso_lstat(xorriso, bin_path, &stbuf, 2 | 4);
@ -2317,7 +2317,9 @@ int Xorriso_set_isolinux_options(struct XorrisO *xorriso,
"FATAL", 1);
ret= -1; goto ex;
}
patch_table= xorriso->patch_isolinux_image & 1;
/* bit0 : 1=boot-info-table , bit2-7 : 1=EFI , 2=HFS+ , bit8 : 1=APM */
patch_table = xorriso->patch_isolinux_image & 0x1fd;
if((flag & 1) && num_boots > 1) {
ret= el_torito_set_isolinux_options(boots[num_boots - 1], patch_table, 0);
ret= (ret == 1); goto ex;
@ -2326,13 +2328,13 @@ int Xorriso_set_isolinux_options(struct XorrisO *xorriso,
/* Handle patching of first attached boot image or of imported boot images
*/
for(i= 0; i < num_boots; i++) {
patch_table = xorriso->patch_isolinux_image & 1;
patch_table = xorriso->patch_isolinux_image & 0x1fd;
if(patch_table && !(flag & 1)) {
if(!el_torito_seems_boot_info_table(boots[i], 0))
patch_table= 0;
patch_table&= ~1;
else if((xorriso->patch_isolinux_image & 2) &&
el_torito_get_boot_platform_id(boots[i]) == 0xef)
patch_table= 0;
patch_table&= ~1;
}
if(i > 0 || xorriso->boot_image_isohybrid == 0) {
ret= el_torito_set_isolinux_options(boots[i], patch_table, 0);