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);
if(xorriso->toc_emulation_flag & 4)
aquire_flag|= 128;
if(xorriso->toc_emulation_flag & 8)
aquire_flag|= 512;
if(!(xorriso->do_aaip & 1))
aquire_flag|= 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;
if((xorriso->toc_emulation_flag & 2) && adr_mode == 3)
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);
burn_preset_device_open(1, 0, 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",
" was prepared.",
" -rom_toc_scan \"on\"|\"force\"|\"off\"[:\"emul_on\"|\"emul_off\"]",
" [:\"emul_wide\"|\"emul_narrow\"]",
" Enable scanning for ISO sessions on read-only drives/media",
" resp. on overwriteable media with emulated TOC.",
" -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;
char *cpt, *npt;
xorriso->toc_emulation_flag= 0;
npt= cpt= mode;
for(cpt= mode; npt != NULL; cpt= npt + 1) {
npt= strchr(cpt,':');
@ -629,20 +628,22 @@ int Xorriso_option_rom_toc_scan(struct XorrisO *xorriso, char *mode, int flag)
else
l= npt-cpt;
if(l==0)
goto unknown_mode;
xorriso->toc_emulation_flag&= ~4;
continue;
if(strncmp(cpt, "off", l) == 0)
xorriso->toc_emulation_flag&= ~1;
xorriso->toc_emulation_flag&= ~5;
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)
xorriso->toc_emulation_flag|= 4;
xorriso->toc_emulation_flag|= 5;
else if(strncmp(cpt, "emul_off", l) == 0)
xorriso->toc_emulation_flag|= 2;
else if(strncmp(cpt, "emul_on", l) == 0)
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 {
unknown_mode:;
sprintf(xorriso->info_text, "-rom_toc_scan: unknown mode in '%s'", mode);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 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 */
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 & 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))
Xorriso_status_result(xorriso, filter, fp, flag & 2);

View File

@ -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.2.5, Jul 26, 2012"
.TH XORRISO 1 "Version 1.2.5, Aug 14, 2012"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" 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",
too.
.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
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.
@ -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
the elsewise trustworthy table\-of\-content scan for those media.
.br
To be in effect, the \-rom_toc_scan setting has to be made before the \-*dev
command which acquires drive and medium.
The table\-of\-content scan on overwriteable media normally searches 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.
.TP
\fB\-calm_drive\fR "in"|"out"|"all"|"revoke"|"on"|"off"
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
-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
media as ROM (e.g. as DVD-ROM). The session history of MMC
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.
Setting "off:emul_off" disables 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 command which acquires drive and medium.
The table-of-content scan on overwriteable media normally searches
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"
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)
* -auto_charset learns character set from image: Loading. (line 98)
* -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)
* -blank erases media: Writing. (line 61)
* -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)
* -cdx sets working directory on disk: Navigate. (line 16)
* -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)
* -cpx copies files to disk: Restore. (line 92)
* -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)
* -device_links gets list of drives: Inquiry. (line 18)
* -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)
* -dux show directory size on disk: Navigate. (line 97)
* -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)
* -end writes pending session and ends program: Scripting. (line 156)
* -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)
* Drive, _definition: Drives. (line 6)
* Drive, accessability, -drive_class: Loading. (line 54)
* Drive, classify stdio, -early_stdio_test: Loading. (line 252)
* Drive, demand real MMC, -ban_stdio_write: Loading. (line 247)
* Drive, classify stdio, -early_stdio_test: Loading. (line 256)
* Drive, demand real MMC, -ban_stdio_write: Loading. (line 251)
* Drive, eject tray, -eject: Writing. (line 52)
* Drive, for input and output, -dev: AqDrive. (line 12)
* 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, -devices: Inquiry. (line 7)
* 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, write and eject, -commit_eject: Writing. (line 56)
* 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+ serial number: Bootable. (line 217)
* 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, demand volume id, -assert_volid: Loading. (line 84)
* Image, discard pending changes, -rollback: Writing. (line 9)
@ -5027,47 +5031,47 @@ Node: Options24480
Node: ArgSort26154
Node: AqDrive27644
Node: Loading30688
Node: Insert45897
Node: SetInsert55813
Node: Manip64389
Node: CmdFind73212
Node: Filter87916
Node: Writing92471
Node: SetWrite101435
Node: Bootable120068
Node: Jigdo135311
Node: Charset139557
Node: Exception142318
Node: DialogCtl148437
Node: Inquiry151034
Node: Navigate155900
Node: Verify164197
Node: Restore173228
Node: Emulation180137
Node: Scripting189948
Node: Frontend197108
Node: Examples198408
Node: ExDevices199585
Node: ExCreate200244
Node: ExDialog201529
Node: ExGrowing202794
Node: ExModifying203599
Node: ExBootable204103
Node: ExCharset204655
Node: ExPseudo205476
Node: ExCdrecord206374
Node: ExMkisofs206691
Node: ExGrowisofs208031
Node: ExException209166
Node: ExTime209620
Node: ExIncBackup210079
Node: ExRestore214071
Node: ExRecovery215031
Node: Files215601
Node: Seealso216900
Node: Bugreport217623
Node: Legal218204
Node: CommandIdx219215
Node: ConceptIdx235087
Node: Insert46168
Node: SetInsert56084
Node: Manip64660
Node: CmdFind73483
Node: Filter88187
Node: Writing92742
Node: SetWrite101706
Node: Bootable120339
Node: Jigdo135582
Node: Charset139828
Node: Exception142589
Node: DialogCtl148708
Node: Inquiry151305
Node: Navigate156171
Node: Verify164468
Node: Restore173499
Node: Emulation180408
Node: Scripting190219
Node: Frontend197379
Node: Examples198679
Node: ExDevices199856
Node: ExCreate200515
Node: ExDialog201800
Node: ExGrowing203065
Node: ExModifying203870
Node: ExBootable204374
Node: ExCharset204926
Node: ExPseudo205747
Node: ExCdrecord206645
Node: ExMkisofs206962
Node: ExGrowisofs208302
Node: ExException209437
Node: ExTime209891
Node: ExIncBackup210350
Node: ExRestore214342
Node: ExRecovery215302
Node: Files215872
Node: Seealso217171
Node: Bugreport217894
Node: Legal218475
Node: CommandIdx219486
Node: ConceptIdx235358

End Tag Table

View File

@ -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.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 .\"
@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",
too.
@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
@cindex Table-of-content, search sessions, -rom_toc_scan
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
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
command which acquires drive and medium.
The table-of-content scan on overwriteable media normally searches 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.
@c man .TP
@item -calm_drive "in"|"out"|"all"|"revoke"|"on"|"off"
@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
bit2= bit7 for isoburn_drive_aquire()
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

View File

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