New -rom_toc_scan option "emul_wide"

This commit is contained in:
Thomas Schmitt 2012-08-14 10:32:35 +00:00
parent 17860622a4
commit 2201c50a74
10 changed files with 92 additions and 71 deletions

View File

@ -320,6 +320,8 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
aquire_flag= 1 | ((flag&(8|4))>>1) | ((xorriso->toc_emulation_flag & 3)<<3); aquire_flag= 1 | ((flag&(8|4))>>1) | ((xorriso->toc_emulation_flag & 3)<<3);
if(xorriso->toc_emulation_flag & 4) if(xorriso->toc_emulation_flag & 4)
aquire_flag|= 128; aquire_flag|= 128;
if(xorriso->toc_emulation_flag & 8)
aquire_flag|= 512;
if(!(xorriso->do_aaip & 1)) if(!(xorriso->do_aaip & 1))
aquire_flag|= 32; aquire_flag|= 32;
if((xorriso->ino_behavior & (1 | 2)) && !(xorriso->do_aaip & (4 | 32))) if((xorriso->ino_behavior & (1 | 2)) && !(xorriso->do_aaip & (4 | 32)))

View File

@ -1000,6 +1000,10 @@ int Xorriso_mount(struct XorrisO *xorriso, char *dev, int adr_mode,
aquire_flag= 1; aquire_flag= 1;
if((xorriso->toc_emulation_flag & 2) && adr_mode == 3) if((xorriso->toc_emulation_flag & 2) && adr_mode == 3)
aquire_flag|= 16; aquire_flag|= 16;
if(xorriso->toc_emulation_flag & 4)
aquire_flag|= 128;
if(xorriso->toc_emulation_flag & 8)
aquire_flag|= 512;
ret= isoburn_drive_aquire(&dinfo, libburn_adr, aquire_flag); ret= isoburn_drive_aquire(&dinfo, libburn_adr, aquire_flag);
burn_preset_device_open(1, 0, 0); burn_preset_device_open(1, 0, 0);
Xorriso_process_msg_queues(xorriso,0); Xorriso_process_msg_queues(xorriso,0);

View File

@ -1537,6 +1537,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" displacement versus the start address for which the image", " displacement versus the start address for which the image",
" was prepared.", " was prepared.",
" -rom_toc_scan \"on\"|\"force\"|\"off\"[:\"emul_on\"|\"emul_off\"]", " -rom_toc_scan \"on\"|\"force\"|\"off\"[:\"emul_on\"|\"emul_off\"]",
" [:\"emul_wide\"|\"emul_narrow\"]",
" Enable scanning for ISO sessions on read-only drives/media", " Enable scanning for ISO sessions on read-only drives/media",
" resp. on overwriteable media with emulated TOC.", " resp. on overwriteable media with emulated TOC.",
" -calm_drive \"in\"|\"out\"|\"all\"|\"on\"|\"off\"", " -calm_drive \"in\"|\"out\"|\"all\"|\"on\"|\"off\"",

View File

@ -620,7 +620,6 @@ int Xorriso_option_rom_toc_scan(struct XorrisO *xorriso, char *mode, int flag)
int l; int l;
char *cpt, *npt; char *cpt, *npt;
xorriso->toc_emulation_flag= 0;
npt= cpt= mode; npt= cpt= mode;
for(cpt= mode; npt != NULL; cpt= npt + 1) { for(cpt= mode; npt != NULL; cpt= npt + 1) {
npt= strchr(cpt,':'); npt= strchr(cpt,':');
@ -629,20 +628,22 @@ int Xorriso_option_rom_toc_scan(struct XorrisO *xorriso, char *mode, int flag)
else else
l= npt-cpt; l= npt-cpt;
if(l==0) if(l==0)
goto unknown_mode; continue;
xorriso->toc_emulation_flag&= ~4;
if(strncmp(cpt, "off", l) == 0) if(strncmp(cpt, "off", l) == 0)
xorriso->toc_emulation_flag&= ~1; xorriso->toc_emulation_flag&= ~5;
else if(strncmp(cpt, "on", l) == 0) else if(strncmp(cpt, "on", l) == 0)
xorriso->toc_emulation_flag|= 1; xorriso->toc_emulation_flag= (xorriso->toc_emulation_flag & ~4) | 1;
else if(strncmp(cpt, "force", l) == 0) else if(strncmp(cpt, "force", l) == 0)
xorriso->toc_emulation_flag|= 4; xorriso->toc_emulation_flag|= 5;
else if(strncmp(cpt, "emul_off", l) == 0) else if(strncmp(cpt, "emul_off", l) == 0)
xorriso->toc_emulation_flag|= 2; xorriso->toc_emulation_flag|= 2;
else if(strncmp(cpt, "emul_on", l) == 0) else if(strncmp(cpt, "emul_on", l) == 0)
xorriso->toc_emulation_flag&= ~2; xorriso->toc_emulation_flag&= ~2;
else if(strncmp(cpt, "emul_wide", l) == 0)
xorriso->toc_emulation_flag|= 8;
else if(strncmp(cpt, "emul_narrow", l) == 0)
xorriso->toc_emulation_flag&= ~8;
else { else {
unknown_mode:;
sprintf(xorriso->info_text, "-rom_toc_scan: unknown mode in '%s'", mode); sprintf(xorriso->info_text, "-rom_toc_scan: unknown mode in '%s'", mode);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0); return(0);

View File

@ -1831,10 +1831,11 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
#endif /* Xorriso_with_readlinE */ #endif /* Xorriso_with_readlinE */
is_default= (xorriso->toc_emulation_flag == 0); is_default= (xorriso->toc_emulation_flag == 0);
sprintf(line,"-rom_toc_scan %s%s\n", sprintf(line,"-rom_toc_scan %s:%s:%s\n",
xorriso->toc_emulation_flag & 4 ? "force" : xorriso->toc_emulation_flag & 4 ? "force" :
xorriso->toc_emulation_flag & 1 ? "on" : "off", xorriso->toc_emulation_flag & 1 ? "on" : "off",
xorriso->toc_emulation_flag & 2 ? ":emul_off" : ""); xorriso->toc_emulation_flag & 2 ? "emul_off" : "emul_on",
xorriso->toc_emulation_flag & 8 ? "emul_wide" : "emul_narrow");
if(!(is_default && no_defaults)) if(!(is_default && no_defaults))
Xorriso_status_result(xorriso, filter, fp, flag & 2); Xorriso_status_result(xorriso, filter, fp, flag & 2);

View File

@ -9,7 +9,7 @@
.\" First parameter, NAME, should be all caps .\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1) .\" other parameters are allowed: see man(7), man(1)
.TH XORRISO 1 "Version 1.2.5, Jul 26, 2012" .TH XORRISO 1 "Version 1.2.5, Aug 14, 2012"
.\" Please adjust this date whenever revising the manpage. .\" Please adjust this date whenever revising the manpage.
.\" .\"
.\" Some roff macros, for reference: .\" Some roff macros, for reference:
@ -908,7 +908,7 @@ The speed advantage appears only if the loaded session was produced with
Note that \-disk_dev_ino "off" is totally in effect only if \-hardlinks is "off", Note that \-disk_dev_ino "off" is totally in effect only if \-hardlinks is "off",
too. too.
.TP .TP
\fB\-rom_toc_scan\fR "on"|"force"|"off"[:"emul_on"|"emul_off"] \fB\-rom_toc_scan\fR "on"|"force"|"off"[:"emul_on"|"emul_off"][:"emul_wide"|"emul_narrow"]
Read\-only drives do not tell the actual media type but show any media as Read\-only drives do not tell the actual media type but show any media as
ROM (e.g. as DVD\-ROM). The session history of MMC multi\-session media might ROM (e.g. as DVD\-ROM). The session history of MMC multi\-session media might
be truncated to first and last session or even be completely false. be truncated to first and last session or even be completely false.
@ -930,8 +930,11 @@ On the other hand the emulation of session history on overwriteable media
can hamper reading of partly damaged media. Setting "off:emul_off" disables can hamper reading of partly damaged media. Setting "off:emul_off" disables
the elsewise trustworthy table\-of\-content scan for those media. the elsewise trustworthy table\-of\-content scan for those media.
.br .br
To be in effect, the \-rom_toc_scan setting has to be made before the \-*dev The table\-of\-content scan on overwriteable media normally searches only up to
command which acquires drive and medium. the end of the session that is pointed to by the superblock at block 0.
Setting "on:emul_wide" lets the scan continue up to the end of the medium.
This may be useful after copying a medium with \-check_media patch_lba0=on
when not the last session was loaded.
.TP .TP
\fB\-calm_drive\fR "in"|"out"|"all"|"revoke"|"on"|"off" \fB\-calm_drive\fR "in"|"out"|"all"|"revoke"|"on"|"off"
Reduce drive noise until it is actually used again. Some drives stay alert Reduce drive noise until it is actually used again. Some drives stay alert

View File

@ -841,7 +841,7 @@ activate them only after image loading.
Note that -disk_dev_ino "off" is totally in effect only if Note that -disk_dev_ino "off" is totally in effect only if
-hardlinks is "off", too. -hardlinks is "off", too.
-rom_toc_scan "on"|"force"|"off"[:"emul_on"|"emul_off"] -rom_toc_scan "on"|"force"|"off"[:"emul_on"|"emul_off"][:"emul_wide"|"emul_narrow"]
Read-only drives do not tell the actual media type but show any Read-only drives do not tell the actual media type but show any
media as ROM (e.g. as DVD-ROM). The session history of MMC media as ROM (e.g. as DVD-ROM). The session history of MMC
multi-session media might be truncated to first and last session multi-session media might be truncated to first and last session
@ -863,8 +863,12 @@ activate them only after image loading.
overwriteable media can hamper reading of partly damaged media. overwriteable media can hamper reading of partly damaged media.
Setting "off:emul_off" disables the elsewise trustworthy Setting "off:emul_off" disables the elsewise trustworthy
table-of-content scan for those media. table-of-content scan for those media.
To be in effect, the -rom_toc_scan setting has to be made before The table-of-content scan on overwriteable media normally searches
the -*dev command which acquires drive and medium. only up to the end of the session that is pointed to by the
superblock at block 0. Setting "on:emul_wide" lets the scan
continue up to the end of the medium. This may be useful after
copying a medium with -check_media patch_lba0=on when not the last
session was loaded.
-calm_drive "in"|"out"|"all"|"revoke"|"on"|"off" -calm_drive "in"|"out"|"all"|"revoke"|"on"|"off"
Reduce drive noise until it is actually used again. Some drives Reduce drive noise until it is actually used again. Some drives
@ -4528,11 +4532,11 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -assert_volid rejects undesired images: Loading. (line 84) * -assert_volid rejects undesired images: Loading. (line 84)
* -auto_charset learns character set from image: Loading. (line 98) * -auto_charset learns character set from image: Loading. (line 98)
* -backslash_codes enables backslash conversion: Scripting. (line 67) * -backslash_codes enables backslash conversion: Scripting. (line 67)
* -ban_stdio_write demands real drive: Loading. (line 247) * -ban_stdio_write demands real drive: Loading. (line 251)
* -biblio_file sets biblio file name: SetWrite. (line 238) * -biblio_file sets biblio file name: SetWrite. (line 238)
* -blank erases media: Writing. (line 61) * -blank erases media: Writing. (line 61)
* -boot_image controls bootability: Bootable. (line 26) * -boot_image controls bootability: Bootable. (line 26)
* -calm_drive reduces drive activity: Loading. (line 236) * -calm_drive reduces drive activity: Loading. (line 240)
* -cd sets working directory in ISO: Navigate. (line 7) * -cd sets working directory in ISO: Navigate. (line 7)
* -cdx sets working directory on disk: Navigate. (line 16) * -cdx sets working directory on disk: Navigate. (line 16)
* -changes_pending overrides change status: Writing. (line 13) * -changes_pending overrides change status: Writing. (line 13)
@ -4564,7 +4568,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -cpr inserts like with cp -r: Insert. (line 155) * -cpr inserts like with cp -r: Insert. (line 155)
* -cpx copies files to disk: Restore. (line 92) * -cpx copies files to disk: Restore. (line 92)
* -cut_out inserts piece of data file: Insert. (line 129) * -cut_out inserts piece of data file: Insert. (line 129)
* -data_cache_size adjusts read cache size: Loading. (line 265) * -data_cache_size adjusts read cache size: Loading. (line 269)
* -dev acquires one drive for input and output: AqDrive. (line 12) * -dev acquires one drive for input and output: AqDrive. (line 12)
* -device_links gets list of drives: Inquiry. (line 18) * -device_links gets list of drives: Inquiry. (line 18)
* -devices gets list of drives: Inquiry. (line 7) * -devices gets list of drives: Inquiry. (line 7)
@ -4580,7 +4584,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -dusx show directory size on disk: Navigate. (line 102) * -dusx show directory size on disk: Navigate. (line 102)
* -dux show directory size on disk: Navigate. (line 97) * -dux show directory size on disk: Navigate. (line 97)
* -dvd_obs set write block size: SetWrite. (line 309) * -dvd_obs set write block size: SetWrite. (line 309)
* -early_stdio_test classifies stdio drives: Loading. (line 252) * -early_stdio_test classifies stdio drives: Loading. (line 256)
* -eject ejects drive tray: Writing. (line 52) * -eject ejects drive tray: Writing. (line 52)
* -end writes pending session and ends program: Scripting. (line 156) * -end writes pending session and ends program: Scripting. (line 156)
* -errfile_log logs problematic disk files: Scripting. (line 118) * -errfile_log logs problematic disk files: Scripting. (line 118)
@ -4789,8 +4793,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* disk_path, _definition: Insert. (line 6) * disk_path, _definition: Insert. (line 6)
* Drive, _definition: Drives. (line 6) * Drive, _definition: Drives. (line 6)
* Drive, accessability, -drive_class: Loading. (line 54) * Drive, accessability, -drive_class: Loading. (line 54)
* Drive, classify stdio, -early_stdio_test: Loading. (line 252) * Drive, classify stdio, -early_stdio_test: Loading. (line 256)
* Drive, demand real MMC, -ban_stdio_write: Loading. (line 247) * Drive, demand real MMC, -ban_stdio_write: Loading. (line 251)
* Drive, eject tray, -eject: Writing. (line 52) * Drive, eject tray, -eject: Writing. (line 52)
* Drive, for input and output, -dev: AqDrive. (line 12) * Drive, for input and output, -dev: AqDrive. (line 12)
* Drive, for input, -indev: AqDrive. (line 24) * Drive, for input, -indev: AqDrive. (line 24)
@ -4798,7 +4802,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Drive, get drive list, -device_links: Inquiry. (line 18) * Drive, get drive list, -device_links: Inquiry. (line 18)
* Drive, get drive list, -devices: Inquiry. (line 7) * Drive, get drive list, -devices: Inquiry. (line 7)
* Drive, list supported media, -list_profiles: Writing. (line 166) * Drive, list supported media, -list_profiles: Writing. (line 166)
* Drive, reduce activity, -calm_drive: Loading. (line 236) * Drive, reduce activity, -calm_drive: Loading. (line 240)
* Drive, report SCSI commands, -scsi_log: Scripting. (line 147) * Drive, report SCSI commands, -scsi_log: Scripting. (line 147)
* Drive, write and eject, -commit_eject: Writing. (line 56) * Drive, write and eject, -commit_eject: Writing. (line 56)
* EA, _definition: Extras. (line 65) * EA, _definition: Extras. (line 65)
@ -4830,7 +4834,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* HFS+ allocation block size: Bootable. (line 220) * HFS+ allocation block size: Bootable. (line 220)
* HFS+ serial number: Bootable. (line 217) * HFS+ serial number: Bootable. (line 217)
* hidden, set in ISO image, -hide: Manip. (line 171) * hidden, set in ISO image, -hide: Manip. (line 171)
* Image reading, cache size, -data_cache_size: Loading. (line 265) * Image reading, cache size, -data_cache_size: Loading. (line 269)
* Image, _definition: Model. (line 9) * Image, _definition: Model. (line 9)
* Image, demand volume id, -assert_volid: Loading. (line 84) * Image, demand volume id, -assert_volid: Loading. (line 84)
* Image, discard pending changes, -rollback: Writing. (line 9) * Image, discard pending changes, -rollback: Writing. (line 9)
@ -5027,47 +5031,47 @@ Node: Options24480
Node: ArgSort26154 Node: ArgSort26154
Node: AqDrive27644 Node: AqDrive27644
Node: Loading30688 Node: Loading30688
Node: Insert45897 Node: Insert46168
Node: SetInsert55813 Node: SetInsert56084
Node: Manip64389 Node: Manip64660
Node: CmdFind73212 Node: CmdFind73483
Node: Filter87916 Node: Filter88187
Node: Writing92471 Node: Writing92742
Node: SetWrite101435 Node: SetWrite101706
Node: Bootable120068 Node: Bootable120339
Node: Jigdo135311 Node: Jigdo135582
Node: Charset139557 Node: Charset139828
Node: Exception142318 Node: Exception142589
Node: DialogCtl148437 Node: DialogCtl148708
Node: Inquiry151034 Node: Inquiry151305
Node: Navigate155900 Node: Navigate156171
Node: Verify164197 Node: Verify164468
Node: Restore173228 Node: Restore173499
Node: Emulation180137 Node: Emulation180408
Node: Scripting189948 Node: Scripting190219
Node: Frontend197108 Node: Frontend197379
Node: Examples198408 Node: Examples198679
Node: ExDevices199585 Node: ExDevices199856
Node: ExCreate200244 Node: ExCreate200515
Node: ExDialog201529 Node: ExDialog201800
Node: ExGrowing202794 Node: ExGrowing203065
Node: ExModifying203599 Node: ExModifying203870
Node: ExBootable204103 Node: ExBootable204374
Node: ExCharset204655 Node: ExCharset204926
Node: ExPseudo205476 Node: ExPseudo205747
Node: ExCdrecord206374 Node: ExCdrecord206645
Node: ExMkisofs206691 Node: ExMkisofs206962
Node: ExGrowisofs208031 Node: ExGrowisofs208302
Node: ExException209166 Node: ExException209437
Node: ExTime209620 Node: ExTime209891
Node: ExIncBackup210079 Node: ExIncBackup210350
Node: ExRestore214071 Node: ExRestore214342
Node: ExRecovery215031 Node: ExRecovery215302
Node: Files215601 Node: Files215872
Node: Seealso216900 Node: Seealso217171
Node: Bugreport217623 Node: Bugreport217894
Node: Legal218204 Node: Legal218475
Node: CommandIdx219215 Node: CommandIdx219486
Node: ConceptIdx235087 Node: ConceptIdx235358
 
End Tag Table End Tag Table

View File

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps @c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection @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 .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Version 1.2.5, Jul 26, 2012" @c man .TH XORRISO 1 "Version 1.2.5, Aug 14, 2012"
@c man .\" Please adjust this date whenever revising the manpage. @c man .\" Please adjust this date whenever revising the manpage.
@c man .\" @c man .\"
@c man .\" Some roff macros, for reference: @c man .\" Some roff macros, for reference:
@ -1149,7 +1149,7 @@ The speed advantage appears only if the loaded session was produced with
Note that -disk_dev_ino "off" is totally in effect only if -hardlinks is "off", Note that -disk_dev_ino "off" is totally in effect only if -hardlinks is "off",
too. too.
@c man .TP @c man .TP
@item -rom_toc_scan "on"|"force"|"off"[:"emul_on"|"emul_off"] @item -rom_toc_scan "on"|"force"|"off"[:"emul_on"|"emul_off"][:"emul_wide"|"emul_narrow"]
@kindex -rom_toc_scan searches for sessions @kindex -rom_toc_scan searches for sessions
@cindex Table-of-content, search sessions, -rom_toc_scan @cindex Table-of-content, search sessions, -rom_toc_scan
Read-only drives do not tell the actual media type but show any media as Read-only drives do not tell the actual media type but show any media as
@ -1173,8 +1173,11 @@ On the other hand the emulation of session history on overwriteable media
can hamper reading of partly damaged media. Setting "off:emul_off" disables can hamper reading of partly damaged media. Setting "off:emul_off" disables
the elsewise trustworthy table-of-content scan for those media. the elsewise trustworthy table-of-content scan for those media.
@* @*
To be in effect, the -rom_toc_scan setting has to be made before the -*dev The table-of-content scan on overwriteable media normally searches only up to
command which acquires drive and medium. the end of the session that is pointed to by the superblock at block 0.
Setting "on:emul_wide" lets the scan continue up to the end of the medium.
This may be useful after copying a medium with -check_media patch_lba0=on
when not the last session was loaded.
@c man .TP @c man .TP
@item -calm_drive "in"|"out"|"all"|"revoke"|"on"|"off" @item -calm_drive "in"|"out"|"all"|"revoke"|"on"|"off"
@kindex -calm_drive reduces drive activity @kindex -calm_drive reduces drive activity

View File

@ -238,6 +238,8 @@ struct XorrisO { /* the global context of xorriso */
do not emulate TOC on overwriteable media do not emulate TOC on overwriteable media
bit2= bit7 for isoburn_drive_aquire() bit2= bit7 for isoburn_drive_aquire()
pretend any media to be -ROM pretend any media to be -ROM
bit3= bit9 for isoburn_drive_aquire()
Ignore enclosing session at LBA 0
*/ */
int image_start_mode; /* From what address to load the ISO image int image_start_mode; /* From what address to load the ISO image

View File

@ -1 +1 @@
#define Xorriso_timestamP "2012.08.14.102632" #define Xorriso_timestamP "2012.08.14.103138"