Browse Source

New command -use_immed_bit, new -as cdrecord option use_immed_bit=

master
Thomas Schmitt 5 years ago
parent
commit
07345cf49d
  1. 1
      libisoburn/libisoburn.ver
  2. 2
      xorriso/base_obj.c
  3. 37
      xorriso/drive_mgt.c
  4. 6
      xorriso/emulators.c
  5. 3
      xorriso/opts_d_h.c
  6. 22
      xorriso/opts_p_z.c
  7. 9
      xorriso/parse_exec.c
  8. 17
      xorriso/text_io.c
  9. 25
      xorriso/write_run.c
  10. 16
      xorriso/xorrecord.1
  11. 64
      xorriso/xorrecord.info
  12. 18
      xorriso/xorrecord.texi
  13. 14
      xorriso/xorriso.1
  14. 5
      xorriso/xorriso.h
  15. 108
      xorriso/xorriso.info
  16. 16
      xorriso/xorriso.texi
  17. 3
      xorriso/xorriso_private.h
  18. 2
      xorriso/xorriso_timestamp.h
  19. 2
      xorriso/xorrisoburn.h

1
libisoburn/libisoburn.ver

@ -316,6 +316,7 @@ Xorriso_option_toc_of;
Xorriso_option_uid;
Xorriso_option_unregister_filter;
Xorriso_option_update;
Xorriso_option_use_immed_bit;
Xorriso_option_use_readline;
Xorriso_option_version;
Xorriso_option_volid;

2
xorriso/base_obj.c

@ -251,6 +251,8 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->buffer_timeout_sec= 120;
m->min_buffer_percent= 90;
m->max_buffer_percent= 95;
m->use_immed_bit= 0;
m->use_immed_bit_default= 0;
m->stdio_sync= 0;
m->stdio_sync_is_default= 1;
m->keep_boot_image= 0;

37
xorriso/drive_mgt.c

@ -343,6 +343,10 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
ret= 0; goto ex;
}
xorriso->use_immed_bit_default= burn_drive_get_immed(dinfo[0].drive) > 0 ?
1 : -1;
if(xorriso->use_immed_bit != 0)
burn_drive_set_immed(dinfo[0].drive, xorriso->use_immed_bit > 0);
state= isoburn_disc_get_status(dinfo[0].drive);
ret= isoburn_get_img_partition_offset(dinfo[0].drive, &offst);
if((state == BURN_DISC_APPENDABLE || state == BURN_DISC_FULL) && ret == 1) {
@ -3412,3 +3416,36 @@ int Xorriso_scsi_dev_family(struct XorrisO *xorriso, int flag)
return(1);
}
int Xorriso_use_immed_bit(struct XorrisO *xorriso, int flag)
{
int enable= 1, ret;
struct burn_drive_info *dinfo;
struct burn_drive *drive;
/* It is not an error if no drive is acquired.
Xorriso_drive_aquire() will apply use_immed_bit.
*/
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
"on attempt to control use of Immed bit", 2 | 16);
if(ret<0)
return(ret);
if(ret == 0)
return(1);
if(xorriso->use_immed_bit == -1) {
enable= 0;
} else if(xorriso->use_immed_bit == 1) {
enable= 1;
} else if(xorriso->use_immed_bit == 0) {
/* obtain default value as determined after drive aquiration */
if(xorriso->use_immed_bit_default == 0)
return(1);
enable= (xorriso->use_immed_bit_default > 0);
}
burn_drive_set_immed(drive, enable);
Xorriso_process_msg_queues(xorriso,0);
return(1);
}

6
xorriso/emulators.c

@ -85,6 +85,7 @@ int Xorriso_cdrskin_help(struct XorrisO *xorriso, int flag)
"\t--grow_overwriteable_iso\temulate multi-session on DVD+RW, BD-RE",
"\twrite_start_address=#\t\twrite to byte address on DVD+RW, BD-RE",
"\tstream_recording=on|number\ttry to get full speed on DVD-RAM, BD",
"\tuse_immed_bit=on|off|default\tcontrol use of Immed bit",
"\tdvd_obs=default|32k|64k\t\tbytes per DVD/BD write operation",
"\tstdio_sync=on|off|end|number\twhether to fsync output to \"stdio:\"",
"\t--no_rc\t\tDo not execute xorriso startup files",
@ -337,6 +338,11 @@ no_volunteer:;
cpt= strchr(argpt, '=')+1;
Xorriso_option_stream_recording(xorriso, cpt, 0);
} else if(strncmp(argpt, "-use_immed_bit=", 15) == 0 ||
strncmp(argpt, "use_immed_bit=", 14) == 0) {
cpt= strchr(argpt, '=') + 1;
Xorriso_option_use_immed_bit(xorriso, cpt, 0);
} else if(strcmp(argpt, "-immed") == 0) {
Xorriso_option_modesty_on_drive(xorriso, "75", 0);

3
xorriso/opts_d_h.c

@ -2135,6 +2135,9 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Keep drive buffer hungry to ease concurrent burn run.",
" -dvd_obs \"default\"|\"32k\"|\"64k\"",
" Set number of bytes per DVD/BD write operation.",
" -use_immed_bit \"on\"|\"off\"|\"default\"",
" Control whether long running SCSI commands shall run",
" asynchronously with progress messages.",
" -stdio_sync \"on\"|\"off\"|\"end\"|number",
" Set number of bytes after which to force output to stdio",
" pseudo drives. \"on\" is the same as 16m.",

22
xorriso/opts_p_z.c

@ -1939,6 +1939,28 @@ ex:;
}
/* Command -use_immed_bit */
int Xorriso_option_use_immed_bit(struct XorrisO *xorriso, char *mode,
int flag)
{
int ret;
if(strncmp(mode, "default", 7) == 0 || mode[0] == 0) {
xorriso->use_immed_bit= 0;
} else if(strcmp(mode, "on")==0) {
xorriso->use_immed_bit= 1;
} else if(strcmp(mode, "off")==0) {
xorriso->use_immed_bit= -1;
} else {
sprintf(xorriso->info_text, "-use_immed_bit: unknown mode '%s'", mode);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
}
ret= Xorriso_use_immed_bit(xorriso, 0);
return(ret);
}
/* Option -use_readline */
int Xorriso_option_use_readline(struct XorrisO *xorriso, char *mode, int flag)
{

9
xorriso/parse_exec.c

@ -545,7 +545,8 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"session_log","sh_style_result","signal_handling","sleep",
"speed","split_size","status","status_history_max",
"stdio_sync","stream_recording","system_id","temp_mem_limit","toc_of",
"uid","unregister_filter","use_readline","volid","volset_id",
"uid","unregister_filter","use_immed_bit","use_readline",
"volid","volset_id",
"write_type","xattr","zisofs",
""
};
@ -739,7 +740,7 @@ int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso,
"abstract_file", "biblio_file", "preparer_id", "application_use",
"out_charset", "read_mkisofsrc",
"uid", "gid", "zisofs", "speed", "stream_recording", "dvd_obs",
"modesty_on_drive",
"modesty_on_drive", "use_immed_bit",
"stdio_sync", "dummy", "fs", "close", "padding", "write_type",
"grow_blindly", "pacifier", "scdbackup_tag",
@ -1933,6 +1934,10 @@ if (0) {
(*idx)+= 2;
ret= Xorriso_option_update(xorriso, arg1, arg2, 1|8);
} else if(strcmp(cmd,"use_immed_bit")==0) {
(*idx)++;
ret= Xorriso_option_use_immed_bit(xorriso, arg1, 0);
} else if(strcmp(cmd,"use_readline")==0) {
(*idx)++;
ret= Xorriso_option_use_readline(xorriso, arg1, 0);

17
xorriso/text_io.c

@ -3456,6 +3456,23 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->use_immed_bit == 0);
strcpy(line, "-use_immed_bit ");
if(xorriso->use_immed_bit == 0) {
strcat(line, "default");
if(xorriso->use_immed_bit_default > 0)
strcat(line, "/on");
else if(xorriso->use_immed_bit_default < 0)
strcat(line, "/off");
strcat(line, "\n");
} else if(xorriso->use_immed_bit > 0) {
strcat(line, "on\n");
} else if(xorriso->use_immed_bit < 0) {
strcat(line, "off\n");
}
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->stdio_sync == 0);
strcpy(line, "-stdio_sync ");
if(xorriso->stdio_sync == -1)

25
xorriso/write_run.c

@ -1692,7 +1692,7 @@ int Xorriso_pacifier_loop(struct XorrisO *xorriso, struct burn_drive *drive,
*/
int Xorriso_blank_media(struct XorrisO *xorriso, int flag)
{
int ret, do_deformat= 0, signal_mode;
int ret, do_deformat= 0, signal_mode, using_immed;
struct burn_drive_info *dinfo;
struct burn_drive *drive;
enum burn_disc_status disc_state;
@ -1702,6 +1702,7 @@ int Xorriso_blank_media(struct XorrisO *xorriso, int flag)
char current_profile_name[80];
time_t start_time;
char mode_names[4][80]= {"all", "fast", "deformat", "deformat_quickest"};
char progress_text[40];
ret= Xorriso_may_burn(xorriso, 0);
if(ret <= 0)
@ -1760,6 +1761,7 @@ int Xorriso_blank_media(struct XorrisO *xorriso, int flag)
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
return(1);
}
using_immed= burn_drive_get_immed(drive);
sprintf(xorriso->info_text, "Beginning to blank medium in mode '%s'.\n",
mode_names[flag&3]);
Xorriso_info(xorriso,0);
@ -1777,12 +1779,16 @@ int Xorriso_blank_media(struct XorrisO *xorriso, int flag)
isoburn_disc_erase(drive, (flag&1));
start_time= time(0);
usleep(1000000);
if(!using_immed)
sprintf(progress_text, "synchronously since");
while (burn_drive_get_status(drive, &p) != BURN_DRIVE_IDLE) {
Xorriso_process_msg_queues(xorriso,0);
if(p.sectors>0 && p.sector>=0) /* display 1 to 99 percent */
percent = 1.0 + ((double) p.sector+1.0) / ((double) p.sectors) * 98.0;
sprintf(xorriso->info_text, "Blanking ( %.1f%% done in %d seconds )",
percent, (int) (time(0) - start_time));
if(using_immed)
sprintf(progress_text, "%.1f%% done in", percent);
sprintf(xorriso->info_text, "Blanking ( %s %d seconds )",
progress_text, (int) (time(0) - start_time));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "UPDATE", 0);
usleep(1000000);
}
@ -1818,14 +1824,14 @@ int Xorriso_blank_media(struct XorrisO *xorriso, int flag)
*/
int Xorriso_format_media(struct XorrisO *xorriso, off_t in_size, int flag)
{
int ret, mode_flag= 0, index, status, num_formats, signal_mode;
int ret, mode_flag= 0, index, status, num_formats, signal_mode, using_immed;
unsigned dummy;
struct burn_drive_info *dinfo;
struct burn_drive *drive;
struct burn_progress p;
double percent = 1.0;
int current_profile;
char current_profile_name[80];
char current_profile_name[80], progress_text[40];
off_t size= 0;
time_t start_time;
enum burn_disc_status disc_state;
@ -1926,6 +1932,7 @@ int Xorriso_format_media(struct XorrisO *xorriso, off_t in_size, int flag)
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
return(1);
}
using_immed= burn_drive_get_immed(drive);
sprintf(xorriso->info_text, "Beginning to format medium.\n");
Xorriso_info(xorriso, 0);
if(flag & 2)
@ -1942,12 +1949,16 @@ int Xorriso_format_media(struct XorrisO *xorriso, off_t in_size, int flag)
start_time= time(0);
usleep(1000000);
if(!using_immed)
sprintf(progress_text, "synchronously since");
while (burn_drive_get_status(drive, &p) != BURN_DRIVE_IDLE) {
Xorriso_process_msg_queues(xorriso,0);
if(p.sectors>0 && p.sector>=0) /* display 1 to 99 percent */
percent = 1.0 + ((double) p.sector+1.0) / ((double) p.sectors) * 98.0;
sprintf(xorriso->info_text, "Formatting ( %.1f%% done in %d seconds )",
percent, (int) (time(0) - start_time));
if(using_immed)
sprintf(progress_text, "%.1f%% done in", percent);
sprintf(xorriso->info_text, "Formatting ( %s %d seconds )",
progress_text, (int) (time(0) - start_time));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "UPDATE", 0);
usleep(1000000);
}

16
xorriso/xorrecord.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 XORRECORD 1 "Version 1.4.5, Jul 02, 2016"
.TH XORRECORD 1 "Version 1.4.5, Jul 30, 2016"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -480,6 +480,10 @@ Equivalent to:
Equivalent to:
.br
modesty_on_drive=75
.br
In cdrecord, this also controls use of the Immed bit.
But xorriso uses Immed where possible and appropriate, unless it is disabled
by option use_immed_bit=off .
.TP
\fB\-eject\fR
Eject the drive tray after alll other work is done.
@ -643,6 +647,16 @@ Default is:
modesty_on_drive=off:min_percent=90:max_percent=95:
timeout_sec=120:min_usec=5000:max_usec=25000
.TP
\fBuse_immed_bit="on"|"off"|"default"\fR
Control whether several long lasting SCSI commands shall be executed with the
Immed bit, which makes the commands end early while the drive operation is
still going on. xorriso then inquires progress indication until the drive
reports to be ready again. If this feature is turned off, then blanking and
formatting will show no progress indication.
.br
It may depend on the operating system whether \-use_immed_bit is set to "off"
by default.
.TP
\fBwrite_start_address=value\fR
Set the block address on overwritable media where to start writing the track.
With DVD+RW, DVD\-RAM or BD\-RE, byte_offset must be aligned to 2 kiB blocks,

64
xorriso/xorrecord.info

@ -450,6 +450,9 @@ minbuf=percentage
-immed
Equivalent to:
modesty_on_drive=75
In cdrecord, this also controls use of the Immed bit. But xorriso
uses Immed where possible and appropriate, unless it is disabled by
option use_immed_bit=off .
-eject
Eject the drive tray after alll other work is done.
@ -596,6 +599,15 @@ modesty_on_drive=parameter[:parameters]
option, stay unchanged. Default is:
modesty_on_drive=off:min_percent=90:max_percent=95:
timeout_sec=120:min_usec=5000:max_usec=25000
use_immed_bit="on"|"off"|"default"
Control whether several long lasting SCSI commands shall be
executed with the Immed bit, which makes the commands end early
while the drive operation is still going on. xorriso then inquires
progress indication until the drive reports to be ready again. If
this feature is turned off, then blanking and formatting will show
no progress indication.
It may depend on the operating system whether -use_immed_bit is set
to "off" by default.
write_start_address=value
Set the block address on overwritable media where to start writing
the track. With DVD+RW, DVD-RAM or BD-RE, byte_offset must be
@ -878,7 +890,7 @@ File: xorrecord.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* -dao explicitly set write type SAO/DAO: SetBurn. (line 172)
* -data explicitly announce a data track: SetBurn. (line 157)
* -dummy control write simulation: SetBurn. (line 106)
* -eject finally eject drive tray: SetBurn. (line 211)
* -eject finally eject drive tray: SetBurn. (line 214)
* -help print sparse overview of options: Verbous. (line 30)
* -immed keep drive buffer hungry: SetBurn. (line 208)
* -inq inquire drive identifiers: Inquire. (line 8)
@ -906,12 +918,13 @@ File: xorrecord.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
* minbuf= keep drive buffer hungry: SetBurn. (line 205)
* padsize= add bytes to end of track: SetBurn. (line 144)
* speed= set write speed: SetBurn. (line 189)
* stdio_sync= control stdio buffer: NonCdrecord. (line 116)
* stdio_sync= control stdio buffer: NonCdrecord. (line 125)
* stream_recording= try to get full speed on DVD-RAM, BD: NonCdrecord.
(line 56)
* tsize= set a fixed track size: SetBurn. (line 126)
* use_immed_bit= control use of Immed bit: NonCdrecord. (line 110)
* write_start_address= set block address for write start: NonCdrecord.
(line 110)
(line 119)

File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
@ -923,6 +936,7 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Menu:
* Accessing drive, wait for stdin, -waiti: SetBurn. (line 113)
* Blank, format, Immed bit, use_immed_bit=: NonCdrecord. (line 110)
* Bugs, reporting: Bugreport. (line 6)
* Data track, announce, -data: SetBurn. (line 157)
* Defect management, control, stream_recording=: NonCdrecord. (line 56)
@ -932,7 +946,7 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Drive, inquire identifiers, -inq: Inquire. (line 8)
* Drive, Linux device type, drive_scsi_dev_family: NonCdrecord.
(line 12)
* Eject, the tray, -eject: SetBurn. (line 211)
* Eject, the tray, -eject: SetBurn. (line 214)
* Examples: Examples. (line 6)
* Fifo, set size, fs=: SetBurn. (line 174)
* Full speed, on DVD-RAM and BD, stream_recording=: NonCdrecord.
@ -964,17 +978,17 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Track size, set fixed, tsize=: SetBurn. (line 126)
* Track, _definiton: Standards. (line 13)
* Transaction size, set, dvd_obs=: NonCdrecord. (line 66)
* Tray, eject, -eject: SetBurn. (line 211)
* Tray, eject, -eject: SetBurn. (line 214)
* Verbosity, increase, -v: Verbous. (line 16)
* Verbosity, SCSI commands, -V: Verbous. (line 20)
* Version, report, -version: Verbous. (line 8)
* Write simulation , control, -dummy: SetBurn. (line 106)
* Write start address, set, write_start_address=: NonCdrecord.
(line 110)
(line 119)
* Write type, SAO/DAO, -dao: SetBurn. (line 172)
* Write type, SAO/DAO, -sao: SetBurn. (line 168)
* Write type, TAO, -tao: SetBurn. (line 162)
* Write, buffer syncing, stdio_sync=: NonCdrecord. (line 116)
* Write, buffer syncing, stdio_sync=: NonCdrecord. (line 125)
* Write, drive buffer, -immed: SetBurn. (line 208)
* Write, drive buffer, minbuf=: SetBurn. (line 205)
* Write, drive buffer, modesty_on_drive=: NonCdrecord. (line 73)
@ -993,23 +1007,23 @@ Node: Options5885
Node: DriveAddr6253
Node: Inquire7618
Node: SetBurn10487
Node: Verbous20938
Node: NonCdrecord22488
Node: Examples29314
Node: ExDevices29975
Node: ExMedium30193
Node: ExBlank30456
Node: ExFormat30677
Node: ExDeformat31195
Node: ExIsoSingle31462
Node: ExIsoMulti31746
Node: ExIsoFly33380
Node: ExAfio34051
Node: Files35049
Node: Seealso35605
Node: Bugreport35968
Node: Legal36559
Node: CommandIdx37488
Node: ConceptIdx40905
Node: Verbous21115
Node: NonCdrecord22665
Node: Examples30005
Node: ExDevices30666
Node: ExMedium30884
Node: ExBlank31147
Node: ExFormat31368
Node: ExDeformat31886
Node: ExIsoSingle32153
Node: ExIsoMulti32437
Node: ExIsoFly34071
Node: ExAfio34742
Node: Files35740
Node: Seealso36296
Node: Bugreport36659
Node: Legal37250
Node: CommandIdx38179
Node: ConceptIdx41669

End Tag Table

18
xorriso/xorrecord.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 XORRECORD 1 "Version 1.4.5, Jul 02, 2016"
@c man .TH XORRECORD 1 "Version 1.4.5, Jul 30, 2016"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -661,6 +661,10 @@ Equivalent to:
Equivalent to:
@*
modesty_on_drive=75
@*
In cdrecord, this also controls use of the Immed bit.
But xorriso uses Immed where possible and appropriate, unless it is disabled
by option use_immed_bit=off .
@c man .TP
@item -eject
@kindex -eject finally eject drive tray
@ -861,6 +865,18 @@ Default is:
modesty_on_drive=off:min_percent=90:max_percent=95:
timeout_sec=120:min_usec=5000:max_usec=25000
@c man .TP
@item use_immed_bit="on"|"off"|"default"
@kindex use_immed_bit= control use of Immed bit
@cindex Blank, format, Immed bit, use_immed_bit=
Control whether several long lasting SCSI commands shall be executed with the
Immed bit, which makes the commands end early while the drive operation is
still going on. xorriso then inquires progress indication until the drive
reports to be ready again. If this feature is turned off, then blanking and
formatting will show no progress indication.
@*
It may depend on the operating system whether -use_immed_bit is set to "off"
by default.
@c man .TP
@item write_start_address=value
@kindex write_start_address= set block address for write start
@cindex Write start address, set, write_start_address=

14
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.4.5, Jul 20, 2016"
.TH XORRISO 1 "Version 1.4.5, Jul 30, 2016"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -3004,6 +3004,18 @@ Default is:
\-modesty_on_drive off:min_percent=90:max_percent=95:
timeout_sec=120:min_usec=5000:max_usec=25000
.TP
\fB\-use_immed_bit\fR "on"|"off"|"default"
Control whether several long lasting SCSI commands shall be executed with the
Immed bit, which makes the commands end early while the drive operation is
still going on. xorriso then inquires progress indication until the drive
reports to be ready again. If this feature is turned off, then blanking and
formatting will show no progress indication.
.br
It may depend on the operating system whether \-use_immed_bit is set to "off"
by default. Command \-status will tell by appending "/on" or "/off" if a drive
has already been acquired and \-use_immed_bit is currently set to "default".
Command \-use_immed_bit tolerates and ignores such appended text.
.TP
\fB\-stdio_sync\fR "on"|"off"|"end"|number
Set the number of bytes after which to force output to stdio: pseudo drives.
This forcing keeps the memory from being clogged with lots of

5
xorriso/xorriso.h

@ -2133,6 +2133,11 @@ int Xorriso_option_update(struct XorrisO *xorriso, char *disk_path,
/* @since 0.1.0 */
int Xorriso_option_use_readline(struct XorrisO *xorriso, char *mode, int flag);
/* Command -use_immed_bit */
/* @since 1.4.6 */
int Xorriso_option_use_immed_bit(struct XorrisO *xorriso, char *mode,
int flag);
/* Command -version */
/* @since 0.1.0 */
int Xorriso_option_version(struct XorrisO *xorriso, int flag);

108
xorriso/xorriso.info

@ -2542,6 +2542,18 @@ according to the setting of command -acl.
command, stay unchanged. Default is:
-modesty_on_drive off:min_percent=90:max_percent=95:
timeout_sec=120:min_usec=5000:max_usec=25000
-use_immed_bit "on"|"off"|"default"
Control whether several long lasting SCSI commands shall be
executed with the Immed bit, which makes the commands end early
while the drive operation is still going on. xorriso then inquires
progress indication until the drive reports to be ready again. If
this feature is turned off, then blanking and formatting will show
no progress indication.
It may depend on the operating system whether -use_immed_bit is set
to "off" by default. Command -status will tell by appending "/on"
or "/off" if a drive has already been acquired and -use_immed_bit
is currently set to "default". Command -use_immed_bit tolerates
and ignores such appended text.
-stdio_sync "on"|"off"|"end"|number
Set the number of bytes after which to force output to stdio:
pseudo drives. This forcing keeps the memory from being clogged
@ -5120,7 +5132,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -chown sets ownership in ISO image: Manip. (line 43)
* -chown_r sets ownership in ISO image: Manip. (line 47)
* -clone copies ISO directory tree: Insert. (line 170)
* -close controls media closing: SetWrite. (line 373)
* -close controls media closing: SetWrite. (line 385)
* -close_damaged closes damaged track and session: Writing. (line 164)
* -close_filter_list bans filter registration: Filter. (line 50)
* -commit writes pending ISO image: Writing. (line 27)
@ -5149,7 +5161,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
(line 57)
* -drive_class controls drive accessability: Loading. (line 73)
* -du show directory size in ISO image: Navigate. (line 75)
* -dummy controls write simulation: SetWrite. (line 365)
* -dummy controls write simulation: SetWrite. (line 377)
* -dus show directory size in ISO image: Navigate. (line 78)
* -dusx show directory size on disk: Navigate. (line 85)
* -dux show directory size on disk: Navigate. (line 81)
@ -5173,7 +5185,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -follow softlinks and mount points: SetInsert. (line 69)
* -format formats media: Writing. (line 87)
* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 210)
* -fs sets size of fifo: SetWrite. (line 368)
* -fs sets size of fifo: SetWrite. (line 380)
* -getfacl shows ACL in ISO image: Navigate. (line 60)
* -getfacl_r shows ACL in ISO image: Navigate. (line 66)
* -getfattr shows xattr in ISO image: Navigate. (line 69)
@ -5235,7 +5247,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -out_charset sets output character set: SetWrite. (line 263)
* -overwrite enables overwriting in ISO: SetInsert. (line 131)
* -pacifier controls pacifier text form: Emulation. (line 166)
* -padding sets amount or mode of image padding: SetWrite. (line 396)
* -padding sets amount or mode of image padding: SetWrite. (line 408)
* -page set terminal geometry: DialogCtl. (line 18)
* -paste_in copies file into disk file: Restore. (line 114)
* -pathspecs sets meaning of = with -add: SetInsert. (line 115)
@ -5297,7 +5309,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -split_size enables large file splitting: SetInsert. (line 143)
* -status shows current settings: Scripting. (line 44)
* -status_history_max curbs -status history: Scripting. (line 52)
* -stdio_sync controls stdio buffer: SetWrite. (line 358)
* -stdio_sync controls stdio buffer: SetWrite. (line 370)
* -stream_recording controls defect management: SetWrite. (line 303)
* -system_id sets system id: SetWrite. (line 199)
* -tell_media_space reports free space: Inquiry. (line 97)
@ -5308,12 +5320,13 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -update inserts path if different: Insert. (line 100)
* -update_l inserts paths if different: Insert. (line 120)
* -update_r inserts paths if different: Insert. (line 110)
* -use_immed_bit controls use of Immed bit: SetWrite. (line 358)
* -use_readline enables readline for dialog: DialogCtl. (line 26)
* -version prints help text: Scripting. (line 22)
* -volid sets volume id: SetWrite. (line 162)
* -volset_id sets volume set id: SetWrite. (line 182)
* -volume_date sets volume timestamp: SetWrite. (line 205)
* -write_type chooses TAO or SAO/DAO: SetWrite. (line 389)
* -write_type chooses TAO or SAO/DAO: SetWrite. (line 401)
* -x enables automatic execution order of arguments: ArgSort. (line 16)
* -xattr controls handling of xattr (EA): Loading. (line 178)
* -zisofs controls zisofs production: SetWrite. (line 274)
@ -5346,6 +5359,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Backup, enable features, -for_backup: Loading. (line 210)
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 179)
* Blank media, _definition: Media. (line 29)
* Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 358)
* Blind growing, _definition: Methods. (line 41)
* Bootability, control, -boot_image: Bootable. (line 65)
* Bugs, reporting: Bugreport. (line 6)
@ -5604,24 +5618,24 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Verify, preset -check_media, -check_media_defaults: Verify. (line 40)
* Write, block size, -dvd_obs: SetWrite. (line 314)
* Write, bootability, -boot_image: Bootable. (line 65)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 358)
* Write, close media, -close: SetWrite. (line 373)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 370)
* Write, close media, -close: SetWrite. (line 385)
* Write, compliance to specs, -compliance: SetWrite. (line 56)
* Write, defect management, -stream_recording: SetWrite. (line 303)
* Write, disable Rock Ridge, -rockridge: SetWrite. (line 51)
* Write, drive buffer, -modesty_on_drive: SetWrite. (line 320)
* Write, enable HFS+, -hfsplus: SetWrite. (line 14)
* Write, enable Joliet, -joliet: SetWrite. (line 10)
* Write, fifo size, -fs: SetWrite. (line 368)
* Write, fifo size, -fs: SetWrite. (line 380)
* Write, free space, -tell_media_space: Inquiry. (line 97)
* Write, log problematic disk files, -errfile_log: Scripting. (line 116)
* Write, log written sessions, -session_log: Scripting. (line 134)
* Write, padding image, -padding: SetWrite. (line 396)
* Write, padding image, -padding: SetWrite. (line 408)
* Write, pending ISO image, -commit: Writing. (line 27)
* Write, predict image size, -print_size: Inquiry. (line 85)
* Write, set speed, -speed: SetWrite. (line 285)
* Write, simulation, -dummy: SetWrite. (line 365)
* Write, TAO or SAO/DAO, -write_type: SetWrite. (line 389)
* Write, simulation, -dummy: SetWrite. (line 377)
* Write, TAO or SAO/DAO, -write_type: SetWrite. (line 401)
* xattr, control handling, -xattr: Loading. (line 178)
* xattr, set in ISO image, -setfattr: Manip. (line 103)
* xattr, set in ISO image, -setfattr_list: Manip. (line 117)
@ -5653,40 +5667,40 @@ Node: CmdFind82395
Node: Filter100698
Node: Writing105320
Node: SetWrite115476
Node: Bootable138520
Node: Jigdo162313
Node: Charset166572
Node: Exception169901
Node: DialogCtl176030
Node: Inquiry178632
Node: Navigate187082
Node: Verify195377
Node: Restore205255
Node: Emulation213868
Node: Scripting224278
Node: Frontend232061
Node: Examples241687
Node: ExDevices242865
Node: ExCreate243526
Node: ExDialog244826
Node: ExGrowing246097
Node: ExModifying246906
Node: ExBootable247416
Node: ExCharset247971
Node: ExPseudo248867
Node: ExCdrecord249794
Node: ExMkisofs250114
Node: ExGrowisofs251471
Node: ExException252625
Node: ExTime253083
Node: ExIncBackup253541
Node: ExRestore257567
Node: ExRecovery258513
Node: Files259085
Node: Seealso260419
Node: Bugreport261134
Node: Legal261725
Node: CommandIdx262737
Node: ConceptIdx279852
Node: Bootable139259
Node: Jigdo163052
Node: Charset167311
Node: Exception170640
Node: DialogCtl176769
Node: Inquiry179371
Node: Navigate187821
Node: Verify196116
Node: Restore205994
Node: Emulation214607
Node: Scripting225017
Node: Frontend232800
Node: Examples242426
Node: ExDevices243604
Node: ExCreate244265
Node: ExDialog245565
Node: ExGrowing246836
Node: ExModifying247645
Node: ExBootable248155
Node: ExCharset248710
Node: ExPseudo249606
Node: ExCdrecord250533
Node: ExMkisofs250853
Node: ExGrowisofs252210
Node: ExException253364
Node: ExTime253822
Node: ExIncBackup254280
Node: ExRestore258306
Node: ExRecovery259252
Node: Files259824
Node: Seealso261158
Node: Bugreport261873
Node: Legal262464
Node: CommandIdx263476
Node: ConceptIdx280664

End Tag Table

16
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.4.5, Jul 20, 2016"
@c man .TH XORRISO 1 "Version 1.4.5, Jul 30, 2016"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -3512,6 +3512,20 @@ Default is:
-modesty_on_drive off:min_percent=90:max_percent=95:
timeout_sec=120:min_usec=5000:max_usec=25000
@c man .TP
@item -use_immed_bit "on"|"off"|"default"
@kindex -use_immed_bit controls use of Immed bit
@cindex Blank, format, Immed bit, -use_immed_bit
Control whether several long lasting SCSI commands shall be executed with the
Immed bit, which makes the commands end early while the drive operation is
still going on. xorriso then inquires progress indication until the drive
reports to be ready again. If this feature is turned off, then blanking and
formatting will show no progress indication.
@*
It may depend on the operating system whether -use_immed_bit is set to "off"
by default. Command -status will tell by appending "/on" or "/off" if a drive
has already been acquired and -use_immed_bit is currently set to "default".
Command -use_immed_bit tolerates and ignores such appended text.
@c man .TP
@item -stdio_sync "on"|"off"|"end"|number
@kindex -stdio_sync controls stdio buffer
@cindex Write, buffer syncing, -stdio_sync

3
xorriso/xorriso_private.h

@ -383,6 +383,9 @@ struct XorrisO { /* the global context of xorriso */
int min_buffer_percent;
int max_buffer_percent;
int use_immed_bit; /* 1= on , 0= default , -1 = off */
int use_immed_bit_default; /* 1= on , 0= yet undefined , -1 = off */
int stdio_sync; /* stdio fsync interval: -1, 0, >=32 */
int stdio_sync_is_default; /* 1= is still default , 0= has been set */

2
xorriso/xorriso_timestamp.h

@ -1 +1 @@
#define Xorriso_timestamP "2016.07.21.103607"
#define Xorriso_timestamP "2016.07.31.073903"

2
xorriso/xorrisoburn.h

@ -624,6 +624,8 @@ int Xorriso_pretend_full_disc(struct XorrisO *xorriso, int flag);
int Xorriso_scsi_dev_family(struct XorrisO *xorriso, int flag);
int Xorriso_use_immed_bit(struct XorrisO *xorriso, int flag);
int Xorriso_apply_sort_file(struct XorrisO *xorriso, char *path, int flag);

Loading…
Cancel
Save