Removed dependencies of libburn where possible and removed
the remaining demo/iso_grow.c from Makefile.am.
This commit is contained in:
parent
a097793caf
commit
c1ba7d93d9
15
Makefile.am
15
Makefile.am
@ -86,8 +86,9 @@ noinst_PROGRAMS = \
|
||||
demo/isoread \
|
||||
demo/isocat \
|
||||
demo/isomodify \
|
||||
demo/isoms \
|
||||
demo/isogrow
|
||||
demo/isoms
|
||||
|
||||
# demo/isogrow
|
||||
|
||||
demo_lsl_CPPFLAGS = -Ilibisofs
|
||||
demo_lsl_LDADD = $(libisofs_libisofs_la_OBJECTS) $(libisofs_libisofs_la_LIBADD)
|
||||
@ -141,11 +142,11 @@ demo_isoms_LDADD = $(libisofs_libisofs_la_OBJECTS) \
|
||||
$(libisofs_libisofs_la_LIBADD)
|
||||
demo_isoms_SOURCES = demo/iso_ms.c
|
||||
|
||||
demo_isogrow_CPPFLAGS = -Ilibisofs -Ilibburn
|
||||
demo_isogrow_LDADD = $(libisofs_libisofs_la_OBJECTS) \
|
||||
$(libisofs_libisofs_la_LIBADD) \
|
||||
-lburn
|
||||
demo_isogrow_SOURCES = demo/iso_grow.c
|
||||
# demo_isogrow_CPPFLAGS = -Ilibisofs -Ilibburn
|
||||
# demo_isogrow_LDADD = $(libisofs_libisofs_la_OBJECTS) \
|
||||
# $(libisofs_libisofs_la_LIBADD) \
|
||||
# -lburn
|
||||
# demo_isogrow_SOURCES = demo/iso_grow.c
|
||||
|
||||
|
||||
## Build unit test
|
||||
|
@ -3,8 +3,8 @@
|
||||
* directory.
|
||||
*/
|
||||
|
||||
#define LIBISOFS_WITHOUT_LIBBURN yes
|
||||
#include "libisofs.h"
|
||||
#include "libburn/libburn.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <getopt.h>
|
||||
|
@ -2,8 +2,8 @@
|
||||
* Little program to show how to modify an iso image.
|
||||
*/
|
||||
|
||||
#define LIBISOFS_WITHOUT_LIBBURN yes
|
||||
#include "libisofs.h"
|
||||
#include "libburn/libburn.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -2,8 +2,8 @@
|
||||
* Little program to show how to create a multisession iso image.
|
||||
*/
|
||||
|
||||
#define LIBISOFS_WITHOUT_LIBBURN yes
|
||||
#include "libisofs.h"
|
||||
#include "libburn/libburn.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -16,8 +16,14 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/* ts A90218 : libburn.h is not necessarily available */
|
||||
/*
|
||||
# include "libburn/libburn.h"
|
||||
*/
|
||||
#define LIBISOFS_WITHOUT_LIBBURN yes
|
||||
#include "libisofs.h"
|
||||
|
||||
#include "buffer.h"
|
||||
#include "libburn/libburn.h"
|
||||
#include "ecma119.h"
|
||||
|
||||
#include <pthread.h>
|
||||
|
@ -7,7 +7,13 @@
|
||||
* published by the Free Software Foundation. See COPYING file for details.
|
||||
*/
|
||||
|
||||
/* ts A90218 : libburn.h is not necessarily available */
|
||||
/*
|
||||
# include "libburn/libburn.h"
|
||||
*/
|
||||
#define LIBISOFS_WITHOUT_LIBBURN yes
|
||||
#include "libisofs.h"
|
||||
|
||||
#include "ecma119.h"
|
||||
#include "joliet.h"
|
||||
#include "iso1999.h"
|
||||
@ -21,8 +27,6 @@
|
||||
#include "util.h"
|
||||
#include "system_area.h"
|
||||
|
||||
#include "libburn/libburn.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
#include <string.h>
|
||||
|
@ -531,4 +531,5 @@ struct ecma119_vol_desc_terminator
|
||||
uint8_t reserved BP(8, 2048);
|
||||
};
|
||||
|
||||
|
||||
#endif /*LIBISO_ECMA119_H_*/
|
||||
|
@ -4596,4 +4596,184 @@ int iso_local_set_attrs(char *disk_path, size_t num_attrs, char **names,
|
||||
size_t *value_lengths, char **values, int flag);
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
#ifdef LIBISOFS_WITHOUT_LIBBURN
|
||||
|
||||
/* ts A90218 */
|
||||
/**
|
||||
This is a copy from the API of libburn-0.6.0 (under GPL).
|
||||
It is supposed to be as stable as any overall include of libburn.h.
|
||||
I.e. if this definition is out of sync then you cannot rely on any
|
||||
contract that was made with libburn.h.
|
||||
|
||||
Libisofs does not need to be linked with libburn at all. But if it is
|
||||
linked with libburn then it must be libburn-0.4.2 or later.
|
||||
*/
|
||||
|
||||
|
||||
/** Data source interface for tracks.
|
||||
This allows to use arbitrary program code as provider of track input data.
|
||||
|
||||
Objects compliant to this interface are either provided by the application
|
||||
or by API calls of libburn: burn_fd_source_new() , burn_file_source_new(),
|
||||
and burn_fifo_source_new().
|
||||
|
||||
The API calls allow to use any file object as data source. Consider to feed
|
||||
an eventual custom data stream asynchronously into a pipe(2) and to let
|
||||
libburn handle the rest.
|
||||
In this case the following rule applies:
|
||||
Call burn_source_free() exactly once for every source obtained from
|
||||
libburn API. You MUST NOT otherwise use or manipulate its components.
|
||||
|
||||
In general, burn_source objects can be freed as soon as they are attached
|
||||
to track objects. The track objects will keep them alive and dispose them
|
||||
when they are no longer needed. With a fifo burn_source it makes sense to
|
||||
keep the own reference for inquiring its state while burning is in
|
||||
progress.
|
||||
|
||||
---
|
||||
|
||||
The following description of burn_source applies only to application
|
||||
implemented burn_source objects. You need not to know it for API provided
|
||||
ones.
|
||||
|
||||
If you really implement an own passive data producer by this interface,
|
||||
then beware: it can do anything and it can spoil everything.
|
||||
|
||||
In this case the functions (*read), (*get_size), (*set_size), (*free_data)
|
||||
MUST be implemented by the application and attached to the object at
|
||||
creation time.
|
||||
Function (*read_sub) is allowed to be NULL or it MUST be implemented and
|
||||
attached.
|
||||
|
||||
burn_source.refcount MUST be handled properly: If not exactly as many
|
||||
references are freed as have been obtained, then either memory leaks or
|
||||
corrupted memory are the consequence.
|
||||
All objects which are referred to by *data must be kept existent until
|
||||
(*free_data) is called via burn_source_free() by the last referer.
|
||||
*/
|
||||
struct burn_source {
|
||||
|
||||
/** Reference count for the data source. MUST be 1 when a new source
|
||||
is created and thus the first reference is handed out. Increment
|
||||
it to take more references for yourself. Use burn_source_free()
|
||||
to destroy your references to it. */
|
||||
int refcount;
|
||||
|
||||
|
||||
/** Read data from the source. Semantics like with read(2), but MUST
|
||||
either deliver the full buffer as defined by size or MUST deliver
|
||||
EOF (return 0) or failure (return -1) at this call or at the
|
||||
next following call. I.e. the only incomplete buffer may be the
|
||||
last one from that source.
|
||||
libburn will read a single sector by each call to (*read).
|
||||
The size of a sector depends on BURN_MODE_*. The known range is
|
||||
2048 to 2352.
|
||||
|
||||
If this call is reading from a pipe then it will learn
|
||||
about the end of data only when that pipe gets closed on the
|
||||
feeder side. So if the track size is not fixed or if the pipe
|
||||
delivers less than the predicted amount or if the size is not
|
||||
block aligned, then burning will halt until the input process
|
||||
closes the pipe.
|
||||
|
||||
IMPORTANT:
|
||||
If this function pointer is NULL, then the struct burn_source is of
|
||||
version >= 1 and the job of .(*read)() is done by .(*read_xt)().
|
||||
See below, member .version.
|
||||
*/
|
||||
int (*read)(struct burn_source *, unsigned char *buffer, int size);
|
||||
|
||||
|
||||
/** Read subchannel data from the source (NULL if lib generated)
|
||||
WARNING: This is an obscure feature with CD raw write modes.
|
||||
Unless you checked the libburn code for correctness in that aspect
|
||||
you should not rely on raw writing with own subchannels.
|
||||
ADVICE: Set this pointer to NULL.
|
||||
*/
|
||||
int (*read_sub)(struct burn_source *, unsigned char *buffer, int size);
|
||||
|
||||
|
||||
/** Get the size of the source's data. Return 0 means unpredictable
|
||||
size. If application provided (*get_size) allows return 0, then
|
||||
the application MUST provide a fully functional (*set_size).
|
||||
*/
|
||||
off_t (*get_size)(struct burn_source *);
|
||||
|
||||
|
||||
/* ts A70125 : BROKE BINARY BACKWARD COMPATIBILITY AT libburn-0.3.1. */
|
||||
/* @since 0.3.2 */
|
||||
/** Program the reply of (*get_size) to a fixed value. It is advised
|
||||
to implement this by a attribute off_t fixed_size; in *data .
|
||||
The read() function does not have to take into respect this fake
|
||||
setting. It is rather a note of libburn to itself. Eventually
|
||||
necessary truncation or padding is done in libburn. Truncation
|
||||
is usually considered a misburn. Padding is considered ok.
|
||||
|
||||
libburn is supposed to work even if (*get_size) ignores the
|
||||
setting by (*set_size). But your application will not be able to
|
||||
enforce fixed track sizes by burn_track_set_size() and possibly
|
||||
even padding might be left out.
|
||||
*/
|
||||
int (*set_size)(struct burn_source *source, off_t size);
|
||||
|
||||
|
||||
/** Clean up the source specific data. This function will be called
|
||||
once by burn_source_free() when the last referer disposes the
|
||||
source.
|
||||
*/
|
||||
void (*free_data)(struct burn_source *);
|
||||
|
||||
|
||||
/** Next source, for when a source runs dry and padding is disabled
|
||||
WARNING: This is an obscure feature. Set to NULL at creation and
|
||||
from then on leave untouched and uninterpreted.
|
||||
*/
|
||||
struct burn_source *next;
|
||||
|
||||
|
||||
/** Source specific data. Here the various source classes express their
|
||||
specific properties and the instance objects store their individual
|
||||
management data.
|
||||
E.g. data could point to a struct like this:
|
||||
struct app_burn_source
|
||||
{
|
||||
struct my_app *app_handle;
|
||||
... other individual source parameters ...
|
||||
off_t fixed_size;
|
||||
};
|
||||
|
||||
Function (*free_data) has to be prepared to clean up and free
|
||||
the struct.
|
||||
*/
|
||||
void *data;
|
||||
|
||||
|
||||
/* ts A71222 : Supposed to be binary backwards compatible extension. */
|
||||
/* @since 0.4.2 */
|
||||
/** Valid only if above member .(*read)() is NULL. This indicates a
|
||||
version of struct burn_source younger than 0.
|
||||
From then on, member .version tells which further members exist
|
||||
in the memory layout of struct burn_source. libburn will only touch
|
||||
those announced extensions.
|
||||
|
||||
Versions:
|
||||
0 has .(*read)() != NULL, not even .version is present.
|
||||
1 has .version, .(*read_xt)(), .(*cancel)()
|
||||
*/
|
||||
int version;
|
||||
|
||||
/** This substitutes for (*read)() in versions above 0. */
|
||||
int (*read_xt)(struct burn_source *, unsigned char *buffer, int size);
|
||||
|
||||
/** Informs the burn_source that the consumer of data prematurely
|
||||
ended reading. This call may or may not be issued by libburn
|
||||
before (*free_data)() is called.
|
||||
*/
|
||||
int (*cancel)(struct burn_source *source);
|
||||
};
|
||||
|
||||
#endif /* LIBISOFS_WITHOUT_LIBBURN */
|
||||
|
||||
#endif /*LIBISO_LIBISOFS_H_*/
|
||||
|
@ -1868,7 +1868,7 @@ int iso_node_get_acl_text(IsoNode *node,
|
||||
|
||||
size_t num_attrs = 0, *value_lengths = NULL;
|
||||
char **names = NULL, **values = NULL;
|
||||
mode_t st_mode;
|
||||
mode_t st_mode = 0;
|
||||
int ret;
|
||||
|
||||
if (flag & (1 << 15)) {
|
||||
|
Loading…
Reference in New Issue
Block a user