Removed change timestamps of 0.6.17
This commit is contained in:
parent
d87e5721db
commit
3f90111052
@ -1052,7 +1052,7 @@ int ecma119_image_new(IsoImage *src, IsoWriteOpts *opts, Ecma119Image **img)
|
|||||||
continue;
|
continue;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* ts A90228 : exposing address of data start to IsoWriteOpts */
|
/* Exposing address of data start to IsoWriteOpts */
|
||||||
if (i == file_src_writer_index) {
|
if (i == file_src_writer_index) {
|
||||||
opts->data_start_lba = target->curblock;
|
opts->data_start_lba = target->curblock;
|
||||||
}
|
}
|
||||||
|
@ -240,8 +240,6 @@ struct iso_write_opts {
|
|||||||
*/
|
*/
|
||||||
size_t fifo_size;
|
size_t fifo_size;
|
||||||
|
|
||||||
|
|
||||||
/* ts A90228 : exposing address of data start block to the API */
|
|
||||||
/**
|
/**
|
||||||
* This is not an option setting but a value returned after the options
|
* This is not an option setting but a value returned after the options
|
||||||
* were used to compute the layout of the image.
|
* were used to compute the layout of the image.
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2008 Vreixo Formoso
|
* Copyright (c) 2008 Vreixo Formoso
|
||||||
|
* Copyright (c) 2009 Thomas Schmitt
|
||||||
*
|
*
|
||||||
* This file is part of the libisofs project; you can redistribute it and/or
|
* This file is part of the libisofs project; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License version 2 as
|
* modify it under the terms of the GNU General Public License version 2 as
|
||||||
@ -49,7 +50,6 @@ int iso_file_add_filter(IsoFile *file, FilterContext *filter, int flag)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ts A90328 */
|
|
||||||
int iso_file_remove_filter(IsoFile *file, int flag)
|
int iso_file_remove_filter(IsoFile *file, int flag)
|
||||||
{
|
{
|
||||||
IsoStream *file_stream, *input_stream;
|
IsoStream *file_stream, *input_stream;
|
||||||
|
@ -80,7 +80,6 @@ struct iso_read_opts
|
|||||||
*/
|
*/
|
||||||
char *input_charset;
|
char *input_charset;
|
||||||
|
|
||||||
/* ts A90319 */
|
|
||||||
/**
|
/**
|
||||||
* Enable or disable methods to automatically choose an input charset.
|
* Enable or disable methods to automatically choose an input charset.
|
||||||
* This eventually overrides input_charset.
|
* This eventually overrides input_charset.
|
||||||
@ -166,7 +165,6 @@ typedef struct
|
|||||||
char *input_charset; /**< Input charset for RR names */
|
char *input_charset; /**< Input charset for RR names */
|
||||||
char *local_charset; /**< For RR names, will be set to the locale one */
|
char *local_charset; /**< For RR names, will be set to the locale one */
|
||||||
|
|
||||||
/* ts A90319 */
|
|
||||||
/**
|
/**
|
||||||
* Enable or disable methods to automatically choose an input charset.
|
* Enable or disable methods to automatically choose an input charset.
|
||||||
* This eventually overrides input_charset.
|
* This eventually overrides input_charset.
|
||||||
@ -263,7 +261,6 @@ typedef struct
|
|||||||
uint32_t imgblock; /**< Block for El-Torito boot image */
|
uint32_t imgblock; /**< Block for El-Torito boot image */
|
||||||
uint32_t catblock; /**< Block for El-Torito catalog */
|
uint32_t catblock; /**< Block for El-Torito catalog */
|
||||||
|
|
||||||
/* ts A90303 */
|
|
||||||
/* Inode number generator counter */
|
/* Inode number generator counter */
|
||||||
ino_t inode_counter;
|
ino_t inode_counter;
|
||||||
|
|
||||||
@ -1073,7 +1070,6 @@ char *get_name(_ImageFsData *fsdata, const char *str, size_t len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ts A90303 */
|
|
||||||
/**
|
/**
|
||||||
* A global counter for default inode numbers for the ISO image filesystem.
|
* A global counter for default inode numbers for the ISO image filesystem.
|
||||||
* @param fs The filesystem where the number shall be used
|
* @param fs The filesystem where the number shall be used
|
||||||
@ -1102,12 +1098,9 @@ ino_t fs_give_ino_number(IsoImageFilesystem *fs, int flag)
|
|||||||
* @param src
|
* @param src
|
||||||
* if not-NULL, it points to a multi-extent file returned by a previous
|
* if not-NULL, it points to a multi-extent file returned by a previous
|
||||||
* call to this function.
|
* call to this function.
|
||||||
*
|
|
||||||
* ts A90320
|
|
||||||
* @param flag
|
* @param flag
|
||||||
* bit0= this is the root node attribute load call
|
* bit0= this is the root node attribute load call
|
||||||
* (parameter parent is not reliable for this)
|
* (parameter parent is not reliable for this)
|
||||||
*
|
|
||||||
* @return
|
* @return
|
||||||
* 2 node is still incomplete (multi-extent)
|
* 2 node is still incomplete (multi-extent)
|
||||||
* 1 success, 0 record ignored (not an error, can be a relocated dir),
|
* 1 success, 0 record ignored (not an error, can be a relocated dir),
|
||||||
@ -1466,7 +1459,6 @@ int iso_file_source_new_ifs(IsoImageFilesystem *fs, IsoFileSource *parent,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ts A90319 */
|
|
||||||
if ((flag & 1) && aa_string != NULL) {
|
if ((flag & 1) && aa_string != NULL) {
|
||||||
ret = iso_aa_lookup_attr(aa_string, "isofs.cs",
|
ret = iso_aa_lookup_attr(aa_string, "isofs.cs",
|
||||||
&cs_value_length, &cs_value, 0);
|
&cs_value_length, &cs_value, 0);
|
||||||
@ -2468,7 +2460,6 @@ int iso_image_filesystem_new(IsoDataSource *src, struct iso_read_opts *opts,
|
|||||||
ret = ISO_OUT_OF_MEM;
|
ret = ISO_OUT_OF_MEM;
|
||||||
goto fs_cleanup;
|
goto fs_cleanup;
|
||||||
}
|
}
|
||||||
/* ts A90319 */
|
|
||||||
data->auto_input_charset = opts->auto_input_charset;
|
data->auto_input_charset = opts->auto_input_charset;
|
||||||
|
|
||||||
/* and finally return. Note that we keep the DataSource opened */
|
/* and finally return. Note that we keep the DataSource opened */
|
||||||
@ -3332,7 +3323,7 @@ int iso_file_get_old_image_sections(IsoFile *file, int *section_count,
|
|||||||
FSrcStreamData *data;
|
FSrcStreamData *data;
|
||||||
ImageFileSourceData *ifsdata;
|
ImageFileSourceData *ifsdata;
|
||||||
|
|
||||||
/* ts A90328 : Get the most original stream */
|
/* Get the most original stream */
|
||||||
while (1) {
|
while (1) {
|
||||||
input_stream = iso_stream_get_input_stream(stream, 0);
|
input_stream = iso_stream_get_input_stream(stream, 0);
|
||||||
if (input_stream == NULL || input_stream == stream)
|
if (input_stream == NULL || input_stream == stream)
|
||||||
@ -3340,7 +3331,7 @@ int iso_file_get_old_image_sections(IsoFile *file, int *section_count,
|
|||||||
stream = input_stream;
|
stream = input_stream;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ts A90327 : From here on it must be a stream with FSrcStreamData. */
|
/* From here on it must be a stream with FSrcStreamData. */
|
||||||
/* ??? Shall one rather check :
|
/* ??? Shall one rather check :
|
||||||
stream->class == extern IsoStreamIface fsrc_stream_class
|
stream->class == extern IsoStreamIface fsrc_stream_class
|
||||||
(its storage location is global in stream.c)
|
(its storage location is global in stream.c)
|
||||||
|
@ -1711,9 +1711,6 @@ int iso_read_opts_set_default_permissions(IsoReadOpts *opts, mode_t file_perm,
|
|||||||
*/
|
*/
|
||||||
int iso_read_opts_set_input_charset(IsoReadOpts *opts, const char *charset);
|
int iso_read_opts_set_input_charset(IsoReadOpts *opts, const char *charset);
|
||||||
|
|
||||||
|
|
||||||
/* ts A90319 */
|
|
||||||
#define Libisofs_has_auto_input_charseT yes
|
|
||||||
/**
|
/**
|
||||||
* Enable or disable methods to automatically choose an input charset.
|
* Enable or disable methods to automatically choose an input charset.
|
||||||
* This eventually overrides the name set via iso_read_opts_set_input_charset()
|
* This eventually overrides the name set via iso_read_opts_set_input_charset()
|
||||||
@ -4078,7 +4075,6 @@ int iso_stream_update_size(IsoStream *stream);
|
|||||||
void iso_stream_get_id(IsoStream *stream, unsigned int *fs_id, dev_t *dev_id,
|
void iso_stream_get_id(IsoStream *stream, unsigned int *fs_id, dev_t *dev_id,
|
||||||
ino_t *ino_id);
|
ino_t *ino_id);
|
||||||
|
|
||||||
/* ts A90406 */
|
|
||||||
/**
|
/**
|
||||||
* Try to get eventual source path string of a stream. Meaning and availability
|
* Try to get eventual source path string of a stream. Meaning and availability
|
||||||
* of this string depends on the stream.class . Expect valid results with
|
* of this string depends on the stream.class . Expect valid results with
|
||||||
@ -4248,7 +4244,6 @@ int iso_node_get_attrs(IsoNode *node, size_t *num_attrs,
|
|||||||
char ***names, size_t **value_lengths, char ***values, int flag);
|
char ***names, size_t **value_lengths, char ***values, int flag);
|
||||||
|
|
||||||
|
|
||||||
/* ts A90403 */
|
|
||||||
/**
|
/**
|
||||||
* Obtain the value of a particular xattr name. Eventually make a copy of
|
* Obtain the value of a particular xattr name. Eventually make a copy of
|
||||||
* that value and add a trailing 0 byte for caller convenience.
|
* that value and add a trailing 0 byte for caller convenience.
|
||||||
@ -4460,6 +4455,350 @@ int iso_local_set_attrs(char *disk_path, size_t num_attrs, char **names,
|
|||||||
size_t *value_lengths, char **values, int flag);
|
size_t *value_lengths, char **values, int flag);
|
||||||
|
|
||||||
|
|
||||||
|
/* --------------------------- Filters in General -------------------------- */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A filter is an IsoStream which uses another IsoStream as input. It gets
|
||||||
|
* attached to an IsoFile by specialized calls iso_file_add_*_filter() which
|
||||||
|
* replace its current IsoStream by the filter stream which takes over the
|
||||||
|
* current IsoStream as input.
|
||||||
|
* The consequences are:
|
||||||
|
* iso_file_get_stream() will return the filter stream.
|
||||||
|
* iso_stream_get_size() will return the (cached) size of the filtered data,
|
||||||
|
* iso_stream_open() will start eventual child processes,
|
||||||
|
* iso_stream_close() will kill eventual child processes,
|
||||||
|
* iso_stream_read() will return filtered data. E.g. as data file content
|
||||||
|
* during ISO image generation.
|
||||||
|
*
|
||||||
|
* There are external filters which run child processes
|
||||||
|
* iso_file_add_external_filter()
|
||||||
|
* and internal filters
|
||||||
|
* iso_file_add_zisofs_filter()
|
||||||
|
* iso_file_add_gzip_filter()
|
||||||
|
* which may or may not be available depending on compile time settings and
|
||||||
|
* installed software packages like libz.
|
||||||
|
*
|
||||||
|
* During image generation filters get not in effect if the original IsoStream
|
||||||
|
* is an "fsrc" stream based on a file in the loaded ISO image and if the
|
||||||
|
* image generation type is set to 1 by iso_write_opts_set_appendable().
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete the top filter stream from a data file. This is the most recent one
|
||||||
|
* which was added by iso_file_add_*_filter().
|
||||||
|
* Caution: One should not do this while the IsoStream of the file is opened.
|
||||||
|
* For now there is no general way to determine this state.
|
||||||
|
* Filter stream implementations are urged to eventually call .close()
|
||||||
|
* inside method .free() . This will close the input stream too.
|
||||||
|
* @param file
|
||||||
|
* The data file node which shall get rid of one layer of content
|
||||||
|
* filtering.
|
||||||
|
* @param flag
|
||||||
|
* Bitfield for control purposes, unused yet, submit 0.
|
||||||
|
* @return
|
||||||
|
* 1 on success, 0 if no filter was present
|
||||||
|
* <0 on error
|
||||||
|
*
|
||||||
|
* @since 0.6.18
|
||||||
|
*/
|
||||||
|
int iso_file_remove_filter(IsoFile *file, int flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain the eventual input stream of a filter stream.
|
||||||
|
* @param stream
|
||||||
|
* The eventual filter stream to be inquired.
|
||||||
|
* @param flag
|
||||||
|
* Bitfield for control purposes. Submit 0 for now.
|
||||||
|
* @return
|
||||||
|
* The input stream, if one exists. Elsewise NULL.
|
||||||
|
* No extra reference to the stream is taken by this call.
|
||||||
|
*
|
||||||
|
* @since 0.6.18
|
||||||
|
*/
|
||||||
|
IsoStream *iso_stream_get_input_stream(IsoStream *stream, int flag);
|
||||||
|
|
||||||
|
|
||||||
|
/* ---------------------------- External Filters --------------------------- */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Representation of an external program that shall serve as filter for
|
||||||
|
* an IsoStream. This object may be shared among many IsoStream objects.
|
||||||
|
* It is to be created and disposed by the application.
|
||||||
|
*
|
||||||
|
* The filter will act as proxy between the original IsoStream of an IsoFile.
|
||||||
|
* Up to completed image generation it will be run at least twice:
|
||||||
|
* for IsoStream.class.get_size() and for .open() with subsequent .read().
|
||||||
|
* So the original IsoStream has to return 1 by its .class.is_repeatable().
|
||||||
|
* The filter program has to be repeateable too. I.e. it must produce the same
|
||||||
|
* output on the same input.
|
||||||
|
*
|
||||||
|
* @since 0.6.18
|
||||||
|
*/
|
||||||
|
struct iso_external_filter_command
|
||||||
|
{
|
||||||
|
/* Will indicate future extensions. It has to be 0 for now. */
|
||||||
|
int version;
|
||||||
|
|
||||||
|
/* Tells how many IsoStream objects depend on this command object.
|
||||||
|
* One may only dispose an IsoExternalFilterCommand when this count is 0.
|
||||||
|
* Initially this value has to be 0.
|
||||||
|
*/
|
||||||
|
int refcount;
|
||||||
|
|
||||||
|
/* An optional instance id.
|
||||||
|
* Set to empty text if no individual name for this object is intended.
|
||||||
|
*/
|
||||||
|
char *name;
|
||||||
|
|
||||||
|
/* Absolute local filesystem path to the executable program. */
|
||||||
|
char *path;
|
||||||
|
|
||||||
|
/* Tells the number of arguments. */
|
||||||
|
int argc;
|
||||||
|
|
||||||
|
/* NULL terminated list suitable for system call execv(3).
|
||||||
|
* I.e. argv[0] points to the alleged program name,
|
||||||
|
* argv[1] to argv[argc] point to program arguments (if argc > 0)
|
||||||
|
* argv[argc+1] is NULL
|
||||||
|
*/
|
||||||
|
char **argv;
|
||||||
|
|
||||||
|
/* A bit field which controls behavior variations:
|
||||||
|
* bit0= Do not install filter if the input has size 0.
|
||||||
|
* bit1= Do not install filter if the output is not smaller than the input.
|
||||||
|
* bit2= Do not install filter if the number of output blocks is
|
||||||
|
* not smaller than the number of input blocks. Block size is 2048.
|
||||||
|
* Assume that non-empty input yields non-empty output and thus do
|
||||||
|
* not attempt to attach a filter to files smaller than 2049 bytes.
|
||||||
|
* bit3= suffix removed rather than added.
|
||||||
|
* (Removal and adding suffixes is the task of the application.
|
||||||
|
* This behavior bit serves only as reminder for the application.)
|
||||||
|
*/
|
||||||
|
int behavior;
|
||||||
|
|
||||||
|
/* The eventual suffix which is supposed to be added to the IsoFile name
|
||||||
|
* resp. to be removed from the name.
|
||||||
|
* (This is to be done by the application, not by calls
|
||||||
|
* iso_file_add_external_filter() or iso_file_remove_filter().
|
||||||
|
* The value recorded here serves only as reminder for the application.)
|
||||||
|
*/
|
||||||
|
char *suffix;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct iso_external_filter_command IsoExternalFilterCommand;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Install an external filter command on top of the content stream of a data
|
||||||
|
* file. The filter process must be repeatable. It will be run once by this
|
||||||
|
* call in order to cache the output size.
|
||||||
|
* @param file
|
||||||
|
* The data file node which shall show filtered content.
|
||||||
|
* @param cmd
|
||||||
|
* The external program and its arguments which shall do the filtering.
|
||||||
|
* @param flag
|
||||||
|
* Bitfield for control purposes, unused yet, submit 0.
|
||||||
|
* @return
|
||||||
|
* 1 on success, 2 if filter installation revoked (e.g. cmd.behavior bit1)
|
||||||
|
* <0 on error
|
||||||
|
*
|
||||||
|
* @since 0.6.18
|
||||||
|
*/
|
||||||
|
int iso_file_add_external_filter(IsoFile *file, IsoExternalFilterCommand *cmd,
|
||||||
|
int flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain the IsoExternalFilterCommand which is eventually associated with the
|
||||||
|
* given stream. (Typically obtained from an IsoFile by iso_file_get_stream()
|
||||||
|
* or from an IsoStream by iso_stream_get_input_stream()).
|
||||||
|
* @param stream
|
||||||
|
* The stream to be inquired.
|
||||||
|
* @param cmd
|
||||||
|
* Will return the external IsoExternalFilterCommand. Valid only if
|
||||||
|
* the call returns 1. This does not increment cmd->refcount.
|
||||||
|
* @param flag
|
||||||
|
* Bitfield for control purposes, unused yet, submit 0.
|
||||||
|
* @return
|
||||||
|
* 1 on success, 0 if the stream is not an external filter
|
||||||
|
* <0 on error
|
||||||
|
*
|
||||||
|
* @since 0.6.18
|
||||||
|
*/
|
||||||
|
int iso_stream_get_external_filter(IsoStream *stream,
|
||||||
|
IsoExternalFilterCommand **cmd, int flag);
|
||||||
|
|
||||||
|
|
||||||
|
/* ---------------------------- Internal Filters --------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Install a zisofs filter on top of the content stream of a data file.
|
||||||
|
* zisofs is a compression format which is decompressed by some Linux kernels.
|
||||||
|
* See also doc/zisofs_format.txt .
|
||||||
|
* The filter will not be installed if its output size is not smaller than
|
||||||
|
* the size of the input stream.
|
||||||
|
* This is only enabled if the use of libz was enabled at compile time.
|
||||||
|
* @param file
|
||||||
|
* The data file node which shall show filtered content.
|
||||||
|
* @param flag
|
||||||
|
* Bitfield for control purposes
|
||||||
|
* bit0= Do not install filter if the number of output blocks is
|
||||||
|
* not smaller than the number of input blocks. Block size is 2048.
|
||||||
|
* bit1= Install a decompression filter rather than one for compression.
|
||||||
|
* bit2= Only inquire availability of zisofs filtering. file may be NULL.
|
||||||
|
* If available return 2, else return error.
|
||||||
|
* bit3= is reserved for internal use and will be forced to 0
|
||||||
|
* @return
|
||||||
|
* 1 on success, 2 if filter available but installation revoked
|
||||||
|
* <0 on error, e.g. ISO_ZLIB_NOT_ENABLED
|
||||||
|
*
|
||||||
|
* @since 0.6.18
|
||||||
|
*/
|
||||||
|
int iso_file_add_zisofs_filter(IsoFile *file, int flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inquire the number of zisofs compression and uncompression filters which
|
||||||
|
* are in use.
|
||||||
|
* @param ziso_count
|
||||||
|
* Will return the number of currently installed compression filters.
|
||||||
|
* @param osiz_count
|
||||||
|
* Will return the number of currently installed uncompression filters.
|
||||||
|
* @param flag
|
||||||
|
* Bitfield for control purposes, unused yet, submit 0
|
||||||
|
* @return
|
||||||
|
* 1 on success, <0 on error
|
||||||
|
*
|
||||||
|
* @since 0.6.18
|
||||||
|
*/
|
||||||
|
int iso_zisofs_get_refcounts(off_t *ziso_count, off_t *osiz_count, int flag);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parameter set for iso_zisofs_set_params().
|
||||||
|
*
|
||||||
|
* @since 0.6.18
|
||||||
|
*/
|
||||||
|
struct iso_zisofs_ctrl {
|
||||||
|
|
||||||
|
/* Set to 0 for this version of the structure */
|
||||||
|
int version;
|
||||||
|
|
||||||
|
/* Compression level for zlib function compress2(). From <zlib.h>:
|
||||||
|
* "between 0 and 9:
|
||||||
|
* 1 gives best speed, 9 gives best compression, 0 gives no compression"
|
||||||
|
* Default is 6.
|
||||||
|
*/
|
||||||
|
int compression_level;
|
||||||
|
|
||||||
|
/* Log2 of the block size for compression filters. Allowed values are:
|
||||||
|
* 15 = 32 kiB , 16 = 64 kiB , 17 = 128 kiB
|
||||||
|
*/
|
||||||
|
uint8_t block_size_log2;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the global parameters for zisofs filtering.
|
||||||
|
* This is only allowed while no zisofs compression filters are installed.
|
||||||
|
* i.e. ziso_count returned by iso_zisofs_get_refcounts() has to be 0.
|
||||||
|
* @param params
|
||||||
|
* Pointer to a structure with the intended settings.
|
||||||
|
* @param flag
|
||||||
|
* Bitfield for control purposes, unused yet, submit 0
|
||||||
|
* @return
|
||||||
|
* 1 on success, <0 on error
|
||||||
|
*
|
||||||
|
* @since 0.6.18
|
||||||
|
*/
|
||||||
|
int iso_zisofs_set_params(struct iso_zisofs_ctrl *params, int flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current global parameters for zisofs filtering.
|
||||||
|
* @param params
|
||||||
|
* Pointer to a caller provided structure which shall take the settings.
|
||||||
|
* @param flag
|
||||||
|
* Bitfield for control purposes, unused yet, submit 0
|
||||||
|
* @return
|
||||||
|
* 1 on success, <0 on error
|
||||||
|
*
|
||||||
|
* @since 0.6.18
|
||||||
|
*/
|
||||||
|
int iso_zisofs_get_params(struct iso_zisofs_ctrl *params, int flag);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check for the given node or for its subtree whether the data file content
|
||||||
|
* effectively bears zisofs file headers and eventually mark the outcome
|
||||||
|
* by an xinfo data record if not already marked by a zisofs compressor filter.
|
||||||
|
* This does not install any filter but only a hint for image generation
|
||||||
|
* that the already compressed files shall get written with zisofs ZF entries.
|
||||||
|
* Use this if you insert the compressed reults of program mkzftree from disk
|
||||||
|
* into the image.
|
||||||
|
* @param node
|
||||||
|
* The node which shall be checked and eventually marked.
|
||||||
|
* @param flag
|
||||||
|
* Bitfield for control purposes, unused yet, submit 0
|
||||||
|
* bit0= prepare for a run with iso_write_opts_set_appendable(,1).
|
||||||
|
* Take into account that files from the imported image
|
||||||
|
* do not get their content filtered.
|
||||||
|
* bit1= permission to overwrite existing zisofs_zf_info
|
||||||
|
* bit2= if no zisofs header is found:
|
||||||
|
* create xinfo with parameters which indicate no zisofs
|
||||||
|
* bit3= no tree recursion if node is a directory
|
||||||
|
* bit4= skip files which stem from the imported image
|
||||||
|
* @return
|
||||||
|
* 0= no zisofs data found
|
||||||
|
* 1= zf xinfo added
|
||||||
|
* 2= found existing zf xinfo and flag bit1 was not set
|
||||||
|
* 3= both encountered: 1 and 2
|
||||||
|
* <0 means error
|
||||||
|
*
|
||||||
|
* @since 0.6.18
|
||||||
|
*/
|
||||||
|
int iso_node_zf_by_magic(IsoNode *node, int flag);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Install a gzip or gunzip filter on top of the content stream of a data file.
|
||||||
|
* gzip is a compression format which is used by programs gzip and gunzip.
|
||||||
|
* The filter will not be installed if its output size is not smaller than
|
||||||
|
* the size of the input stream.
|
||||||
|
* This is only enabled if the use of libz was enabled at compile time.
|
||||||
|
* @param file
|
||||||
|
* The data file node which shall show filtered content.
|
||||||
|
* @param flag
|
||||||
|
* Bitfield for control purposes
|
||||||
|
* bit0= Do not install filter if the number of output blocks is
|
||||||
|
* not smaller than the number of input blocks. Block size is 2048.
|
||||||
|
* bit1= Install a decompression filter rather than one for compression.
|
||||||
|
* bit2= Only inquire availability of gzip filtering. file may be NULL.
|
||||||
|
* If available return 2, else return error.
|
||||||
|
* bit3= is reserved for internal use and will be forced to 0
|
||||||
|
* @return
|
||||||
|
* 1 on success, 2 if filter available but installation revoked
|
||||||
|
* <0 on error, e.g. ISO_ZLIB_NOT_ENABLED
|
||||||
|
*
|
||||||
|
* @since 0.6.18
|
||||||
|
*/
|
||||||
|
int iso_file_add_gzip_filter(IsoFile *file, int flag);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inquire the number of gzip compression and uncompression filters which
|
||||||
|
* are in use.
|
||||||
|
* @param gzip_count
|
||||||
|
* Will return the number of currently installed compression filters.
|
||||||
|
* @param gunzip_count
|
||||||
|
* Will return the number of currently installed uncompression filters.
|
||||||
|
* @param flag
|
||||||
|
* Bitfield for control purposes, unused yet, submit 0
|
||||||
|
* @return
|
||||||
|
* 1 on success, <0 on error
|
||||||
|
*
|
||||||
|
* @since 0.6.18
|
||||||
|
*/
|
||||||
|
int iso_gzip_get_refcounts(off_t *gzip_count, off_t *gunzip_count, int flag);
|
||||||
|
|
||||||
|
|
||||||
/************ Error codes and return values for libisofs ********************/
|
/************ Error codes and return values for libisofs ********************/
|
||||||
|
|
||||||
/** successfully execution */
|
/** successfully execution */
|
||||||
@ -4699,396 +5038,34 @@ int iso_local_set_attrs(char *disk_path, size_t num_attrs, char **names,
|
|||||||
(FAILURE, HIGH, -343) */
|
(FAILURE, HIGH, -343) */
|
||||||
#define ISO_AAIP_NON_USER_NAME 0xE830FEA9
|
#define ISO_AAIP_NON_USER_NAME 0xE830FEA9
|
||||||
|
|
||||||
/* ts A90325 */
|
|
||||||
/** Too many references on a single IsoExternalFilterCommand
|
/** Too many references on a single IsoExternalFilterCommand
|
||||||
(FAILURE, HIGH, -344) */
|
(FAILURE, HIGH, -344) */
|
||||||
#define ISO_EXTF_TOO_OFTEN 0xE830FEA8
|
#define ISO_EXTF_TOO_OFTEN 0xE830FEA8
|
||||||
|
|
||||||
/* ts A90409 */
|
|
||||||
/** Use of zlib was not enabled at compile time (FAILURE, HIGH, -345) */
|
/** Use of zlib was not enabled at compile time (FAILURE, HIGH, -345) */
|
||||||
#define ISO_ZLIB_NOT_ENABLED 0xE830FEA7
|
#define ISO_ZLIB_NOT_ENABLED 0xE830FEA7
|
||||||
|
|
||||||
/* ts A90409 */
|
|
||||||
/** Cannot apply zisofs filter to file >= 4 GiB (FAILURE, HIGH, -346) */
|
/** Cannot apply zisofs filter to file >= 4 GiB (FAILURE, HIGH, -346) */
|
||||||
#define ISO_ZISOFS_TOO_LARGE 0xE830FEA6
|
#define ISO_ZISOFS_TOO_LARGE 0xE830FEA6
|
||||||
|
|
||||||
/* ts A90409 */
|
|
||||||
/** Filter input differs from previous run (FAILURE, HIGH, -347) */
|
/** Filter input differs from previous run (FAILURE, HIGH, -347) */
|
||||||
#define ISO_FILTER_WRONG_INPUT 0xE830FEA5
|
#define ISO_FILTER_WRONG_INPUT 0xE830FEA5
|
||||||
|
|
||||||
/* ts A90409 */
|
|
||||||
/** zlib compression/decompression error (FAILURE, HIGH, -348) */
|
/** zlib compression/decompression error (FAILURE, HIGH, -348) */
|
||||||
#define ISO_ZLIB_COMPR_ERR 0xE830FEA4
|
#define ISO_ZLIB_COMPR_ERR 0xE830FEA4
|
||||||
|
|
||||||
/* ts A90409 */
|
|
||||||
/** Input stream is not in zisofs format (FAILURE, HIGH, -349) */
|
/** Input stream is not in zisofs format (FAILURE, HIGH, -349) */
|
||||||
#define ISO_ZISOFS_WRONG_INPUT 0xE830FEA3
|
#define ISO_ZISOFS_WRONG_INPUT 0xE830FEA3
|
||||||
|
|
||||||
/* ts A90411 */
|
|
||||||
/** Cannot set global zisofs parameters while filters exist
|
/** Cannot set global zisofs parameters while filters exist
|
||||||
(FAILURE, HIGH, -350) */
|
(FAILURE, HIGH, -350) */
|
||||||
#define ISO_ZISOFS_PARAM_LOCK 0xE830FEA2
|
#define ISO_ZISOFS_PARAM_LOCK 0xE830FEA2
|
||||||
|
|
||||||
/* ts A90415 */
|
|
||||||
/** Premature EOF of zlib input stream (FAILURE, HIGH, -351) */
|
/** Premature EOF of zlib input stream (FAILURE, HIGH, -351) */
|
||||||
#define ISO_ZLIB_EARLY_EOF 0xE830FEA1
|
#define ISO_ZLIB_EARLY_EOF 0xE830FEA1
|
||||||
|
|
||||||
|
|
||||||
/* --------------------------- Filters in General -------------------------- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* A filter is an IsoStream which uses another IsoStream as input. It gets
|
|
||||||
* attached to an IsoFile by specialized calls iso_file_add_*_filter() which
|
|
||||||
* replace its current IsoStream by the filter stream which takes over the
|
|
||||||
* current IsoStream as input.
|
|
||||||
* The consequences are:
|
|
||||||
* iso_file_get_stream() will return the filter stream.
|
|
||||||
* iso_stream_get_size() will return the (cached) size of the filtered data,
|
|
||||||
* iso_stream_open() will start eventual child processes,
|
|
||||||
* iso_stream_close() will kill eventual child processes,
|
|
||||||
* iso_stream_read() will return filtered data. E.g. as data file content
|
|
||||||
* during ISO image generation.
|
|
||||||
*
|
|
||||||
* There are external filters which run child processes
|
|
||||||
* iso_file_add_external_filter()
|
|
||||||
* and internal filters
|
|
||||||
* iso_file_add_zisofs_filter()
|
|
||||||
* iso_file_add_gzip_filter()
|
|
||||||
* which may or may not be available depending on compile time settings and
|
|
||||||
* installed software packages like libz.
|
|
||||||
*
|
|
||||||
* During image generation filters get not in effect if the original IsoStream
|
|
||||||
* is an "fsrc" stream based on a file in the loaded ISO image and if the
|
|
||||||
* image generation type is set to 1 by iso_write_opts_set_appendable().
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* ts A90328 */
|
|
||||||
/**
|
|
||||||
* Delete the top filter stream from a data file. This is the most recent one
|
|
||||||
* which was added by iso_file_add_*_filter().
|
|
||||||
* Caution: One should not do this while the IsoStream of the file is opened.
|
|
||||||
* For now there is no general way to determine this state.
|
|
||||||
* Filter stream implementations are urged to eventually call .close()
|
|
||||||
* inside method .free() . This will close the input stream too.
|
|
||||||
* @param file
|
|
||||||
* The data file node which shall get rid of one layer of content
|
|
||||||
* filtering.
|
|
||||||
* @param flag
|
|
||||||
* Bitfield for control purposes, unused yet, submit 0.
|
|
||||||
* @return
|
|
||||||
* 1 on success, 0 if no filter was present
|
|
||||||
* <0 on error
|
|
||||||
*
|
|
||||||
* @since 0.6.18
|
|
||||||
*/
|
|
||||||
int iso_file_remove_filter(IsoFile *file, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/* ts A90328 */
|
|
||||||
/**
|
|
||||||
* Obtain the eventual input stream of a filter stream.
|
|
||||||
* @param stream
|
|
||||||
* The eventual filter stream to be inquired.
|
|
||||||
* @param flag
|
|
||||||
* Bitfield for control purposes. Submit 0 for now.
|
|
||||||
* @return
|
|
||||||
* The input stream, if one exists. Elsewise NULL.
|
|
||||||
* No extra reference to the stream is taken by this call.
|
|
||||||
*
|
|
||||||
* @since 0.6.18
|
|
||||||
*/
|
|
||||||
IsoStream *iso_stream_get_input_stream(IsoStream *stream, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/* ---------------------------- External Filters --------------------------- */
|
|
||||||
|
|
||||||
/* ts A90325 */
|
|
||||||
/**
|
|
||||||
* Representation of an external program that shall serve as filter for
|
|
||||||
* an IsoStream. This object may be shared among many IsoStream objects.
|
|
||||||
* It is to be created and disposed by the application.
|
|
||||||
*
|
|
||||||
* The filter will act as proxy between the original IsoStream of an IsoFile.
|
|
||||||
* Up to completed image generation it will be run at least twice:
|
|
||||||
* for IsoStream.class.get_size() and for .open() with subsequent .read().
|
|
||||||
* So the original IsoStream has to return 1 by its .class.is_repeatable().
|
|
||||||
* The filter program has to be repeateable too. I.e. it must produce the same
|
|
||||||
* output on the same input.
|
|
||||||
*
|
|
||||||
* @since 0.6.18
|
|
||||||
*/
|
|
||||||
struct iso_external_filter_command
|
|
||||||
{
|
|
||||||
/* Will indicate future extensions. It has to be 0 for now. */
|
|
||||||
int version;
|
|
||||||
|
|
||||||
/* Tells how many IsoStream objects depend on this command object.
|
|
||||||
* One may only dispose an IsoExternalFilterCommand when this count is 0.
|
|
||||||
* Initially this value has to be 0.
|
|
||||||
*/
|
|
||||||
int refcount;
|
|
||||||
|
|
||||||
/* An optional instance id.
|
|
||||||
* Set to empty text if no individual name for this object is intended.
|
|
||||||
*/
|
|
||||||
char *name;
|
|
||||||
|
|
||||||
/* Absolute local filesystem path to the executable program. */
|
|
||||||
char *path;
|
|
||||||
|
|
||||||
/* Tells the number of arguments. */
|
|
||||||
int argc;
|
|
||||||
|
|
||||||
/* NULL terminated list suitable for system call execv(3).
|
|
||||||
* I.e. argv[0] points to the alleged program name,
|
|
||||||
* argv[1] to argv[argc] point to program arguments (if argc > 0)
|
|
||||||
* argv[argc+1] is NULL
|
|
||||||
*/
|
|
||||||
char **argv;
|
|
||||||
|
|
||||||
/* A bit field which controls behavior variations:
|
|
||||||
* bit0= Do not install filter if the input has size 0.
|
|
||||||
* bit1= Do not install filter if the output is not smaller than the input.
|
|
||||||
* bit2= Do not install filter if the number of output blocks is
|
|
||||||
* not smaller than the number of input blocks. Block size is 2048.
|
|
||||||
* Assume that non-empty input yields non-empty output and thus do
|
|
||||||
* not attempt to attach a filter to files smaller than 2049 bytes.
|
|
||||||
* bit3= suffix removed rather than added.
|
|
||||||
* (Removal and adding suffixes is the task of the application.
|
|
||||||
* This behavior bit serves only as reminder for the application.)
|
|
||||||
*/
|
|
||||||
int behavior;
|
|
||||||
|
|
||||||
/* The eventual suffix which is supposed to be added to the IsoFile name
|
|
||||||
* resp. to be removed from the name.
|
|
||||||
* (This is to be done by the application, not by calls
|
|
||||||
* iso_file_add_external_filter() or iso_file_remove_filter().
|
|
||||||
* The value recorded here serves only as reminder for the application.)
|
|
||||||
*/
|
|
||||||
char *suffix;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct iso_external_filter_command IsoExternalFilterCommand;
|
|
||||||
|
|
||||||
/* ts A90326 */
|
|
||||||
/**
|
|
||||||
* Install an external filter command on top of the content stream of a data
|
|
||||||
* file. The filter process must be repeatable. It will be run once by this
|
|
||||||
* call in order to cache the output size.
|
|
||||||
* @param file
|
|
||||||
* The data file node which shall show filtered content.
|
|
||||||
* @param cmd
|
|
||||||
* The external program and its arguments which shall do the filtering.
|
|
||||||
* @param flag
|
|
||||||
* Bitfield for control purposes, unused yet, submit 0.
|
|
||||||
* @return
|
|
||||||
* 1 on success, 2 if filter installation revoked (e.g. cmd.behavior bit1)
|
|
||||||
* <0 on error
|
|
||||||
*
|
|
||||||
* @since 0.6.18
|
|
||||||
*/
|
|
||||||
int iso_file_add_external_filter(IsoFile *file, IsoExternalFilterCommand *cmd,
|
|
||||||
int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/* ts A90402 */
|
|
||||||
/**
|
|
||||||
* Obtain the IsoExternalFilterCommand which is eventually associated with the
|
|
||||||
* given stream. (Typically obtained from an IsoFile by iso_file_get_stream()
|
|
||||||
* or from an IsoStream by iso_stream_get_input_stream()).
|
|
||||||
* @param stream
|
|
||||||
* The stream to be inquired.
|
|
||||||
* @param cmd
|
|
||||||
* Will return the external IsoExternalFilterCommand. Valid only if
|
|
||||||
* the call returns 1. This does not increment cmd->refcount.
|
|
||||||
* @param flag
|
|
||||||
* Bitfield for control purposes, unused yet, submit 0.
|
|
||||||
* @return
|
|
||||||
* 1 on success, 0 if the stream is not an external filter
|
|
||||||
* <0 on error
|
|
||||||
*
|
|
||||||
* @since 0.6.18
|
|
||||||
*/
|
|
||||||
int iso_stream_get_external_filter(IsoStream *stream,
|
|
||||||
IsoExternalFilterCommand **cmd, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/* ---------------------------- Internal Filters --------------------------- */
|
|
||||||
|
|
||||||
|
|
||||||
/* ts A90409 */
|
|
||||||
/**
|
|
||||||
* Install a zisofs filter on top of the content stream of a data file.
|
|
||||||
* zisofs is a compression format which is decompressed by some Linux kernels.
|
|
||||||
* See also doc/zisofs_format.txt .
|
|
||||||
* The filter will not be installed if its output size is not smaller than
|
|
||||||
* the size of the input stream.
|
|
||||||
* This is only enabled if the use of libz was enabled at compile time.
|
|
||||||
* @param file
|
|
||||||
* The data file node which shall show filtered content.
|
|
||||||
* @param flag
|
|
||||||
* Bitfield for control purposes
|
|
||||||
* bit0= Do not install filter if the number of output blocks is
|
|
||||||
* not smaller than the number of input blocks. Block size is 2048.
|
|
||||||
* bit1= Install a decompression filter rather than one for compression.
|
|
||||||
* bit2= Only inquire availability of zisofs filtering. file may be NULL.
|
|
||||||
* If available return 2, else return error.
|
|
||||||
* bit3= is reserved for internal use and will be forced to 0
|
|
||||||
* @return
|
|
||||||
* 1 on success, 2 if filter available but installation revoked
|
|
||||||
* <0 on error, e.g. ISO_ZLIB_NOT_ENABLED
|
|
||||||
*
|
|
||||||
* @since 0.6.18
|
|
||||||
*/
|
|
||||||
int iso_file_add_zisofs_filter(IsoFile *file, int flag);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Inquire the number of zisofs compression and uncompression filters which
|
|
||||||
* are in use.
|
|
||||||
* @param ziso_count
|
|
||||||
* Will return the number of currently installed compression filters.
|
|
||||||
* @param osiz_count
|
|
||||||
* Will return the number of currently installed uncompression filters.
|
|
||||||
* @param flag
|
|
||||||
* Bitfield for control purposes, unused yet, submit 0
|
|
||||||
* @return
|
|
||||||
* 1 on success, <0 on error
|
|
||||||
*
|
|
||||||
* @since 0.6.18
|
|
||||||
*/
|
|
||||||
int iso_zisofs_get_refcounts(off_t *ziso_count, off_t *osiz_count, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parameter set for iso_zisofs_set_params().
|
|
||||||
*
|
|
||||||
* @since 0.6.18
|
|
||||||
*/
|
|
||||||
struct iso_zisofs_ctrl {
|
|
||||||
|
|
||||||
/* Set to 0 for this version of the structure */
|
|
||||||
int version;
|
|
||||||
|
|
||||||
/* Compression level for zlib function compress2(). From <zlib.h>:
|
|
||||||
* "between 0 and 9:
|
|
||||||
* 1 gives best speed, 9 gives best compression, 0 gives no compression"
|
|
||||||
* Default is 6.
|
|
||||||
*/
|
|
||||||
int compression_level;
|
|
||||||
|
|
||||||
/* Log2 of the block size for compression filters. Allowed values are:
|
|
||||||
* 15 = 32 kiB , 16 = 64 kiB , 17 = 128 kiB
|
|
||||||
*/
|
|
||||||
uint8_t block_size_log2;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the global parameters for zisofs filtering.
|
|
||||||
* This is only allowed while no zisofs compression filters are installed.
|
|
||||||
* i.e. ziso_count returned by iso_zisofs_get_refcounts() has to be 0.
|
|
||||||
* @param params
|
|
||||||
* Pointer to a structure with the intended settings.
|
|
||||||
* @param flag
|
|
||||||
* Bitfield for control purposes, unused yet, submit 0
|
|
||||||
* @return
|
|
||||||
* 1 on success, <0 on error
|
|
||||||
*
|
|
||||||
* @since 0.6.18
|
|
||||||
*/
|
|
||||||
int iso_zisofs_set_params(struct iso_zisofs_ctrl *params, int flag);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the current global parameters for zisofs filtering.
|
|
||||||
* @param params
|
|
||||||
* Pointer to a caller provided structure which shall take the settings.
|
|
||||||
* @param flag
|
|
||||||
* Bitfield for control purposes, unused yet, submit 0
|
|
||||||
* @return
|
|
||||||
* 1 on success, <0 on error
|
|
||||||
*
|
|
||||||
* @since 0.6.18
|
|
||||||
*/
|
|
||||||
int iso_zisofs_get_params(struct iso_zisofs_ctrl *params, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/* ts A90413 */
|
|
||||||
/**
|
|
||||||
* Check for the given node or for its subtree whether the data file content
|
|
||||||
* effectively bears zisofs file headers and eventually mark the outcome
|
|
||||||
* by an xinfo data record if not already marked by a zisofs compressor filter.
|
|
||||||
* This does not install any filter but only a hint for image generation
|
|
||||||
* that the already compressed files shall get written with zisofs ZF entries.
|
|
||||||
* Use this if you insert the compressed reults of program mkzftree from disk
|
|
||||||
* into the image.
|
|
||||||
* @param node
|
|
||||||
* The node which shall be checked and eventually marked.
|
|
||||||
* @param flag
|
|
||||||
* Bitfield for control purposes, unused yet, submit 0
|
|
||||||
* bit0= prepare for a run with iso_write_opts_set_appendable(,1).
|
|
||||||
* Take into account that files from the imported image
|
|
||||||
* do not get their content filtered.
|
|
||||||
* bit1= permission to overwrite existing zisofs_zf_info
|
|
||||||
* bit2= if no zisofs header is found:
|
|
||||||
* create xinfo with parameters which indicate no zisofs
|
|
||||||
* bit3= no tree recursion if node is a directory
|
|
||||||
* bit4= skip files which stem from the imported image
|
|
||||||
* @return
|
|
||||||
* 0= no zisofs data found
|
|
||||||
* 1= zf xinfo added
|
|
||||||
* 2= found existing zf xinfo and flag bit1 was not set
|
|
||||||
* 3= both encountered: 1 and 2
|
|
||||||
* <0 means error
|
|
||||||
*
|
|
||||||
* @since 0.6.18
|
|
||||||
*/
|
|
||||||
int iso_node_zf_by_magic(IsoNode *node, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/* ts A90414 */
|
|
||||||
/**
|
|
||||||
* Install a gzip or gunzip filter on top of the content stream of a data file.
|
|
||||||
* gzip is a compression format which is used by programs gzip and gunzip.
|
|
||||||
* The filter will not be installed if its output size is not smaller than
|
|
||||||
* the size of the input stream.
|
|
||||||
* This is only enabled if the use of libz was enabled at compile time.
|
|
||||||
* @param file
|
|
||||||
* The data file node which shall show filtered content.
|
|
||||||
* @param flag
|
|
||||||
* Bitfield for control purposes
|
|
||||||
* bit0= Do not install filter if the number of output blocks is
|
|
||||||
* not smaller than the number of input blocks. Block size is 2048.
|
|
||||||
* bit1= Install a decompression filter rather than one for compression.
|
|
||||||
* bit2= Only inquire availability of gzip filtering. file may be NULL.
|
|
||||||
* If available return 2, else return error.
|
|
||||||
* bit3= is reserved for internal use and will be forced to 0
|
|
||||||
* @return
|
|
||||||
* 1 on success, 2 if filter available but installation revoked
|
|
||||||
* <0 on error, e.g. ISO_ZLIB_NOT_ENABLED
|
|
||||||
*
|
|
||||||
* @since 0.6.18
|
|
||||||
*/
|
|
||||||
int iso_file_add_gzip_filter(IsoFile *file, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/* ts A90414 */
|
|
||||||
/**
|
|
||||||
* Inquire the number of gzip compression and uncompression filters which
|
|
||||||
* are in use.
|
|
||||||
* @param gzip_count
|
|
||||||
* Will return the number of currently installed compression filters.
|
|
||||||
* @param gunzip_count
|
|
||||||
* Will return the number of currently installed uncompression filters.
|
|
||||||
* @param flag
|
|
||||||
* Bitfield for control purposes, unused yet, submit 0
|
|
||||||
* @return
|
|
||||||
* 1 on success, <0 on error
|
|
||||||
*
|
|
||||||
* @since 0.6.18
|
|
||||||
*/
|
|
||||||
int iso_gzip_get_refcounts(off_t *gzip_count, off_t *gunzip_count, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
|
|
||||||
#ifdef LIBISOFS_WITHOUT_LIBBURN
|
#ifdef LIBISOFS_WITHOUT_LIBBURN
|
||||||
|
@ -1448,7 +1448,6 @@ ex:;
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ts A90319 */
|
|
||||||
/**
|
/**
|
||||||
* Search given name. Eventually calloc() and copy value. Add trailing 0 byte
|
* Search given name. Eventually calloc() and copy value. Add trailing 0 byte
|
||||||
* for caller convenience.
|
* for caller convenience.
|
||||||
@ -1485,7 +1484,6 @@ int iso_aa_lookup_attr(unsigned char *aa_string, char *name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ts A90403 */
|
|
||||||
/* API */
|
/* API */
|
||||||
int iso_node_lookup_attr(IsoNode *node, char *name,
|
int iso_node_lookup_attr(IsoNode *node, char *name,
|
||||||
size_t *value_length, char **value, int flag)
|
size_t *value_length, char **value, int flag)
|
||||||
|
@ -385,7 +385,6 @@ int rrip_SL_append_comp(size_t *n, uint8_t ***comps, char *s, int size, char fl)
|
|||||||
|
|
||||||
#ifdef Libisofs_with_rrip_rR
|
#ifdef Libisofs_with_rrip_rR
|
||||||
|
|
||||||
/* ts A90307 */
|
|
||||||
/**
|
/**
|
||||||
* Add to the given tree node a RR System Use Entry. This is an obsolete
|
* Add to the given tree node a RR System Use Entry. This is an obsolete
|
||||||
* entry from before RRIP-1.10. Nevertheless mkisofs produces it and there
|
* entry from before RRIP-1.10. Nevertheless mkisofs produces it and there
|
||||||
@ -1336,7 +1335,6 @@ int rrip_get_susp_fields(Ecma119Image *t, Ecma119Node *n, int type,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef Libisofs_with_rrip_rR
|
#ifdef Libisofs_with_rrip_rR
|
||||||
/* ts A90307 */
|
|
||||||
ret = rrip_add_RR(t, node, info);
|
ret = rrip_add_RR(t, node, info);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
goto add_susp_cleanup;
|
goto add_susp_cleanup;
|
||||||
|
@ -670,7 +670,6 @@ void iso_stream_get_file_name(IsoStream *stream, char *name)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ts A90328 API */
|
|
||||||
IsoStream *iso_stream_get_input_stream(IsoStream *stream, int flag)
|
IsoStream *iso_stream_get_input_stream(IsoStream *stream, int flag)
|
||||||
{
|
{
|
||||||
IsoStreamIface* class = stream->class;
|
IsoStreamIface* class = stream->class;
|
||||||
@ -680,7 +679,6 @@ IsoStream *iso_stream_get_input_stream(IsoStream *stream, int flag)
|
|||||||
return class->get_input_stream(stream, 0);
|
return class->get_input_stream(stream, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ts A90406 API */
|
|
||||||
char *iso_stream_get_source_path(IsoStream *stream, int flag)
|
char *iso_stream_get_source_path(IsoStream *stream, int flag)
|
||||||
{
|
{
|
||||||
char *path = NULL, ivd[80], *raw_path = NULL;
|
char *path = NULL, ivd[80], *raw_path = NULL;
|
||||||
|
@ -350,7 +350,7 @@ int str2wchar(const char *icharset, const char *input, wchar_t **output)
|
|||||||
iconv_t conv;
|
iconv_t conv;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* ts A90308 : that while loop smells like a potential show stopper */
|
/* That while loop smells like a potential show stopper */
|
||||||
size_t loop_counter = 0, loop_limit = 3;
|
size_t loop_counter = 0, loop_limit = 3;
|
||||||
|
|
||||||
size_t inbytes;
|
size_t inbytes;
|
||||||
@ -471,10 +471,10 @@ int str2ascii(const char *icharset, const char *input, char **output)
|
|||||||
iconv_t conv;
|
iconv_t conv;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* ts A90308 : that while loop smells like a potential show stopper */
|
/* That while loop smells like a potential show stopper */
|
||||||
size_t loop_counter = 0, loop_limit = 3;
|
size_t loop_counter = 0, loop_limit = 3;
|
||||||
|
|
||||||
/* ts A90308 : fallback in case that iconv() is too demanding for system */
|
/* Fallback in case that iconv() is too demanding for system */
|
||||||
unsigned char *cpt;
|
unsigned char *cpt;
|
||||||
|
|
||||||
size_t numchars;
|
size_t numchars;
|
||||||
@ -636,7 +636,7 @@ int str2ucs(const char *icharset, const char *input, uint16_t **output)
|
|||||||
iconv_t conv;
|
iconv_t conv;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* ts A90308 : that while loop smells like a potential show stopper */
|
/* That while loop smells like a potential show stopper */
|
||||||
size_t loop_counter = 0, loop_limit = 3;
|
size_t loop_counter = 0, loop_limit = 3;
|
||||||
|
|
||||||
size_t numchars;
|
size_t numchars;
|
||||||
|
Loading…
Reference in New Issue
Block a user