From 30ab79d39a0abd027e68d3f1f2b9b677dbc0dbdc Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Thu, 16 Jan 2014 11:34:11 +0000 Subject: [PATCH] New -boot_image setting hppa_hdrversion= --- xorriso/iso_img.c | 22 +++++++-- xorriso/opts_a_c.c | 7 ++- xorriso/xorriso.1 | 13 ++++-- xorriso/xorriso.info | 91 ++++++++++++++++++++----------------- xorriso/xorriso.texi | 13 ++++-- xorriso/xorriso_private.h | 3 ++ xorriso/xorriso_timestamp.h | 2 +- 7 files changed, 98 insertions(+), 53 deletions(-) diff --git a/xorriso/iso_img.c b/xorriso/iso_img.c index 204e088b..c4fcaabc 100644 --- a/xorriso/iso_img.c +++ b/xorriso/iso_img.c @@ -539,7 +539,7 @@ int Xorriso_boot_status_non_mbr(struct XorrisO *xorriso, IsoImage *image, char *filter, FILE *fp, int flag) { int i, num_boots, sa_type, ret; - char *paths[15], *line; + char *paths[15], *line, num[4]; char *cmdline, *bootloader, *kernel_32, *kernel_64, *ramdisk; line= xorriso->result_line; @@ -556,7 +556,7 @@ int Xorriso_boot_status_non_mbr(struct XorrisO *xorriso, IsoImage *image, Xorriso_status_result(xorriso, filter, fp, flag & 2); return(0); } - if(sa_type != 1 && sa_type != 2 && sa_type != 4) + if(sa_type != 1 && sa_type != 2 && sa_type != 4 && sa_type != 5) return(0); if(sa_type == 1 || sa_type == 2) { @@ -574,7 +574,7 @@ int Xorriso_boot_status_non_mbr(struct XorrisO *xorriso, IsoImage *image, } return(num_boots); } - if(sa_type == 4) { + if(sa_type == 4 || sa_type == 5) { ret= iso_image_get_hppa_palo(image, &cmdline, &bootloader, &kernel_32, &kernel_64, &ramdisk); if(ret == 1) { @@ -583,6 +583,8 @@ int Xorriso_boot_status_non_mbr(struct XorrisO *xorriso, IsoImage *image, Xorriso_status_hppa(xorriso, "kernel_32", kernel_32, filter, fp, 0); Xorriso_status_hppa(xorriso, "kernel_64", kernel_64, filter, fp, 0); Xorriso_status_hppa(xorriso, "ramdisk", ramdisk, filter, fp, 0); + sprintf(num, "%d", sa_type); + Xorriso_status_hppa(xorriso, "hdrversion", num, filter, fp, 0); } return(0); } @@ -1288,6 +1290,20 @@ int Xorriso_set_hppa_boot_parm(struct XorrisO *xorriso, char *text, char *what, par[3]= text; } else if(strcmp(what, "ramdisk") == 0) { par[4]= text; + } else if(strcmp(what, "hdrversion") == 0) { + if(strcmp(text, "4") == 0) { + xorriso->system_area_options= (xorriso->system_area_options & ~0xfc) | + (4 << 2); + } else if(strcmp(text, "5") == 0) { + xorriso->system_area_options= (xorriso->system_area_options & ~0xfc) | + (5 << 2); + } else { + strcpy(xorriso->info_text, "Unsupported HP-PA PALO header version "); + Text_shellsafe(text, xorriso->info_text, 1); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); + return(0); + } + return(1); } else { strcpy(xorriso->info_text, "HP-PA boot parameter name not recognized: hppa_"); diff --git a/xorriso/opts_a_c.c b/xorriso/opts_a_c.c index 60b79807..35b526a5 100644 --- a/xorriso/opts_a_c.c +++ b/xorriso/opts_a_c.c @@ -668,6 +668,7 @@ 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, parm_len; + int palohdrversion; unsigned int u; char *formpt, *treatpt, *eff_path= NULL, *eqpt, parm[20]; uint8_t sn[8]; @@ -887,7 +888,11 @@ treatment_patch:; } 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); + palohdrversion= (xorriso->system_area_options >> 2) & 0x3f; + if(palohdrversion != 4) + palohdrversion= 5; + ret= Xorriso_coordinate_system_area(xorriso, palohdrversion, 0, eff_path, + 0); if(ret <= 0) goto ex; eqpt= strchr(treatpt, '='); diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index 7396170c..790b23c2 100644 --- a/xorriso/xorriso.1 +++ b/xorriso/xorriso.1 @@ -9,7 +9,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH XORRISO 1 "Version 1.3.5, Jan 14, 2014" +.TH XORRISO 1 "Version 1.3.5, Jan 15, 2014" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -3144,8 +3144,11 @@ of the given file to be written after the SUN Disk Label. Both numbers are counted in bytes. The address is written as 64 bit big\-endian number to byte 0x228. The size is written as 32 bit big\-endian number to byte 0x230. .br -\fBhppa_cmdline=\fRtext sets the PALO command line for HP\-PA. Up to 127 -characters are permitted. +\fBhppa_cmdline=\fRtext sets the PALO command line for HP\-PA. Up to 1023 +characters are permitted by default. With hppa_hdrversion=4 the limit is 127. +.br +Note that the first five hppa_ bootspecs are mandatory, if any of the +hppa_ bootspecs is used. Only hppa_hdrversion= is allowed to be missing. .br \fBhppa_bootloader=\fRiso_rr_path designates the given path as HP\-PA bootloader file. @@ -3159,6 +3162,10 @@ bootloader file. \fBhppa_ramdisk=\fRiso_rr_path designates the given path as HP\-PA RAM disk file. .br +\fBhppa_hdrversion=\fRnumber chooses between PALO header version 5 (default) +and version 4. +For the appropriate value see in PALO source code: PALOHDRVERSION. +.br \fBmips_discard\fR, \fBsparc_discard\fR, and \fBhppa_discard\fR revoke any boot file declarations made for mips or mipsel, resp. sparc, resp. hppa. This removes the ban on production of other boot blocks. diff --git a/xorriso/xorriso.info b/xorriso/xorriso.info index 5f257a1f..162e9309 100644 --- a/xorriso/xorriso.info +++ b/xorriso/xorriso.info @@ -2761,8 +2761,12 @@ filesystem and announced by an MBR partition table entry. numbers are counted in bytes. The address is written as 64 bit big-endian number to byte 0x228. The size is written as 32 bit big-endian number to byte 0x230. - *hppa_cmdline=*text sets the PALO command line for HP-PA. Up to 127 - characters are permitted. + *hppa_cmdline=*text sets the PALO command line for HP-PA. Up to + 1023 characters are permitted by default. With hppa_hdrversion=4 + the limit is 127. + Note that the first five hppa_ bootspecs are mandatory, if any of + the hppa_ bootspecs is used. Only hppa_hdrversion= is allowed to + be missing. *hppa_bootloader=*iso_rr_path designates the given path as HP-PA bootloader file. *hppa_kernel_32=*iso_rr_path designates the given path as HP-PA 32 @@ -2771,6 +2775,9 @@ filesystem and announced by an MBR partition table entry. bit kernel file. *hppa_ramdisk=*iso_rr_path designates the given path as HP-PA RAM disk file. + *hppa_hdrversion=*number chooses between PALO header version 5 + (default) and version 4. For the appropriate value see in PALO + source code: PALOHDRVERSION. *mips_discard*, *sparc_discard*, and *hppa_discard* revoke any boot file declarations made for mips or mipsel, resp. sparc, resp. hppa. This removes the ban on production of other boot blocks. @@ -4908,7 +4915,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * -alter_date sets timestamps in ISO image: Manip. (line 154) * -alter_date_r sets timestamps in ISO image: Manip. (line 187) * -append_partition adds arbitrary file after image end: Bootable. - (line 259) + (line 266) * -application_id sets application id: SetWrite. (line 196) * -application_use sets application use field: SetWrite. (line 262) * -as emulates mkisofs or cdrecord: Emulation. (line 13) @@ -5143,10 +5150,10 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * ACL, set in ISO image, -setfacl_r: Manip. (line 105) * ACL, show in ISO image, -getfacl: Navigate. (line 70) * ACL, show in ISO image, -getfacl_r: Navigate. (line 77) -* APM block size: Bootable. (line 250) +* APM block size: Bootable. (line 257) * APM, _definition: Extras. (line 41) * Appendable media, _definition: Media. (line 38) -* Appended Filesystem Image, -append_partition: Bootable. (line 259) +* Appended Filesystem Image, -append_partition: Bootable. (line 266) * Automatic execution order, of arguments, -x: ArgSort. (line 16) * Backslash Interpretation, _definition: Processing. (line 52) * Backup, enable fast incremental, -disk_dev_ino: Loading. (line 217) @@ -5227,8 +5234,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Group, in ISO image, -chgrp_r: Manip. (line 62) * Growing, _definition: Methods. (line 19) * Hard links, control handling, -hardlinks: Loading. (line 134) -* HFS+ allocation block size: Bootable. (line 247) -* HFS+ serial number: Bootable. (line 244) +* HFS+ allocation block size: Bootable. (line 254) +* HFS+ serial number: Bootable. (line 251) * hidden, set in ISO image, -hide: Manip. (line 191) * HP-PA boot sector, production: Bootable. (line 231) * Image reading, cache size, -data_cache_size: Loading. (line 296) @@ -5381,7 +5388,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Session, select as input, -load: Loading. (line 35) * Sorting order, for -x, -list_arg_sorting: ArgSort. (line 27) * SUN Disk Label, production: Bootable. (line 221) -* SUN SPARC boot images, activation: Bootable. (line 280) +* SUN SPARC boot images, activation: Bootable. (line 287) * Symbolic link, create, -lns: Insert. (line 176) * System area, _definition: Bootable. (line 127) * Table-of-content, search sessions, -rom_toc_scan: Loading. (line 238) @@ -5449,39 +5456,39 @@ Node: Filter93144 Node: Writing97700 Node: SetWrite107831 Node: Bootable128416 -Node: Jigdo145297 -Node: Charset149544 -Node: Exception152859 -Node: DialogCtl158979 -Node: Inquiry161577 -Node: Navigate167894 -Node: Verify176192 -Node: Restore185224 -Node: Emulation192311 -Node: Scripting202613 -Node: Frontend210384 -Node: Examples219991 -Node: ExDevices221169 -Node: ExCreate221828 -Node: ExDialog223113 -Node: ExGrowing224378 -Node: ExModifying225183 -Node: ExBootable225687 -Node: ExCharset226239 -Node: ExPseudo227131 -Node: ExCdrecord228029 -Node: ExMkisofs228346 -Node: ExGrowisofs229686 -Node: ExException230821 -Node: ExTime231275 -Node: ExIncBackup231734 -Node: ExRestore235714 -Node: ExRecovery236647 -Node: Files237217 -Node: Seealso238516 -Node: Bugreport239239 -Node: Legal239820 -Node: CommandIdx240831 -Node: ConceptIdx257493 +Node: Jigdo145684 +Node: Charset149931 +Node: Exception153246 +Node: DialogCtl159366 +Node: Inquiry161964 +Node: Navigate168281 +Node: Verify176579 +Node: Restore185611 +Node: Emulation192698 +Node: Scripting203000 +Node: Frontend210771 +Node: Examples220378 +Node: ExDevices221556 +Node: ExCreate222215 +Node: ExDialog223500 +Node: ExGrowing224765 +Node: ExModifying225570 +Node: ExBootable226074 +Node: ExCharset226626 +Node: ExPseudo227518 +Node: ExCdrecord228416 +Node: ExMkisofs228733 +Node: ExGrowisofs230073 +Node: ExException231208 +Node: ExTime231662 +Node: ExIncBackup232121 +Node: ExRestore236101 +Node: ExRecovery237034 +Node: Files237604 +Node: Seealso238903 +Node: Bugreport239626 +Node: Legal240207 +Node: CommandIdx241218 +Node: ConceptIdx257880  End Tag Table diff --git a/xorriso/xorriso.texi b/xorriso/xorriso.texi index 863d4694..96cb14cb 100644 --- a/xorriso/xorriso.texi +++ b/xorriso/xorriso.texi @@ -50,7 +50,7 @@ @c man .\" First parameter, NAME, should be all caps @c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection @c man .\" other parameters are allowed: see man(7), man(1) -@c man .TH XORRISO 1 "Version 1.3.5, Jan 14, 2014" +@c man .TH XORRISO 1 "Version 1.3.5, Jan 15, 2014" @c man .\" Please adjust this date whenever revising the manpage. @c man .\" @c man .\" Some roff macros, for reference: @@ -3677,8 +3677,11 @@ counted in bytes. The address is written as 64 bit big-endian number to byte 0x228. The size is written as 32 bit big-endian number to byte 0x230. @* @cindex HP-PA boot sector, production -@strong{hppa_cmdline=}text sets the PALO command line for HP-PA. Up to 127 -characters are permitted. +@strong{hppa_cmdline=}text sets the PALO command line for HP-PA. Up to 1023 +characters are permitted by default. With hppa_hdrversion=4 the limit is 127. +@* +Note that the first five hppa_ bootspecs are mandatory, if any of the +hppa_ bootspecs is used. Only hppa_hdrversion= is allowed to be missing. @* @strong{hppa_bootloader=}iso_rr_path designates the given path as HP-PA bootloader file. @@ -3692,6 +3695,10 @@ bootloader file. @strong{hppa_ramdisk=}iso_rr_path designates the given path as HP-PA RAM disk file. @* +@strong{hppa_hdrversion=}number chooses between PALO header version 5 (default) +and version 4. +For the appropriate value see in PALO source code: PALOHDRVERSION. +@* @strong{mips_discard}, @strong{sparc_discard}, and @strong{hppa_discard} revoke any boot file declarations made for mips or mipsel, resp. sparc, resp. hppa. This removes the ban on production of other boot blocks. diff --git a/xorriso/xorriso_private.h b/xorriso/xorriso_private.h index 3d06a58e..f4c79654 100644 --- a/xorriso/xorriso_private.h +++ b/xorriso/xorriso_private.h @@ -404,6 +404,9 @@ struct XorrisO { /* the global context of xorriso */ 2= MIPS Little Endian Boot Block 3= SUN Disk Label for SUN SPARC 4= HP-PA PALO boot sector + header version 4 + 5= HP-PA PALO boot sector + header version 5 bit8-9= Only with System area type 0 Cylinder alignment mode 0 = auto (align if bit1) diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 9790d9d3..efb0b21c 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2014.01.16.112242" +#define Xorriso_timestamP "2014.01.16.113247"