New pseudo extension isoburn_igopt_will_cancel to avoid MISHAP event

This commit is contained in:
Thomas Schmitt 2010-11-24 10:08:56 +00:00
parent 06c84ae7b0
commit da0d20731d
4 changed files with 13 additions and 2 deletions

View File

@ -456,6 +456,7 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
isoburn_report_iso_error(ret, "Cannot create iso_write_opts", 0, "FATAL",0); isoburn_report_iso_error(ret, "Cannot create iso_write_opts", 0, "FATAL",0);
goto ex; goto ex;
} }
iso_write_opts_set_will_cancel(wopts, opts->will_cancel);
iso_write_opts_set_iso_level(wopts, opts->level); iso_write_opts_set_iso_level(wopts, opts->level);
iso_write_opts_set_rockridge(wopts, opts->rockridge); iso_write_opts_set_rockridge(wopts, opts->rockridge);
iso_write_opts_set_joliet(wopts, opts->joliet); iso_write_opts_set_joliet(wopts, opts->joliet);
@ -994,6 +995,7 @@ int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext)
o->session_md5= !!(ext & 64); o->session_md5= !!(ext & 64);
o->file_md5= (ext & (128 | 256)) >> 7; o->file_md5= (ext & (128 | 256)) >> 7;
o->no_emul_toc= !!(ext & 512); o->no_emul_toc= !!(ext & 512);
o->will_cancel= !!(ext & 1024);
return(1); return(1);
} }
@ -1003,7 +1005,7 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext)
*ext= (!!o->rockridge) | ((!!o->joliet)<<1) | ((!!o->iso1999)<<2) | *ext= (!!o->rockridge) | ((!!o->joliet)<<1) | ((!!o->iso1999)<<2) |
((!!o->hardlinks) << 3) | ((!!o->aaip) << 5) | ((!!o->hardlinks) << 3) | ((!!o->aaip) << 5) |
((!!o->session_md5) << 6) | ((o->file_md5 & 3) << 7) | ((!!o->session_md5) << 6) | ((o->file_md5 & 3) << 7) |
((!!o->no_emul_toc) << 9); ((!!o->no_emul_toc) << 9) | ((o->will_cancel) << 10);
return(1); return(1);
} }

View File

@ -345,6 +345,8 @@ struct isoburn_imgen_opts {
/* Options for image generation */ /* Options for image generation */
int will_cancel :1;
int level; /**< ISO level to write at. */ int level; /**< ISO level to write at. */
/** Which extensions to support. */ /** Which extensions to support. */

View File

@ -974,6 +974,12 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level);
the first session to LBA 32 and do not copy the first 64kB the first session to LBA 32 and do not copy the first 64kB
of the first session to LBA 0, but rather write the first of the first session to LBA 0, but rather write the first
session to LBA 0 directly. session to LBA 0 directly.
bit10= will_cancel
@since 0.6.6
Announce to libisofs that only the image size is desired
and that the write thread will be cancelled by
isoburn_cancel_prepared_write() before actual image writing
occurs. Without this, cancellation can cause a MISHAP event.
@return 1 success, <=0 failure @return 1 success, <=0 failure
*/ */
#define isoburn_igopt_rockridge 1 #define isoburn_igopt_rockridge 1
@ -985,6 +991,7 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level);
#define isoburn_igopt_file_md5 128 #define isoburn_igopt_file_md5 128
#define isoburn_igopt_file_stability 256 #define isoburn_igopt_file_stability 256
#define isoburn_igopt_no_emul_toc 512 #define isoburn_igopt_no_emul_toc 512
#define isoburn_igopt_will_cancel 1024
int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext); int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext);
int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext); int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);

View File

@ -1 +1 @@
#define Xorriso_timestamP "2010.11.23.200346" #define Xorriso_timestamP "2010.11.24.100845"