New API calls isoburn_igopt_attach_jte() and isoburn_igopt_detach_jte()

This commit is contained in:
Thomas Schmitt 2010-09-29 09:16:04 +00:00
parent d5583ce58c
commit 538b70068f
6 changed files with 70 additions and 2 deletions

View File

@ -1,3 +1,8 @@
SVN trunk (to become libisoburn-0.6.r4pl00.tar.gz)
===============================================================================
* New API calls isoburn_igopt_attach_jte() and isoburn_igopt_detach_jte()
libisoburn-0.6.2.pl00.tar.gz Sat Sep 18 2010 libisoburn-0.6.2.pl00.tar.gz Sat Sep 18 2010
=============================================================================== ===============================================================================
libisoburn novelties: libisoburn novelties:

View File

@ -437,6 +437,12 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
0, "FAILURE", 0); 0, "FAILURE", 0);
{ret= -2; goto ex;} {ret= -2; goto ex;}
} }
if (state != BURN_DISC_BLANK && opts->libjte_handle != NULL) {
isoburn_msgs_submit(out_o, 0x00060000,
"Jigdo Template Extraction works only on blank target media",
0, "FAILURE", 0);
{ret= -2; goto ex;}
}
fifo_chunks= 32; fifo_chunks= 32;
if(opts->fifo_size >= 64*1024 && opts->fifo_size <= 1024.0 * 1024.0 * 1024.0){ if(opts->fifo_size >= 64*1024 && opts->fifo_size <= 1024.0 * 1024.0 * 1024.0){
@ -496,11 +502,12 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
opts->vol_creation_time, opts->vol_modification_time, opts->vol_creation_time, opts->vol_modification_time,
opts->vol_expiration_time, opts->vol_effective_time, opts->vol_expiration_time, opts->vol_effective_time,
opts->vol_uuid); opts->vol_uuid);
iso_write_opts_attach_jte(wopts, opts->libjte_handle);
ret= isoburn_adjust_target_iso_head(out_o, opts->partition_offset, 0); ret= isoburn_adjust_target_iso_head(out_o, opts->partition_offset, 0);
if(ret <= 0) if(ret <= 0)
{ret= -1; goto ex;} {ret= -1; goto ex;}
if(opts->no_emul_toc) { if(opts->no_emul_toc || opts->libjte_handle != NULL) {
if(out_o->nwa == out_o->zero_nwa && if(out_o->nwa == out_o->zero_nwa &&
out_o->zero_nwa == Libisoburn_overwriteable_starT out_o->zero_nwa == Libisoburn_overwriteable_starT
+ opts->partition_offset + opts->partition_offset
@ -923,6 +930,7 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
o->vol_modification_time= 0; o->vol_modification_time= 0;
o->vol_expiration_time= 0; o->vol_expiration_time= 0;
o->vol_effective_time= 0; o->vol_effective_time= 0;
o->libjte_handle= NULL;
return(1); return(1);
} }
@ -1222,3 +1230,21 @@ int isoburn_igopt_get_part_offset(struct isoburn_imgen_opts *opts,
return 1; return 1;
} }
int isoburn_igopt_attach_jte(struct isoburn_imgen_opts *opts,
void *libjte_handle)
{
opts->libjte_handle = libjte_handle;
return 1;
}
int isoburn_igopt_detach_jte(struct isoburn_imgen_opts *opts,
void **libjte_handle)
{
if(libjte_handle != NULL)
*libjte_handle = opts->libjte_handle;
opts->libjte_handle = NULL;
return 1;
}

View File

@ -545,6 +545,10 @@ struct isoburn_imgen_opts {
/* 1 to 255, 0= disabled/default */ /* 1 to 255, 0= disabled/default */
int partition_heads_per_cyl; int partition_heads_per_cyl;
/* Parameters and state of Jigdo Template Export environment.
*/
void *libjte_handle;
}; };

View File

@ -1295,6 +1295,37 @@ int isoburn_igopt_get_pvd_times(struct isoburn_imgen_opts *opts,
char uuid[17]); char uuid[17]);
/** Associate a libjte environment object to the upcomming write run.
libjte implements Jigdo Template Extraction as of Steve McIntyre and
Richard Atterer.
A non-NULL libjte_handle will cause failure to write if libjte was not
enabled in libisofs at compile time.
@since 0.6.4
@param opts
The option set to work on
@param libjte_handle
Pointer to a struct libjte_env e.g. created by libjte_new().
It must stay existent from the start of image writing by
isoburn_prepare_*() until the write thread has ended.
E.g. until libburn indicates the end of its write run.
@return 1 success, <=0 failure
*/
int isoburn_igopt_attach_jte(struct isoburn_imgen_opts *opts,
void *libjte_handle);
/** Remove eventual association to a libjte environment handle.
@since 0.6.4
@param opts
The option set to work on
@param libjte_handle
If not submitted as NULL, this will return the previously set
libjte handle.
@return 1 success, <=0 failure
*/
int isoburn_igopt_detach_jte(struct isoburn_imgen_opts *opts,
void **libjte_handle);
/* ----------------------------------------------------------------------- */ /* ----------------------------------------------------------------------- */
/* End of Options for image generation */ /* End of Options for image generation */
/* ----------------------------------------------------------------------- */ /* ----------------------------------------------------------------------- */

View File

@ -21,7 +21,9 @@ isoburn_get_attached_image;
isoburn_get_fifo_status; isoburn_get_fifo_status;
isoburn_get_min_start_byte; isoburn_get_min_start_byte;
isoburn_get_mount_params; isoburn_get_mount_params;
isoburn_igopt_attach_jte;
isoburn_igopt_destroy; isoburn_igopt_destroy;
isoburn_igopt_detach_jte;
isoburn_igopt_get_data_start; isoburn_igopt_get_data_start;
isoburn_igopt_get_effective_lba; isoburn_igopt_get_effective_lba;
isoburn_igopt_get_extensions; isoburn_igopt_get_extensions;

View File

@ -1 +1 @@
#define Xorriso_timestamP "2010.09.24.110841" #define Xorriso_timestamP "2010.09.29.091541"