New -boot_image settings hppa_cmdline=, hppa_bootloader=, hppa_kernel_32=, hppa_kernel_64=, hppa_ramdisk=

This commit is contained in:
2014-01-14 09:11:02 +00:00
parent b2eacd7d7f
commit 49ba26d6b0
10 changed files with 263 additions and 115 deletions

View File

@ -1,7 +1,7 @@
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
Copyright 2007-2013 Thomas Schmitt, <scdbackup@gmx.net>
Copyright 2007-2014 Thomas Schmitt, <scdbackup@gmx.net>
Provided under GPL version 2 or later.
@ -667,9 +667,9 @@ unusable_size:;
int Xorriso_option_boot_image(struct XorrisO *xorriso, char *form,
char *treatment, int flag)
{
int was_ok= 1, ret, isolinux_grub= 0, count, bin_count;
int was_ok= 1, ret, isolinux_grub= 0, count, bin_count, parm_len;
unsigned int u;
char *formpt, *treatpt, *eff_path= NULL;
char *formpt, *treatpt, *eff_path= NULL, *eqpt, parm[20];
uint8_t sn[8];
double num;
@ -864,9 +864,11 @@ treatment_patch:;
} else if(strcmp(treatpt, "mips_discard") == 0 ||
strcmp(treatpt, "mipsel_discard") == 0 ||
strcmp(treatpt, "sparc_discard") == 0) {
strcmp(treatpt, "sparc_discard") == 0 ||
strcmp(treatpt, "hppa_discard") == 0) {
xorriso->system_area_options&= ~0xfc; /* system area type 0 */
Xorriso_add_mips_boot_file(xorriso, "", 1); /* give up MIPS boot files */
Xorriso_set_hppa_boot_parm(xorriso, "", "", 1); /* give up HP-PA files */
} else if(strncmp(treatpt, "sparc_label=", 12) == 0) {
sprintf(eff_path, "-boot_image %s sparc_label=", formpt);
@ -883,6 +885,25 @@ treatment_patch:;
if(ret <= 0)
goto ex;
} else if(strncmp(treatpt, "hppa_", 5) == 0) {
sprintf(eff_path, "-boot_image %s %s", formpt, treatpt);
ret= Xorriso_coordinate_system_area(xorriso, 4, 0, eff_path, 0);
if(ret <= 0)
goto ex;
eqpt= strchr(treatpt, '=');
if(eqpt == NULL) {
sprintf(xorriso->info_text,
"No equal sign found in -boot_image %s %s", form, treatment);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= 0; goto ex;
}
parm_len= (eqpt - treatpt) - 5;
if(parm_len > (int) sizeof(parm) - 1)
parm_len= sizeof(parm) - 1;
strncpy(parm, treatpt + 5, parm_len);
parm[parm_len]= 0;
ret= Xorriso_set_hppa_boot_parm(xorriso, eqpt + 1, parm, 0);
} else if(strncmp(treatpt, "boot_info_table=", 16)==0) {
if(strcmp(treatpt + 16, "off") == 0)
xorriso->patch_isolinux_image= (xorriso->patch_isolinux_image & ~3) | 0;