Provisorily: -boot_image mips_path= , -as mkisofs -mips-boot. No Eltorito then.

This commit is contained in:
Thomas Schmitt 2010-10-12 10:32:22 +00:00
parent 6011e3050c
commit da5f01d95b
4 changed files with 35 additions and 1 deletions

View File

@ -745,6 +745,7 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag)
" -partition_offset LBA Make image mountable by first partition, too", " -partition_offset LBA Make image mountable by first partition, too",
" -partition_sec_hd NUMBER Define number of sectors per head", " -partition_sec_hd NUMBER Define number of sectors per head",
" -partition_hd_cyl NUMBER Define number of heads per cylinder", " -partition_hd_cyl NUMBER Define number of heads per cylinder",
" -mips-boot FILE Set mips boot image name (relative to image root)",
" --modification-date=YYYYMMDDhhmmsscc", " --modification-date=YYYYMMDDhhmmsscc",
" Override date of creation and modification", " Override date of creation and modification",
" -isohybrid-mbr FILE Set SYSLINUX mbr/isohdp[fp]x*.bin for isohybrid", " -isohybrid-mbr FILE Set SYSLINUX mbr/isohdp[fp]x*.bin for isohybrid",
@ -1239,6 +1240,7 @@ not_enough_args:;
strcmp(argv[i], "-eltorito-boot") == 0 || strcmp(argv[i], "-eltorito-boot") == 0 ||
strcmp(argv[i], "--efi-boot") == 0 || strcmp(argv[i], "--efi-boot") == 0 ||
strcmp(argv[i], "-e") == 0 || strcmp(argv[i], "-e") == 0 ||
strcmp(argv[i], "-mips-boot") == 0 ||
strcmp(argv[i], "-c") == 0 || strcmp(argv[i], "-c") == 0 ||
strcmp(argv[i], "-eltorito-catalog") == 0 || strcmp(argv[i], "-eltorito-catalog") == 0 ||
strcmp(argv[i], "-boot-load-size") == 0 || strcmp(argv[i], "-boot-load-size") == 0 ||
@ -1453,6 +1455,7 @@ problem_handler_2:;
xorriso->patch_isolinux_image= 1; xorriso->patch_isolinux_image= 1;
} else if(strcmp(argv[i], "-b") == 0 || } else if(strcmp(argv[i], "-b") == 0 ||
strcmp(argv[i], "-eltorito-boot") == 0 || strcmp(argv[i], "-eltorito-boot") == 0 ||
strcmp(argv[i], "-mips-boot") == 0 ||
strcmp(argv[i], "--efi-boot") == 0 || strcmp(argv[i], "--efi-boot") == 0 ||
strcmp(argv[i], "-e") == 0) { strcmp(argv[i], "-e") == 0) {
i++; i++;
@ -1466,6 +1469,14 @@ problem_handler_2:;
boot_path= xorriso->boot_image_bin_path; boot_path= xorriso->boot_image_bin_path;
xorriso->boot_efi_default= 1; xorriso->boot_efi_default= 1;
emul_boot= xorriso->boot_image_emul= 0; emul_boot= xorriso->boot_image_emul= 0;
} else if(strcmp(argv[i - 1], "-mips-boot") == 0) {
boot_path= xorriso->boot_image_bin_path;
option_b= 0;
/* >>> Preliminary : this should be adjustable per boot image */
xorriso->system_area_options= 1 << 2; /* system area type 1 */
} else { } else {
boot_path= xorriso->boot_image_bin_path; boot_path= xorriso->boot_image_bin_path;
if(strcmp(argv[i - 1], "-e") == 0) if(strcmp(argv[i - 1], "-e") == 0)

View File

@ -614,6 +614,7 @@ treatment_patch:;
xorriso->patch_isolinux_image= 0; xorriso->patch_isolinux_image= 0;
xorriso->boot_image_bin_path[0]= 0; xorriso->boot_image_bin_path[0]= 0;
xorriso->patch_system_area= 0; xorriso->patch_system_area= 0;
xorriso->system_area_options&= ~0xfc; /* system area type 0 */
if(xorriso->boot_count > 0) { if(xorriso->boot_count > 0) {
ret= Xorriso_attach_boot_image(xorriso, 2); /* dispose boot images */ ret= Xorriso_attach_boot_image(xorriso, 2); /* dispose boot images */
if(ret <= 0) if(ret <= 0)
@ -730,6 +731,24 @@ treatment_patch:;
xorriso->keep_boot_image= 0; xorriso->keep_boot_image= 0;
xorriso->boot_efi_default= 1; xorriso->boot_efi_default= 1;
} else if(strcmp(treatpt, "mips_path=") == 0) {
xorriso->boot_image_bin_path[0] = 0;
xorriso->boot_efi_default= 0;
/* >>> Preliminary : this should be adjustable per boot image */
xorriso->system_area_options&= ~0xfc; /* system area type 0 */
} else if(strncmp(treatpt, "mips_path=", 10) == 0) {
ret= Xorriso_normalize_img_path(xorriso, xorriso->wdi, treatpt + 10,
xorriso->boot_image_bin_path, 2);
if(ret <= 0)
return(ret);
xorriso->keep_boot_image= 0;
xorriso->boot_efi_default= 0;
/* >>> Preliminary : this should be adjustable per boot image */
xorriso->system_area_options&= 1 << 2; /* system area type 1 */
} else if(strncmp(treatpt, "boot_info_table=", 16)==0) { } else if(strncmp(treatpt, "boot_info_table=", 16)==0) {
if(strcmp(treatpt + 16, "off") == 0) if(strcmp(treatpt + 16, "off") == 0)
xorriso->patch_isolinux_image= 0; xorriso->patch_isolinux_image= 0;

View File

@ -300,6 +300,10 @@ struct XorrisO { /* the global context of xorriso */
(a simple partition table) (a simple partition table)
bit1= isohybrid boot image pointer bit1= isohybrid boot image pointer
and partition table and partition table
bit2-7= System area type
0= with bit0 or bit1: MBR
else: unspecified type
1= MIPS Big Endian Volume Header
*/ */
int patch_system_area; /* Bits as of system_area_options. int patch_system_area; /* Bits as of system_area_options.
to be applied to the loaded system to be applied to the loaded system

View File

@ -1 +1 @@
#define Xorriso_timestamP "2010.10.12.103027" #define Xorriso_timestamP "2010.10.12.103157"