"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "libisoburn/libisoburn.h" between
xorriso-1.5.2.tar.gz and xorriso-1.5.4.tar.gz

About: GNU xorriso creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions. It is suitable for incremental data backup and for production of bootable ISO 9660 images. GNU xorriso is a statical compilation of the libraries libburn, libisofs, libisoburn, and libjte.

libisoburn.h  (xorriso-1.5.2):libisoburn.h  (xorriso-1.5.4)
#ifndef LIBISOBURN_LIBISOBURN_H_ #ifndef LIBISOBURN_LIBISOBURN_H_
#define LIBISOBURN_LIBISOBURN_H_ #define LIBISOBURN_LIBISOBURN_H_
/* /*
Lower level API definition of libisoburn. Lower level API definition of libisoburn.
Copyright 2007-2009 Vreixo Formoso Lopes <metalpain2002@yahoo.es> Copyright 2007-2009 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
Copyright 2007-2019 Thomas Schmitt <scdbackup@gmx.net> Copyright 2007-2021 Thomas Schmitt <scdbackup@gmx.net>
Provided under GPL version 2 or later. Provided under GPL version 2 or later.
*/ */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/** Overview /** Overview
libisoburn is a frontend for libraries libburn and libisofs which enables libisoburn is a frontend for libraries libburn and libisofs which enables
skipping to change at line 92 skipping to change at line 92
job parameters. It rather states its desires which libisoburn tries to job parameters. It rather states its desires which libisoburn tries to
fulfill, or else will refuse to start the write run. fulfill, or else will refuse to start the write run.
Setup for Growing, Modifying or Blind Growing Setup for Growing, Modifying or Blind Growing
The connector function family offers alternative API calls for performing The connector function family offers alternative API calls for performing
the setup for several alternative image generation strategies. the setup for several alternative image generation strategies.
Growing: Growing:
If input and output drive are the same, then isoburn_prepare_disc() is to If input and output drive are the same, then isoburn_prepare_disc() is to
be used. It will lead to an add-on session on appendable or overwriteable be used. It will lead to an add-on session on appendable or overwritable
media with existing ISO image. With blank media it will produce a first media with existing ISO image. With blank media it will produce a first
session. session.
Modifying: Modifying:
If the output drive is not the input drive, and if it bears blank media If the output drive is not the input drive, and if it bears blank media
or overwriteable without a valid ISO image, then one may produce a consolidated or overwritable without a valid ISO image, then one may produce a consolidated
image with old and new data. This will copy file data from an eventual input image with old and new data. This will copy file data from an eventual input
drive with valid image, add any newly introduced data from the local drive with valid image, add any newly introduced data from the local
filesystem, and produce a first session on output media. filesystem, and produce a first session on output media.
To prepare for such an image generation run, use isoburn_prepare_new_image(). To prepare for such an image generation run, use isoburn_prepare_new_image().
Blind Growing: Blind Growing:
This method reads the old image from one drive and writes the add-on session This method reads the old image from one drive and writes the add-on session
to a different drive. That output drive is nevertheless supposed to to a different drive. That output drive is nevertheless supposed to
finally lead to the same medium from where the session was loaded. Usually it finally lead to the same medium from where the session was loaded. Usually it
will be stdio:/dev/fd/1 (i.e. stdout) being piped into some burn program will be stdio:/dev/fd/1 (i.e. stdout) being piped into some burn program
skipping to change at line 200 skipping to change at line 200
isoburn_header_version_minor, isoburn_header_version_minor,
isoburn_header_version_micro, 0)) isoburn_header_version_micro, 0))
...refuse to start the program with this dynamic library version... ...refuse to start the program with this dynamic library version...
@since 0.1.0 @since 0.1.0
@param major obtained at build time @param major obtained at build time
@param minor obtained at build time @param minor obtained at build time
@param micro obtained at build time @param micro obtained at build time
@param flag Bitfield for control purposes. Unused yet. Submit 0. @param flag Bitfield for control purposes. Unused yet. Submit 0.
@return 1= library can work for caller @return 1= library can work for caller
0= library is not usable in some aspects. Caller must restrict 0= library is not usable in some aspects. Caller must restrict
itself to an earlier API version or must not use this libray itself to an earlier API version or must not use this library
at all. at all.
*/ */
int isoburn_is_compatible(int major, int minor, int micro, int flag); int isoburn_is_compatible(int major, int minor, int micro, int flag);
/** Obtain the three release version numbers of the library. These are the /** Obtain the three release version numbers of the library. These are the
numbers encountered by the application when linking with libisoburn, numbers encountered by the application when linking with libisoburn,
i.e. possibly not before run time. i.e. possibly not before run time.
Better do not base the fundamental compatibility decision of an application Better do not base the fundamental compatibility decision of an application
on these numbers. For a reliable check use isoburn_is_compatible(). on these numbers. For a reliable check use isoburn_is_compatible().
@since 0.1.0 @since 0.1.0
skipping to change at line 241 skipping to change at line 241
@return 1 success, <=0 might in future become an error indication @return 1 success, <=0 might in future become an error indication
*/ */
void isoburn_version(int *major, int *minor, int *micro); void isoburn_version(int *major, int *minor, int *micro);
/** The minimum version of libisofs to be used with this version of libisoburn /** The minimum version of libisofs to be used with this version of libisoburn
at compile time. at compile time.
@since 0.1.0 @since 0.1.0
*/ */
#define isoburn_libisofs_req_major 1 #define isoburn_libisofs_req_major 1
#define isoburn_libisofs_req_minor 5 #define isoburn_libisofs_req_minor 5
#define isoburn_libisofs_req_micro 2 #define isoburn_libisofs_req_micro 4
/** The minimum version of libburn to be used with this version of libisoburn /** The minimum version of libburn to be used with this version of libisoburn
at compile time. at compile time.
@since 0.1.0 @since 0.1.0
*/ */
#define isoburn_libburn_req_major 1 #define isoburn_libburn_req_major 1
#define isoburn_libburn_req_minor 5 #define isoburn_libburn_req_minor 5
#define isoburn_libburn_req_micro 2 #define isoburn_libburn_req_micro 4
/** The minimum compile time requirements of libisoburn towards libjte are /** The minimum compile time requirements of libisoburn towards libjte are
the same as of a suitable libisofs towards libjte. the same as of a suitable libisofs towards libjte.
So use these macros from libisofs.h : So use these macros from libisofs.h :
iso_libjte_req_major iso_libjte_req_major
iso_libjte_req_minor iso_libjte_req_minor
iso_libjte_req_micro iso_libjte_req_micro
@since 0.6.4 @since 0.6.4
*/ */
skipping to change at line 301 skipping to change at line 301
*/ */
int isoburn_libburn_req(int *major, int *minor, int *micro); int isoburn_libburn_req(int *major, int *minor, int *micro);
/** These three release version numbers tell the revision of this header file /** These three release version numbers tell the revision of this header file
and of the API it describes. They are memorized by applications at build and of the API it describes. They are memorized by applications at build
time. time.
@since 0.1.0 @since 0.1.0
*/ */
#define isoburn_header_version_major 1 #define isoburn_header_version_major 1
#define isoburn_header_version_minor 5 #define isoburn_header_version_minor 5
#define isoburn_header_version_micro 2 #define isoburn_header_version_micro 4
/** Note: /** Note:
Above version numbers are also recorded in configure.ac because libtool Above version numbers are also recorded in configure.ac because libtool
wants them as parameters at build time. wants them as parameters at build time.
For the library compatibility check, ISOBURN_*_VERSION in configure.ac For the library compatibility check, ISOBURN_*_VERSION in configure.ac
are not decisive. Only the three numbers here do matter. are not decisive. Only the three numbers here do matter.
*/ */
/** Usage discussion: /** Usage discussion:
Some developers of the libburnia project have differing Some developers of the libburnia project have differing
opinions how to ensure the compatibility of libaries opinions how to ensure the compatibility of libraries
and applications. and applications.
It is about whether to use at compile time and at runtime It is about whether to use at compile time and at runtime
the version numbers isoburn_header_version_* provided here. the version numbers isoburn_header_version_* provided here.
Thomas Schmitt advises to use them. Thomas Schmitt advises to use them.
Vreixo Formoso advises to use other means. Vreixo Formoso advises to use other means.
At compile time: At compile time:
Vreixo Formoso advises to leave proper version matching Vreixo Formoso advises to leave proper version matching
skipping to change at line 415 skipping to change at line 415
@param drive_infos On success returns a one element array with the drive @param drive_infos On success returns a one element array with the drive
(cdrom/burner). Thus use with driveno 0 only. On failure (cdrom/burner). Thus use with driveno 0 only. On failure
the array has no valid elements at all. the array has no valid elements at all.
The returned array should be freed via burn_drive_info_free() The returned array should be freed via burn_drive_info_free()
when the drive is no longer needed. But before this is done when the drive is no longer needed. But before this is done
one has to call isoburn_drive_release(drive_infos[0].drive). one has to call isoburn_drive_release(drive_infos[0].drive).
@param adr The persistent address of the desired drive or the path @param adr The persistent address of the desired drive or the path
to a file object. to a file object.
@param flag bit0= attempt to load the disc tray. @param flag bit0= attempt to load the disc tray.
Else: failure if not loaded. Else: failure if not loaded.
bit1= regard overwriteable media as blank bit1= regard overwritable media as blank
bit2= if the drive is a regular disk file: bit2= if the drive is a regular disk file:
truncate it to the write start address when writing truncate it to the write start address when writing
begins begins
bit3= if the drive reports a read-only profile try to read bit3= if the drive reports a read-only profile try to read
table of content by scanning for ISO image headers. table of content by scanning for ISO image headers.
(depending on media type and drive this might (depending on media type and drive this might
help or it might make the resulting toc even worse) help or it might make the resulting toc even worse)
bit4= do not emulate table of content on overwriteable media bit4= do not emulate table of content on overwritable media
bit5= ignore ACL from external filesystems bit5= ignore ACL from external filesystems
bit6= ignore POSIX Extended Attributes from external bit6= ignore POSIX Extended Attributes from external
filesystems (xattr) filesystems (xattr)
bit7= pretend read-only profile and scan for table of content bit7= pretend read-only profile and scan for table of content
bit8= re-assess already acquired (*drive_infos)[0] rather bit8= re-assess already acquired (*drive_infos)[0] rather
than acquiring adr than acquiring adr
@since 1.1.8 @since 1.1.8
bit9= when scanning for ISO 9660 sessions by bit3: bit9= when scanning for ISO 9660 sessions by bit3:
Do not demand a valid superblock at LBA 0, ignore it in Do not demand a valid superblock at LBA 0, ignore it in
favor of one at LBA 32, and scan until end of medium. favor of one at LBA 32, and scan until end of medium.
skipping to change at line 528 skipping to change at line 528
image. After isoburn_read_image() it will confuse the coordination image. After isoburn_read_image() it will confuse the coordination
of libisoburn and libisofs. of libisoburn and libisofs.
Note: Sessions and tracks are counted beginning with 1, not with 0. Note: Sessions and tracks are counted beginning with 1, not with 0.
@since 0.1.6 @since 0.1.6
@param d The drive where msc1 is to be set @param d The drive where msc1 is to be set
@param adr_mode Determines how to interpret adr_value and to set msc1. @param adr_mode Determines how to interpret adr_value and to set msc1.
If adr_value shall represent a number then decimal ASCII If adr_value shall represent a number then decimal ASCII
digits are expected. digits are expected.
0= start lba of last session in TOC, ignore adr_value 0= start lba of last session in TOC, ignore adr_value
1= start lba of session number given by adr_value 1= start lba of session number given by adr_value
2= start lba of track given number by adr_value 2= start lba of track number given by adr_value
3= adr_value itself is the lba to be used 3= adr_value itself is the lba to be used
4= start lba of last session with volume id 4= start lba of last session with volume id
given by adr_value given by adr_value
@param adr_value A string describing the value to be eventually used. @param adr_value A string describing the value to be eventually used.
@param flag Bitfield for control purposes. @param flag Bitfield for control purposes.
bit0= @since 0.2.2 bit0= @since 0.2.2
with adr_mode 3: adr_value might be 16 blocks too high with adr_mode 3: adr_value might be 16 blocks too high
(e.g. -C stemming from growisofs). Probe for ISO head (e.g. -C stemming from growisofs). Probe for ISO head
at adr_value-16 and eventually adjust setting. at adr_value-16 and eventually adjust setting.
bit1= insist in seeing a disc object with at least one session bit1= insist in seeing a disc object with at least one session
bit2= with adr_mode 4: use adr_value as regular expression bit2= with adr_mode 4: use adr_value as regular expression
*/ */
int isoburn_set_msc1(struct burn_drive *d, int adr_mode, char *adr_value, int isoburn_set_msc1(struct burn_drive *d, int adr_mode, char *adr_value,
int flag); int flag);
/* ----------------------------------------------------------------------- */ /* ----------------------------------------------------------------------- */
/* /*
Wrappers for emulation of TOC on overwriteable media Wrappers for emulation of TOC on overwritable media
Media which match the overwriteable usage model lack of a history of sessions Media which match the overwritable usage model lack of a history of sessions
and tracks. libburn will not even hand out a burn_disc object for them and and tracks. libburn will not even hand out a burn_disc object for them and
always declare them blank. libisoburn checks for a valid ISO filesystem always declare them blank. libisoburn checks for a valid ISO filesystem
header at LBA 0 and eventually declares them appendable. header at LBA 0 and eventually declares them appendable.
Nevertheless one can only determine an upper limit of the size of the overall Nevertheless one can only determine an upper limit of the size of the overall
image (by isoburn_get_min_start_byte()) but not a list of stored sessions image (by isoburn_get_min_start_byte()) but not a list of stored sessions
and their LBAs, as it is possible with true multi-session media. and their LBAs, as it is possible with true multi-session media.
The following wrappers add the capability to obtain a session and track TOC The following wrappers add the capability to obtain a session and track TOC
from emulated multi-session images on overwriteables if the first session from emulated multi-session images on overwritables if the first session
was written by libisoburn-0.1.6 or later (i.e. with a header copy at LBA 32). was written by libisoburn-0.1.6 or later (i.e. with a header copy at LBA 32).
Be aware that the structs emitted by these isoburn calls are not compatible Be aware that the structs emitted by these isoburn calls are not compatible
with the libburn structs. I.e. you may use them only with isoburn_toc_* with the libburn structs. I.e. you may use them only with isoburn_toc_*
calls. calls.
isoburn_toc_disc needs to be freed after use. isoburn_toc_session and isoburn_toc_disc needs to be freed after use. isoburn_toc_session and
isoburn_toc_track vanish together with their isoburn_toc_disc. isoburn_toc_track vanish together with their isoburn_toc_disc.
*/ */
/* Opaque handles to media, session, track */ /* Opaque handles to media, session, track */
skipping to change at line 686 skipping to change at line 686
*/ */
void isoburn_toc_disc_free(struct isoburn_toc_disc *disc); void isoburn_toc_disc_free(struct isoburn_toc_disc *disc);
/** Try whether the data at the given address look like a ISO 9660 /** Try whether the data at the given address look like a ISO 9660
image header and obtain its alleged size. Depending on the info mode image header and obtain its alleged size. Depending on the info mode
one other string of text information can be retrieved too. one other string of text information can be retrieved too.
@since 0.1.6 @since 0.1.6
@param d The drive with the medium to inspect @param d The drive with the medium to inspect
@param lba The block number from where to read @param lba The block number from where to read
@param image_blocks Returns the number of 2048 bytes blocks in the session @param image_blocks Returns the number of 2048 bytes blocks in the session
@param info Caller provided memory, enough to take eventual info reply @param info Caller provided memory, enough to take possible info reply
@param flag bit0-7: info return mode @param flag bit0-7: info return mode
0= do not return anything in info (do not even touch it) 0= do not return anything in info (do not even touch it)
1= copy volume id to info (info needs 33 bytes) 1= copy volume id to info (info needs 33 bytes)
2= @since 0.2.2 : 2= @since 0.2.2 :
copy 64 kB header to info (needs 65536 bytes) copy 64 kB header to info (needs 65536 bytes)
bit13= @since 0.2.2: bit13= @since 0.2.2:
Do not read head from medium but use first 64 kB from Do not read head from medium but use first 64 kB from
info. info.
In this case it is permissible to submit d == NULL. In this case it is permissible to submit d == NULL.
bit14= check both half buffers (not only second) bit14= check both half buffers (not only second)
skipping to change at line 851 skipping to change at line 851
@since 0.4.0 @since 0.4.0
Do not load eventual inode numbers from RRIP entry PX, Do not load eventual inode numbers from RRIP entry PX,
but generate a new unique inode number for each imported but generate a new unique inode number for each imported
IsoNode object. IsoNode object.
PX inode numbers mark families of hardlinks by giving all PX inode numbers mark families of hardlinks by giving all
family members the same inode number. libisofs keeps the family members the same inode number. libisofs keeps the
PX inode numbers unaltered when IsoNode objects get PX inode numbers unaltered when IsoNode objects get
written into an ISO image. written into an ISO image.
bit9= nomd5 bit9= nomd5
@since 0.4.2 @since 0.4.2
Do not load the eventual MD5 checksum array. Do not load the possibly present MD5 checksum array.
Do not check eventual session_md5 tags. Do not check possibly present session_md5 tags.
bit10= nomd5tag bit10= nomd5tag
@since 1.0.4 @since 1.0.4
Do not check eventual session_md5 tags although bit9 Do not check session_md5 tags although bit9
is not set. is not set.
bit11= do_ecma119_map bit11= do_ecma119_map
@since 1.4.2 @since 1.4.2
Set iso_read_opts_set_ecma119_map() to map_mode rather Set iso_read_opts_set_ecma119_map() to map_mode rather
than relying on the default setting of libisofs. than relying on the default setting of libisofs.
bit12 - bit13= map_mode bit12 - bit13= map_mode
@since 1.4.2 @since 1.4.2
How to convert file names if neither Rock Ridge nor How to convert file names if neither Rock Ridge nor
Joliet names are present and acceptable. Joliet names are present and acceptable.
0 = unmapped: Take name as recorded in ECMA-119 directory 0 = unmapped: Take name as recorded in ECMA-119 directory
record (not suitable for writing them to record (not suitable for writing them to
a new ISO filesystem) a new ISO filesystem)
1 = stripped: Like unmapped, but strip off trailing ";1" 1 = stripped: Like unmapped, but strip off trailing ";1"
or ".;1" or ".;1"
2 = uppercase: Like stripped, but map {a-z} to {A-Z} 2 = uppercase: Like stripped, but map {a-z} to {A-Z}
3 = lowercase: Like stripped, but map {A-Z} to {a-z} 3 = lowercase: Like stripped, but map {A-Z} to {a-z}
bit14= do_joliet_map
@since 1.5.4
Set iso_read_opts_set_joliet_map() to joliet_map_mode
rather than relying on the default setting of libisofs.
bit15= joliet_map_mode
@since 1.5.4
How to convert Joliet file names.
0 = unmapped: Take name as recorded in Joliet directory
record (not suitable for writing them to
a new ISO filesystem)
1 = stripped: strip off trailing ";1" or ".;1"
@return 1 success, <=0 failure @return 1 success, <=0 failure
*/ */
#define isoburn_ropt_norock 1 #define isoburn_ropt_norock 1
#define isoburn_ropt_nojoliet 2 #define isoburn_ropt_nojoliet 2
#define isoburn_ropt_noiso1999 4 #define isoburn_ropt_noiso1999 4
#define isoburn_ropt_preferjoliet 8 #define isoburn_ropt_preferjoliet 8
#define isoburn_ropt_pretend_blank 16 #define isoburn_ropt_pretend_blank 16
#define isoburn_ropt_noaaip 32 #define isoburn_ropt_noaaip 32
#define isoburn_ropt_noacl 64 #define isoburn_ropt_noacl 64
#define isoburn_ropt_noea 128 #define isoburn_ropt_noea 128
#define isoburn_ropt_noino 256 #define isoburn_ropt_noino 256
#define isoburn_ropt_nomd5 512 #define isoburn_ropt_nomd5 512
#define isoburn_ropt_nomd5tag 1024 #define isoburn_ropt_nomd5tag 1024
#define isoburn_ropt_map_unmapped ( 2048 | 0 ) #define isoburn_ropt_map_unmapped ( 2048 | 0 )
#define isoburn_ropt_map_stripped ( 2048 | 4096 ) #define isoburn_ropt_map_stripped ( 2048 | 4096 )
#define isoburn_ropt_map_uppercase ( 2048 | 8192 ) #define isoburn_ropt_map_uppercase ( 2048 | 8192 )
#define isoburn_ropt_map_lowercase ( 2048 | 12288 ) #define isoburn_ropt_map_lowercase ( 2048 | 12288 )
#define isoburn_ropt_joliet_unmapped ( 16384 | 0)
#define isoburn_ropt_joliet_stripped ( 16384 | 32768)
int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext); int isoburn_ropt_set_extensions(struct isoburn_read_opts *o, int ext);
int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext); int isoburn_ropt_get_extensions(struct isoburn_read_opts *o, int *ext);
/** Default attributes to use if no RockRidge extension gets loaded. /** Default attributes to use if no RockRidge extension gets loaded.
@since 0.1.0 @since 0.1.0
@param o The option set to work on @param o The option set to work on
@param uid user id number (see /etc/passwd) @param uid user id number (see /etc/passwd)
@param gid group id number (see /etc/group) @param gid group id number (see /etc/group)
@param mode permissions (not file type) as of man 2 stat. @param mode permissions (not file type) as of man 2 stat.
skipping to change at line 912 skipping to change at line 926
*/ */
int isoburn_ropt_set_default_perms(struct isoburn_read_opts *o, int isoburn_ropt_set_default_perms(struct isoburn_read_opts *o,
uid_t uid, gid_t gid, mode_t mode); uid_t uid, gid_t gid, mode_t mode);
int isoburn_ropt_get_default_perms(struct isoburn_read_opts *o, int isoburn_ropt_get_default_perms(struct isoburn_read_opts *o,
uid_t *uid, gid_t *gid, mode_t *mode); uid_t *uid, gid_t *gid, mode_t *mode);
/** Default attributes to use on directories if no RockRidge extension /** Default attributes to use on directories if no RockRidge extension
gets loaded. gets loaded.
Above call isoburn_ropt_set_default_perms() automatically adds Above call isoburn_ropt_set_default_perms() automatically adds
x-permissions to r-permissions for directories. This call here may x-permissions to r-permissions for directories. This call here may
be done afterwards to set independend permissions for directories, be done afterwards to set independent permissions for directories,
especially to override the automatically added x-permissions. especially to override the automatically added x-permissions.
@since 0.1.0 @since 0.1.0
@param o The option set to work on @param o The option set to work on
@param mode permissions (not file type) as of man 2 stat. @param mode permissions (not file type) as of man 2 stat.
@return 1 success, <=0 failure @return 1 success, <=0 failure
*/ */
int isoburn_ropt_set_default_dirperms(struct isoburn_read_opts *o, int isoburn_ropt_set_default_dirperms(struct isoburn_read_opts *o,
mode_t mode); mode_t mode);
int isoburn_ropt_get_default_dirperms(struct isoburn_read_opts *o, int isoburn_ropt_get_default_dirperms(struct isoburn_read_opts *o,
mode_t *mode); mode_t *mode);
skipping to change at line 964 skipping to change at line 978
relative to the start block address for which it was produced. relative to the start block address for which it was produced.
E.g. if track number 2 from CD gets copied into a disk file and shall then E.g. if track number 2 from CD gets copied into a disk file and shall then
be loaded as ISO filesystem, then the directory tree and all data file be loaded as ISO filesystem, then the directory tree and all data file
content of the track copy will become readable by setting the track start content of the track copy will become readable by setting the track start
address as displacement and -1 as displacement_sign. address as displacement and -1 as displacement_sign.
Data file content outside the track will of course not be accessible and Data file content outside the track will of course not be accessible and
eventually produce read errors. eventually produce read errors.
@since 0.6.6 @since 0.6.6
@param o The option set to work on @param o The option set to work on
@param displacement 0 or a positive number @param displacement 0 or a positive number
@param displacement_sign Determines wether to add or subtract displacement @param displacement_sign Determines whether to add or subtract
to block addresses before applying them to the displacement to block addresses before applying
storage object for reading: them to the storage object for reading:
+1 = add , -1= subtract , else keep unaltered +1 = add , -1= subtract , else keep unaltered
*/ */
int isoburn_ropt_set_displacement(struct isoburn_read_opts *o, int isoburn_ropt_set_displacement(struct isoburn_read_opts *o,
uint32_t displacement, int displacement_sign); uint32_t displacement, int displacement_sign);
int isoburn_ropt_get_displacement(struct isoburn_read_opts *o, int isoburn_ropt_get_displacement(struct isoburn_read_opts *o,
uint32_t *displacement, int *displacement_sign); uint32_t *displacement, int *displacement_sign);
/* If you get here because of a compilation error like /* If you get here because of a compilation error like
/usr/include/libisoburn/libisoburn.h:895: error: /usr/include/libisoburn/libisoburn.h:895: error:
skipping to change at line 992 skipping to change at line 1006
/** Set the name truncation mode and the maximum name length for imported /** Set the name truncation mode and the maximum name length for imported
file objects. file objects.
@since 1.4.2 @since 1.4.2
@param o The option set to work on @param o The option set to work on
@param mode 0= Do not truncate but throw error @param mode 0= Do not truncate but throw error
ISO_RR_NAME_TOO_LONG if a file name ISO_RR_NAME_TOO_LONG if a file name
is longer than parameter length. is longer than parameter length.
1= Truncate to length and overwrite the last 1= Truncate to length and overwrite the last
32 bytes of that length by the hex 32 bytes of that length by the hex
representation of ithe MD5 of the whole representation of the MD5 of the whole
oversized name. oversized name.
Potential incomplete UTF-8 characters will Potential incomplete UTF-8 characters will
get their leading bytes replaced by '_'. get their leading bytes replaced by '_'.
This is the default. This is the default.
@param length Maximum byte count of a file name. Permissible @param length Maximum byte count of a file name. Permissible
values are 64 to 255. Default is 255. values are 64 to 255. Default is 255.
*/ */
int isoburn_ropt_set_truncate_mode(struct isoburn_read_opts *o, int isoburn_ropt_set_truncate_mode(struct isoburn_read_opts *o,
int mode, int length); int mode, int length);
int isoburn_ropt_get_truncate_mode(struct isoburn_read_opts *o, int isoburn_ropt_get_truncate_mode(struct isoburn_read_opts *o,
int *mode, int *length); int *mode, int *length);
/** After calling function isoburn_read_image() there are informations /** After calling function isoburn_read_image() there are information
available in the option set. available in the option set about the size and the available extra trees
and extensions in the ISO filesystem.
This info can be obtained as bits in parameter has_what. Like: This info can be obtained as bits in parameter has_what. Like:
joliet_available = (has_what & isoburn_ropt_has_joliet); joliet_available = (has_what & isoburn_ropt_has_joliet);
@since 0.1.0 @since 0.1.0
@param o The option set to work on @param o The option set to work on
@param size Number of image data blocks, 2048 bytes each. @param size Number of image data blocks, 2048 bytes each.
@param has_what Bitfield: @param has_what Bitfield:
bit0= has_rockridge bit0= has_rockridge
RockRidge extension info is available (POSIX filesystem) RockRidge extension info is available in the ISO 9660 tree
(POSIX filesystem)
bit1= has_joliet bit1= has_joliet
Joliet extension info is available (suitable for MS-Windows) Joliet tree is available (suitable for MS-Windows)
bit2= has_iso1999 bit2= has_iso1999
ISO version 2 Enhanced Volume Descriptor is available. ISO version 2 Enhanced Volume Descriptor aka ISO 9660:1999
This is rather exotic. and its tree is available. This is rather exotic.
bit3= has_el_torito bit3= has_el_torito
El-Torito boot record is present El-Torito boot record is present
@return 1 success, <=0 failure @return 1 success, <=0 failure
*/ */
#define isoburn_ropt_has_rockridge 1 #define isoburn_ropt_has_rockridge 1
#define isoburn_ropt_has_joliet 2 #define isoburn_ropt_has_joliet 2
#define isoburn_ropt_has_iso1999 4 #define isoburn_ropt_has_iso1999 4
#define isoburn_ropt_has_el_torito 8 #define isoburn_ropt_has_el_torito 8
int isoburn_ropt_get_size_what(struct isoburn_read_opts *o, int isoburn_ropt_get_size_what(struct isoburn_read_opts *o,
uint32_t *size, int *has_what); uint32_t *size, int *has_what);
/* ts A90122 */ /* ts A90122 */
/* >>> to be implemented: /* >>> to be implemented:
#define isoburn_ropt_has_acl 64 #define isoburn_ropt_has_acl 64
#define isoburn_ropt_has_ea 128 #define isoburn_ropt_has_ea 128
*/ */
/** After calling function isoburn_read_image() there are information
available in the option set about which tree was used for image loading
and whether Rock Ridge information was actually used.
@since 1.5.4
@param o The option set to work on
@param tree The tree which was loaded:
0= ISO 9660 , 1 = Joliet , 2 = ISO 9660:1999
@param rr 1= Rock Ridge information was used, 0 = No Rock Ridge was used
@return 1 success, <=0 failure
*/
int isoburn_ropt_get_tree_loaded(struct isoburn_read_opts *o,
int *tree, int *rr);
/* ----------------------------------------------------------------------- */ /* ----------------------------------------------------------------------- */
/* End of Options for image reading */ /* End of Options for image reading */
/* ----------------------------------------------------------------------- */ /* ----------------------------------------------------------------------- */
/* ----------------------------------------------------------------------- */ /* ----------------------------------------------------------------------- */
/* /*
Options for image generation by libisofs and image transport to libburn. Options for image generation by libisofs and image transport to libburn.
An application shall create an option set by isoburn_igopt_new(), An application shall create an option set by isoburn_igopt_new(),
skipping to change at line 1125 skipping to change at line 1154
@since 0.4.2 @since 0.4.2
Produce and write MD5 checksums for each single IsoFile. Produce and write MD5 checksums for each single IsoFile.
bit8= file_stability (only together with file_md5) bit8= file_stability (only together with file_md5)
@since 0.4.2 @since 0.4.2
Compute MD5 of each file before copying it into the image and Compute MD5 of each file before copying it into the image and
compare this with the MD5 of the actual copying. If they do compare this with the MD5 of the actual copying. If they do
not match then issue MISHAP event. not match then issue MISHAP event.
See also libisofs.h iso_write_opts_set_record_md5() See also libisofs.h iso_write_opts_set_record_md5()
bit9= no_emul_toc bit9= no_emul_toc
@since 0.5.8 @since 0.5.8
On overwriteable media or random access files do not write On overwritable media or random access files do not write
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 bit10= will_cancel
@since 0.6.6 @since 0.6.6
Announce to libisofs that only the image size is desired Announce to libisofs that only the image size is desired
and that the write thread will be cancelled by and that the write thread will be cancelled by
isoburn_cancel_prepared_write() before actual image writing isoburn_cancel_prepared_write() before actual image writing
occurs. Without this, cancellation can cause a MISHAP event. occurs. Without this, cancellation can cause a MISHAP event.
bit11= old_empty bit11= old_empty
skipping to change at line 1421 skipping to change at line 1450
@param gid Group id to use on files with replace_gid == 2. @param gid Group id to use on files with replace_gid == 2.
@return 1 success, <=0 failure @return 1 success, <=0 failure
*/ */
int isoburn_igopt_set_over_ugid(struct isoburn_imgen_opts *o, int isoburn_igopt_set_over_ugid(struct isoburn_imgen_opts *o,
int replace_uid, int replace_gid, int replace_uid, int replace_gid,
uid_t uid, gid_t gid); uid_t uid, gid_t gid);
int isoburn_igopt_get_over_ugid(struct isoburn_imgen_opts *o, int isoburn_igopt_get_over_ugid(struct isoburn_imgen_opts *o,
int *replace_uid, int *replace_gid, int *replace_uid, int *replace_gid,
uid_t *uid, gid_t *gid); uid_t *uid, gid_t *gid);
/** Set the charcter set to use for representing RR filenames in the image. /** Set the character set to use for representing RR filenames in the image.
@since 0.1.0 @since 0.1.0
@param o The option set to work on @param o The option set to work on
@param output_charset Set this to NULL to use the default output charset. @param output_charset Set this to NULL to use the default output charset.
For selecting a particular character set, submit its For selecting a particular character set, submit its
name, e.g. as listed by program iconv -l. name, e.g. as listed by program iconv -l.
Example: "UTF-8". Example: "UTF-8".
@return 1 success, <=0 failure @return 1 success, <=0 failure
*/ */
int isoburn_igopt_set_out_charset(struct isoburn_imgen_opts *o, int isoburn_igopt_set_out_charset(struct isoburn_imgen_opts *o,
char *output_charset); char *output_charset);
skipping to change at line 1901 skipping to change at line 1930
@since 1.5.2 @since 1.5.2
@param opts @param opts
The option set to be inquired. The option set to be inquired.
@param num_entries @param num_entries
Number of array elements in part_flags[]. Number of array elements in part_flags[].
@param type_guids @param type_guids
The array elements 0 to num_entries - 1 will get filled by the The array elements 0 to num_entries - 1 will get filled by the
16 flag bits of the images of the corresponding partition. 16 flag bits of the images of the corresponding partition.
@param valids @param valids
The array elements 0 to num_entries - 1 will get filled by 1 or 0 The array elements 0 to num_entries - 1 will get filled by 1 or 0
to indicate whether the corresponding type_guids elemet is valid. to indicate whether the corresponding type_guids element is valid.
@return @return
<0 = error <0 = error
0 = no partition image set 0 = no partition image set
>0 highest used partition number >0 highest used partition number
*/ */
int isoburn_igopt_get_part_type_guid(struct isoburn_imgen_opts *opts, int isoburn_igopt_get_part_type_guid(struct isoburn_imgen_opts *opts,
int num_entries, uint8_t guids[][16], int num_entries, uint8_t guids[][16],
int valids[]); int valids[]);
/** Control whether partitions created by iso_write_opts_set_partition_img() /** Control whether partitions created by iso_write_opts_set_partition_img()
skipping to change at line 2407 skipping to change at line 2436
@param o If not NULL: write parameters to be set on drive before query @param o If not NULL: write parameters to be set on drive before query
@param trackno Submit 0. @param trackno Submit 0.
@param lba return value: start lba @param lba return value: start lba
@param nwa return value: Next Writeable Address @param nwa return value: Next Writeable Address
@return 1=nwa is valid , 0=nwa is not valid , -1=error @return 1=nwa is valid , 0=nwa is not valid , -1=error
*/ */
int isoburn_disc_track_lba_nwa(struct burn_drive *d, struct burn_write_opts *o, int isoburn_disc_track_lba_nwa(struct burn_drive *d, struct burn_write_opts *o,
int trackno, int *lba, int *nwa); int trackno, int *lba, int *nwa);
/** Obtain the size which was attributed to an emulated appendable on actually /** Obtain the size which was attributed to an emulated appendable on actually
overwriteable media. This value is supposed to be <= 2048 * nwa as of overwritable media. This value is supposed to be <= 2048 * nwa as of
isoburn_disc_track_lba_nwa(). isoburn_disc_track_lba_nwa().
@since 0.1.0 @since 0.1.0
@param d The drive holding the medium. @param d The drive holding the medium.
@param start_byte The reply value counted in bytes, not in sectors. @param start_byte The reply value counted in bytes, not in sectors.
@param flag Unused yet. Submit 0. @param flag Unused yet. Submit 0.
@return 1=stat_byte is valid, 0=not an emulated appendable, -1=error @return 1=stat_byte is valid, 0=not an emulated appendable, -1=error
*/ */
int isoburn_get_min_start_byte(struct burn_drive *d, off_t *start_byte, int isoburn_get_min_start_byte(struct burn_drive *d, off_t *start_byte,
int flag); int flag);
skipping to change at line 2547 skipping to change at line 2576
@param flag Bitfield controlling the setting: @param flag Bitfield controlling the setting:
bit0= truncate (else do not truncate) bit0= truncate (else do not truncate)
bit1= do not warn if call is inappropriate to drive bit1= do not warn if call is inappropriate to drive
bit2= only set if truncation is currently enabled bit2= only set if truncation is currently enabled
do not warn if call is inappropriate to drive do not warn if call is inappropriate to drive
@return 1 success, 0 inappropriate drive, <0 severe error @return 1 success, 0 inappropriate drive, <0 severe error
*/ */
int isoburn_set_truncate(struct burn_drive *drive, int flag); int isoburn_set_truncate(struct burn_drive *drive, int flag);
/** Start writing of the new session. /** Start writing of the new session.
This call is asynchrounous. I.e. it returns quite soon and the progress has This call is asynchronous. I.e. it returns quite soon and the progress has
to be watched by a loop with call burn_drive_get_status() until to be watched by a loop with call burn_drive_get_status() until
BURN_DRIVE_IDLE is returned. BURN_DRIVE_IDLE is returned.
Wrapper for: burn_disc_write() Wrapper for: burn_disc_write()
@since 0.1.0 @since 0.1.0
@param o Options which control the burn process. See burnwrite_opts_*() @param o Options which control the burn process. See burnwrite_opts_*()
in libburn.h. in libburn.h.
@param disc Disc object created either by isoburn_prepare_disc() or by @param disc Disc object created either by isoburn_prepare_disc() or by
isoburn_prepare_new_image(). isoburn_prepare_new_image().
*/ */
void isoburn_disc_write(struct burn_write_opts *o, struct burn_disc *disc); void isoburn_disc_write(struct burn_write_opts *o, struct burn_disc *disc);
skipping to change at line 2638 skipping to change at line 2667
Wrapper for : iso_finish() and burn_finish(). Wrapper for : iso_finish() and burn_finish().
@since 0.1.0 @since 0.1.0
*/ */
void isoburn_finish(void); void isoburn_finish(void);
/* /*
The following calls are for expert applications only. The following calls are for expert applications only.
An application should have a special reason to use them. An application should have a special reason to use them.
*/ */
/** Inquire wether the medium needs emulation or would be suitable for /** Inquire whether the medium needs emulation or would be suitable for
generic multi-session via libburn. generic multi-session via libburn.
@since 0.1.0 @since 0.1.0
@param d The drive to inquire @param d The drive to inquire
@return 0 is generic multi-session @return 0 is generic multi-session
1 is emulated multi-session 1 is emulated multi-session
-1 is not suitable for isoburn -1 is not suitable for isoburn
*/ */
int isoburn_needs_emulation(struct burn_drive *d); int isoburn_needs_emulation(struct burn_drive *d);
/* ---------------------------- Test area ----------------------------- */ /* ---------------------------- Test area ----------------------------- */
 End of changes. 33 change blocks. 
35 lines changed or deleted 64 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)