New (yet inofficial) -boot_image bootspec hfsplus_serial=
This commit is contained in:
parent
88308a5248
commit
f6817911a1
@ -1090,8 +1090,7 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom,
|
|||||||
int with_boot_image= 0, with_cat_path= 0, with_emul_toc= 0;
|
int with_boot_image= 0, with_cat_path= 0, with_emul_toc= 0;
|
||||||
int old_root_md5= 1, old_root_dev= 0, old_root_ino= 1;
|
int old_root_md5= 1, old_root_dev= 0, old_root_ino= 1;
|
||||||
int *weight_list= NULL, weight_count= 0;
|
int *weight_list= NULL, weight_count= 0;
|
||||||
int *delay_opt_list= NULL, delay_opt_count= 0, bin_count;
|
int *delay_opt_list= NULL, delay_opt_count= 0;
|
||||||
uint8_t sn[8];
|
|
||||||
char *sfe= NULL, *adr= NULL, ra_text[80], *pathspec= NULL;
|
char *sfe= NULL, *adr= NULL, ra_text[80], *pathspec= NULL;
|
||||||
char *ept, *add_pt, *eff_path= NULL, *indev= NULL, msc[80], *cpt;
|
char *ept, *add_pt, *eff_path= NULL, *indev= NULL, msc[80], *cpt;
|
||||||
char *old_root= NULL, *argpt, *hargv[1];
|
char *old_root= NULL, *argpt, *hargv[1];
|
||||||
@ -1533,16 +1532,10 @@ illegal_c:;
|
|||||||
if(i+1>=argc)
|
if(i+1>=argc)
|
||||||
goto not_enough_args;
|
goto not_enough_args;
|
||||||
i++;
|
i++;
|
||||||
ret= Hex_to_bin(argv[i], 8, &bin_count, (unsigned char *) sn, 0);
|
sprintf(pathspec, "hfsplus_serial=%.80s", argv[i]);
|
||||||
if(ret <= 0 || bin_count != 8) {
|
ret= Xorriso_option_boot_image(xorriso, "any", pathspec, 0);
|
||||||
sprintf(xorriso->info_text,
|
if(ret <= 0)
|
||||||
"-as %s %s : Malformed hex string. Expected 16 characters [0-9a-fA-F]",
|
goto problem_handler_2;
|
||||||
whom, argv[i - 1]);
|
|
||||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
|
|
||||||
ret= 0; goto ex;
|
|
||||||
} else {
|
|
||||||
memcpy(xorriso->hfsp_serial_number, sn, 8);
|
|
||||||
}
|
|
||||||
} else if(strcmp(argpt, "-graft-points")==0) {
|
} else if(strcmp(argpt, "-graft-points")==0) {
|
||||||
xorriso->allow_graft_points= 1;
|
xorriso->allow_graft_points= 1;
|
||||||
} else if(strcmp(argpt, "-path-list")==0 ||
|
} else if(strcmp(argpt, "-path-list")==0 ||
|
||||||
|
@ -640,9 +640,10 @@ unusable_size:;
|
|||||||
int Xorriso_option_boot_image(struct XorrisO *xorriso, char *form,
|
int Xorriso_option_boot_image(struct XorrisO *xorriso, char *form,
|
||||||
char *treatment, int flag)
|
char *treatment, int flag)
|
||||||
{
|
{
|
||||||
int was_ok= 1, ret, isolinux_grub= 0, count;
|
int was_ok= 1, ret, isolinux_grub= 0, count, bin_count;
|
||||||
unsigned int u;
|
unsigned int u;
|
||||||
char *formpt, *treatpt, *eff_path= NULL;
|
char *formpt, *treatpt, *eff_path= NULL;
|
||||||
|
uint8_t sn[8];
|
||||||
double num;
|
double num;
|
||||||
|
|
||||||
Xorriso_alloc_meM(eff_path, char, SfileadrL);
|
Xorriso_alloc_meM(eff_path, char, SfileadrL);
|
||||||
@ -996,6 +997,21 @@ treatment_patch:;
|
|||||||
{ret= 0; goto ex;}
|
{ret= 0; goto ex;}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} else if(strncmp(treatpt, "hfsplus_serial=", 15) == 0) {
|
||||||
|
ret= Hex_to_bin(treatpt + 15, 8, &bin_count, (unsigned char *) sn, 0);
|
||||||
|
if(ret <= 0 || bin_count != 8) {
|
||||||
|
sprintf(xorriso->info_text,
|
||||||
|
"boot_image %s : Malformed hfsplus_serial : %s",
|
||||||
|
formpt, treatpt + 15);
|
||||||
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||||
|
Xorriso_msgs_submit(xorriso, 0,
|
||||||
|
"Expected is a string of 16 hex digits [0-9a-fA-F]",
|
||||||
|
0, "HINT", 0);
|
||||||
|
ret= 0; goto ex;
|
||||||
|
} else {
|
||||||
|
memcpy(xorriso->hfsp_serial_number, sn, 8);
|
||||||
|
}
|
||||||
|
|
||||||
} else if(strncmp(treatpt, "isohybrid=", 10) == 0 &&
|
} else if(strncmp(treatpt, "isohybrid=", 10) == 0 &&
|
||||||
strcmp(formpt, "isolinux")==0) {
|
strcmp(formpt, "isolinux")==0) {
|
||||||
|
|
||||||
|
@ -1400,6 +1400,18 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
|||||||
}
|
}
|
||||||
#endif /* Xorriso_with_isohybriD */
|
#endif /* Xorriso_with_isohybriD */
|
||||||
|
|
||||||
|
is_default= 1;
|
||||||
|
for(i= 0; i < 8; i++)
|
||||||
|
if(xorriso->hfsp_serial_number[i])
|
||||||
|
is_default= 0;
|
||||||
|
sprintf(line, "-boot_image any hfsplus_serial=");
|
||||||
|
for(i= 0; i < 8; i++)
|
||||||
|
sprintf(line + strlen(line), "%-2.2X",
|
||||||
|
(unsigned int) xorriso->hfsp_serial_number[i]);
|
||||||
|
strcat(line, "\n");
|
||||||
|
if(!(is_default && no_defaults))
|
||||||
|
Xorriso_status_result(xorriso, filter, fp, flag & 2);
|
||||||
|
|
||||||
sprintf(line,"-cd %s\n",
|
sprintf(line,"-cd %s\n",
|
||||||
(xorriso->wdi[0] ? Text_shellsafe(xorriso->wdi,sfe,0) : "'/'"));
|
(xorriso->wdi[0] ? Text_shellsafe(xorriso->wdi,sfe,0) : "'/'"));
|
||||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2012.05.27.165938"
|
#define Xorriso_timestamP "2012.05.28.133310"
|
||||||
|
Loading…
Reference in New Issue
Block a user