Compare commits
4 Commits
ZeroTwoZer
...
ZeroOneFou
Author | SHA1 | Date | |
---|---|---|---|
16c4e3b5dc | |||
763f8a8fcb | |||
c09d5b8a2c | |||
08507c3faf |
23
README
23
README
@ -4,7 +4,6 @@
|
|||||||
libisoburn. By Vreixo Formoso <metalpain2002@yahoo.es>
|
libisoburn. By Vreixo Formoso <metalpain2002@yahoo.es>
|
||||||
and Thomas Schmitt <scdbackup@gmx.net>
|
and Thomas Schmitt <scdbackup@gmx.net>
|
||||||
Integrated sub project of libburnia-project.org.
|
Integrated sub project of libburnia-project.org.
|
||||||
http://files.libburnia-project.org/releases/libisoburn-0.2.0.pl00.tar.gz
|
|
||||||
Copyright (C) 2006-2008 Vreixo Formoso, Thomas Schmitt.
|
Copyright (C) 2006-2008 Vreixo Formoso, Thomas Schmitt.
|
||||||
Provided under GPL version 2.
|
Provided under GPL version 2.
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
@ -26,18 +25,18 @@ By using this software you agree to the disclaimer at the end of this text:
|
|||||||
|
|
||||||
Compilation, First Glimpse, Installation
|
Compilation, First Glimpse, Installation
|
||||||
|
|
||||||
Dynamic library and compile time header requirements for libisoburn-0.2.0 :
|
Dynamic library and compile time header requirements for libisoburn-0.1.4 :
|
||||||
- libburn.so.4 , version libburn-0.4.8 or higher
|
- libburn.so.4 , version libburn-0.4.4 or higher
|
||||||
- libisofs.so.6 , version libisofs-0.6.6 or higher
|
- libisofs.so.6 , version libisofs-0.6.4 or higher
|
||||||
libisoburn and xorriso will not start with libraries which are older than their
|
libisoburn and xorriso will not start with libraries which are older than their
|
||||||
headers seen at compile time. So compile in the oldest possible installation
|
headers seen at compile time. So compile in the oldest possible installation
|
||||||
setup unless you have reason to enforce a newer bug fix level.
|
setup unless you have reason to enforce a newer bug fix level.
|
||||||
|
|
||||||
Obtain libisoburn-0.2.0.pl00.tar.gz, take it to a directory of your choice
|
Obtain libisoburn-0.1.4.pl00.tar.gz, take it to a directory of your choice
|
||||||
and do:
|
and do:
|
||||||
|
|
||||||
tar xzf libisoburn-0.2.0.pl00.tar.gz
|
tar xzf libisoburn-0.1.4.pl00.tar.gz
|
||||||
cd libisoburn-0.2.0
|
cd libisoburn-0.1.4
|
||||||
|
|
||||||
Within that directory execute:
|
Within that directory execute:
|
||||||
|
|
||||||
@ -59,10 +58,10 @@ as well as
|
|||||||
|
|
||||||
libisoburn includes a command line and dialog application named xorriso,
|
libisoburn includes a command line and dialog application named xorriso,
|
||||||
which offers a substantial part of libisoburn features to shell scripts and
|
which offers a substantial part of libisoburn features to shell scripts and
|
||||||
users. Its file xorriso/README describes a standalone tarball as first
|
users. Its file xorriso/README describes a standlone tarball as first
|
||||||
preference for statically linked xorriso installation.
|
preference for xorriso installation.
|
||||||
The libisoburn installation described above produces a dynamically linked
|
The installation described above produces a dynamically linked xorriso binary
|
||||||
xorriso binary depending on libburn.so, libisofs.so, libisoburn.so.
|
as described in chapter "libisoburn" at the end of that text.
|
||||||
|
|
||||||
After installation documentation is available via
|
After installation documentation is available via
|
||||||
man xorriso
|
man xorriso
|
||||||
@ -104,7 +103,7 @@ on disk. It uses the normal POSIX filesystem calls, i.e. no libburnia stuff.
|
|||||||
This program is not installed systemwide but stays in the installation
|
This program is not installed systemwide but stays in the installation
|
||||||
directory of the xorriso tarball as test/compare_file . Usually it is
|
directory of the xorriso tarball as test/compare_file . Usually it is
|
||||||
run as -exec payload of a find command. It demands at least three arguments:
|
run as -exec payload of a find command. It demands at least three arguments:
|
||||||
The path of the file to compare, the prefix1 to be cut off from path
|
The path of the first file to compare, the prefix1 to be cut off from path
|
||||||
and the prefix2 which gets prepended afterwards to obtain the path of the
|
and the prefix2 which gets prepended afterwards to obtain the path of the
|
||||||
second file to compare.
|
second file to compare.
|
||||||
As further argument there can be -no_ctime which suppresses the comparison
|
As further argument there can be -no_ctime which suppresses the comparison
|
||||||
|
26
configure.ac
26
configure.ac
@ -1,4 +1,4 @@
|
|||||||
AC_INIT([libisoburn], [0.2.0], [http://libburnia-project.org])
|
AC_INIT([libisoburn], [0.1.4], [http://libburnia-project.org])
|
||||||
AC_PREREQ([2.50])
|
AC_PREREQ([2.50])
|
||||||
dnl AC_CONFIG_HEADER([config.h])
|
dnl AC_CONFIG_HEADER([config.h])
|
||||||
|
|
||||||
@ -13,15 +13,15 @@ dnl /ISOBURN_.*_VERSION
|
|||||||
dnl /LT_.*
|
dnl /LT_.*
|
||||||
dnl /LIB.*_REQUIRED
|
dnl /LIB.*_REQUIRED
|
||||||
|
|
||||||
dnl The API version codes are defined in libisoburn/libisoburn.h
|
dnl The API version codes are now defined in libisoburn/libisoburn.h
|
||||||
dnl #define isoburn_header_version_*
|
dnl #define isoburn_header_version_*
|
||||||
dnl configure.ac only rules the libtool revision numbering about
|
dnl configure.ac only rules the libtool revision numbering about
|
||||||
dnl LT_CURREN, LT_AGE, LT_REVISION where SONAME becomes LT_CURRENT - LT_AGE
|
dnl LT_CURREN, LT_AGE, LT_REVISION where SONAME becomes LT_CURRENT - LT_AGE
|
||||||
dnl
|
dnl
|
||||||
dnl These three are only copies to provide libtool with unused LT_RELEASE
|
dnl These three are only copies to provide libtool with unused LT_RELEASE
|
||||||
ISOBURN_MAJOR_VERSION=0
|
ISOBURN_MAJOR_VERSION=0
|
||||||
ISOBURN_MINOR_VERSION=2
|
ISOBURN_MINOR_VERSION=1
|
||||||
ISOBURN_MICRO_VERSION=0
|
ISOBURN_MICRO_VERSION=4
|
||||||
dnl ISOBURN_VERSION=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION.$ISOBURN_MICRO_VERSION
|
dnl ISOBURN_VERSION=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION.$ISOBURN_MICRO_VERSION
|
||||||
|
|
||||||
AC_SUBST(ISOBURN_MAJOR_VERSION)
|
AC_SUBST(ISOBURN_MAJOR_VERSION)
|
||||||
@ -33,15 +33,15 @@ dnl Libtool versioning
|
|||||||
dnl Generate libisoburn.so.1.x.y
|
dnl Generate libisoburn.so.1.x.y
|
||||||
dnl SONAME will become LT_CURRENT - LT_AGE
|
dnl SONAME will become LT_CURRENT - LT_AGE
|
||||||
dnl
|
dnl
|
||||||
dnl ts A80622
|
dnl ts A80428
|
||||||
dnl This is the release version 0.2.0 = libisoburn.so.1.9.0
|
dnl This is the release version 0.1.4 = libisoburn.so.1.3.0
|
||||||
dnl ### This is the development version after above stable release
|
dnl ###This is the development version after stable release libisoburn.so.1.3.0
|
||||||
dnl LT_CURRENT++, LT_AGE++ have not happened happened yet.
|
dnl ### LT_CURRENT++, LT_AGE++ havae not happened yet.
|
||||||
dnl
|
dnl
|
||||||
dnl SONAME = 10 - 9 = 1 . Library name = libburn.so.1.9.0
|
dnl SONAME = 4 - 3 = 1 . Library name = libburn.so.1.3.0
|
||||||
LT_RELEASE=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION
|
LT_RELEASE=$ISOBURN_MAJOR_VERSION.$ISOBURN_MINOR_VERSION
|
||||||
LT_CURRENT=10
|
LT_CURRENT=4
|
||||||
LT_AGE=9
|
LT_AGE=3
|
||||||
LT_REVISION=0
|
LT_REVISION=0
|
||||||
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
|
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
|
||||||
|
|
||||||
@ -99,8 +99,8 @@ AC_CHECK_HEADER(libburn/libburn.h)
|
|||||||
AC_CHECK_HEADER(libisofs/libisofs.h)
|
AC_CHECK_HEADER(libisofs/libisofs.h)
|
||||||
|
|
||||||
dnl Check for proper library versions
|
dnl Check for proper library versions
|
||||||
LIBBURN_REQUIRED=0.4.8
|
LIBBURN_REQUIRED=0.4.4
|
||||||
LIBISOFS_REQUIRED=0.6.6
|
LIBISOFS_REQUIRED=0.6.4
|
||||||
PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED)
|
PKG_CHECK_MODULES(LIBBURN, libburn-1 >= $LIBBURN_REQUIRED)
|
||||||
PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED)
|
PKG_CHECK_MODULES(LIBISOFS, libisofs-1 >= $LIBISOFS_REQUIRED)
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
data source for libisoburn.
|
data source for libisoburn.
|
||||||
|
|
||||||
Copyright 2007 - 2008 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
|
Copyright 2007 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
|
||||||
and Thomas Schmitt <scdbackup@gmx.net>
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -28,24 +27,24 @@
|
|||||||
#include "isoburn.h"
|
#include "isoburn.h"
|
||||||
|
|
||||||
|
|
||||||
/* Cached reading of image tree data */
|
/* Powers of 2 only ! Less than 16 makes not much sense. */
|
||||||
/* Multi tile: 32 * 64 kB */
|
|
||||||
|
|
||||||
/* The size of a single tile.
|
|
||||||
Powers of 2 only ! Less than 16 makes not much sense.
|
|
||||||
*/
|
|
||||||
#define Libisoburn_tile_blockS 32
|
#define Libisoburn_tile_blockS 32
|
||||||
|
|
||||||
/* The number of tiles in the cache
|
/* Undef to get to older single tile version
|
||||||
*/
|
*/
|
||||||
#define Libisoburn_cache_tileS 32
|
#define Libisoburn_cache_tileS 32
|
||||||
|
|
||||||
|
|
||||||
/* Debugging only: This reports cache loads on stderr.
|
/* Debugging only: This reports cache loads on stderr.
|
||||||
#define Libisoburn_read_cache_reporT 1
|
#define Libisoburn_read_cache_reporT 1
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Cached reading of image tree data */
|
||||||
|
|
||||||
|
#ifdef Libisoburn_cache_tileS
|
||||||
|
|
||||||
|
/* Multi tile: 32 * 64 kB */
|
||||||
|
|
||||||
struct isoburn_cache_tile {
|
struct isoburn_cache_tile {
|
||||||
char cache_data[Libisoburn_tile_blockS * 2048];
|
char cache_data[Libisoburn_tile_blockS * 2048];
|
||||||
uint32_t cache_lba;
|
uint32_t cache_lba;
|
||||||
@ -77,11 +76,7 @@ int ds_read_block(IsoDataSource *src, uint32_t lba, uint8_t *buffer)
|
|||||||
struct isoburn_cached_drive *icd;
|
struct isoburn_cached_drive *icd;
|
||||||
|
|
||||||
if(src == NULL || buffer == NULL)
|
if(src == NULL || buffer == NULL)
|
||||||
/* It is not required by the specs of libisofs but implicitely assumed
|
return -1;
|
||||||
by its current implementation that a data source read result <0 is
|
|
||||||
a valid libisofs error code.
|
|
||||||
*/
|
|
||||||
return ISO_NULL_POINTER;
|
|
||||||
|
|
||||||
icd = (struct isoburn_cached_drive *) src->data;
|
icd = (struct isoburn_cached_drive *) src->data;
|
||||||
d = (struct burn_drive*) icd->drive;
|
d = (struct burn_drive*) icd->drive;
|
||||||
@ -133,24 +128,9 @@ int ds_read_block(IsoDataSource *src, uint32_t lba, uint8_t *buffer)
|
|||||||
if (ret > 0)
|
if (ret > 0)
|
||||||
return 1;
|
return 1;
|
||||||
tiles[oldest].last_error_lba = lba;
|
tiles[oldest].last_error_lba = lba;
|
||||||
|
sprintf(msg, "ds_read_block(%lu) returns -1", (unsigned long) lba);
|
||||||
/* It is not required by the specs of libisofs but implicitely assumed
|
burn_msgs_submit(0x00060000, msg, 0, "DEBUG", NULL);
|
||||||
...
|
return -1;
|
||||||
But it is not possible to ignore FAILURE.
|
|
||||||
libisofs insists in original error codes, i.e. libisoburn cannot
|
|
||||||
change severity FAILURE associated with ISO_FILE_READ_ERROR.
|
|
||||||
So ISO_FILE_READ_ERROR is not an option and libisoburn has to
|
|
||||||
misuse ISO_FILE_CANT_WRITE, which is actually for image generation
|
|
||||||
and not for image reading.
|
|
||||||
This is quite wrong, although the error message text is unclear
|
|
||||||
enough to make it appear plausible.
|
|
||||||
*/
|
|
||||||
ret= ISO_FILE_CANT_WRITE;
|
|
||||||
if(ret >= 0)
|
|
||||||
ret = -1;
|
|
||||||
sprintf(msg, "ds_read_block(%lu) returns %d", (unsigned long) lba, ret);
|
|
||||||
isoburn_msgs_submit(NULL, 0x00060000, msg, 0, "DEBUG", 0);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef Libisoburn_read_cache_reporT
|
#ifdef Libisoburn_read_cache_reporT
|
||||||
@ -235,3 +215,139 @@ static int ds_inc_age(struct isoburn_cached_drive *icd, int idx, int flag)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#else /* Libisoburn_cache_tileS */
|
||||||
|
|
||||||
|
|
||||||
|
/* Single tile 128 kB */
|
||||||
|
|
||||||
|
|
||||||
|
struct isoburn_cached_drive {
|
||||||
|
struct burn_drive *drive;
|
||||||
|
|
||||||
|
char cache_data[Libisoburn_tile_blockS * 2048];
|
||||||
|
uint32_t cache_lba;
|
||||||
|
uint32_t last_error_lba;
|
||||||
|
uint32_t last_aligned_error_lba;
|
||||||
|
int cache_hits;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* Debugging only: This reports cache loads on stderr.
|
||||||
|
#define Libisoburn_read_cache_reporT 1
|
||||||
|
*/
|
||||||
|
|
||||||
|
int
|
||||||
|
ds_read_block(IsoDataSource *src, uint32_t lba, uint8_t *buffer)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
struct burn_drive *d;
|
||||||
|
off_t count;
|
||||||
|
uint32_t aligned_lba;
|
||||||
|
char msg[80];
|
||||||
|
|
||||||
|
struct isoburn_cached_drive *icd;
|
||||||
|
|
||||||
|
if(src == NULL || buffer == NULL)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
icd = (struct isoburn_cached_drive *) src->data;
|
||||||
|
d = (struct burn_drive*) icd->drive;
|
||||||
|
|
||||||
|
aligned_lba= lba & ~(Libisoburn_tile_blockS - 1);
|
||||||
|
if(aligned_lba == icd->cache_lba && icd->cache_lba != 0xffffffff) {
|
||||||
|
(icd->cache_hits)++;
|
||||||
|
memcpy(buffer, icd->cache_data + (lba - aligned_lba) * 2048, 2048);
|
||||||
|
count= 2048;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
icd->cache_lba= 0xffffffff; /* invalidate cache */
|
||||||
|
if(icd->last_aligned_error_lba == aligned_lba) {
|
||||||
|
ret = 0;
|
||||||
|
} else {
|
||||||
|
ret = burn_read_data(d, (off_t) aligned_lba * (off_t) 2048,
|
||||||
|
(char *) icd->cache_data,
|
||||||
|
Libisoburn_tile_blockS * 2048, &count, 0);
|
||||||
|
}
|
||||||
|
if (ret <= 0 ) {
|
||||||
|
icd->last_aligned_error_lba = aligned_lba;
|
||||||
|
|
||||||
|
/* Read-ahead failure ? Try to read 2048 directly. */
|
||||||
|
if(icd->last_error_lba == lba)
|
||||||
|
ret = 0;
|
||||||
|
else
|
||||||
|
ret = burn_read_data(d, (off_t) lba * (off_t) 2048, (char *) buffer,
|
||||||
|
2048, &count, 0);
|
||||||
|
if (ret > 0)
|
||||||
|
return 1;
|
||||||
|
icd->last_error_lba = lba;
|
||||||
|
sprintf(msg, "ds_read_block(%lu) returns -1", (unsigned long) lba);
|
||||||
|
burn_msgs_submit(0x00060000, msg, 0, "DEBUG", NULL);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef Libisoburn_read_cache_reporT
|
||||||
|
fprintf(stderr, "After %3d hits, new load from %8x , count= %d\n",
|
||||||
|
icd->cache_hits, aligned_lba, (int) count);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
icd->cache_lba= aligned_lba;
|
||||||
|
icd->cache_hits= 1;
|
||||||
|
memcpy(buffer, icd->cache_data + (lba - aligned_lba) * 2048, 2048);
|
||||||
|
count= 2048;
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
ds_open(IsoDataSource *src)
|
||||||
|
{
|
||||||
|
/* nothing to do, device is always grabbed */
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
ds_close(IsoDataSource *src)
|
||||||
|
{
|
||||||
|
/* nothing to do, device is always grabbed */
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
ds_free_data(IsoDataSource *src)
|
||||||
|
{
|
||||||
|
/* nothing to do */;
|
||||||
|
if(src->data != NULL)
|
||||||
|
free(src->data);
|
||||||
|
src->data= NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
IsoDataSource *
|
||||||
|
isoburn_data_source_new(struct burn_drive *d)
|
||||||
|
{
|
||||||
|
IsoDataSource *ret;
|
||||||
|
struct isoburn_cached_drive *icd= NULL;
|
||||||
|
|
||||||
|
if (d==NULL)
|
||||||
|
return NULL;
|
||||||
|
ret = malloc(sizeof(IsoDataSource));
|
||||||
|
icd = calloc(1,sizeof(struct isoburn_cached_drive));
|
||||||
|
if (ret == NULL || icd == NULL)
|
||||||
|
return NULL;
|
||||||
|
ret->refcount = 1;
|
||||||
|
ret->read_block = ds_read_block;
|
||||||
|
ret->open = ds_open;
|
||||||
|
ret->close = ds_close;
|
||||||
|
ret->free_data = ds_free_data;
|
||||||
|
ret->data = icd;
|
||||||
|
icd->drive = d;
|
||||||
|
icd->cache_lba = 0xffffffff;
|
||||||
|
icd->cache_hits = 0;
|
||||||
|
icd->last_error_lba = 0xffffffff;
|
||||||
|
icd->last_aligned_error_lba = 0xffffffff;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* ! Libisoburn_cache_tileS */
|
||||||
|
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
/*
|
/*
|
||||||
Class core of libisoburn.
|
Class core of libisoburn.
|
||||||
|
|
||||||
Copyright 2007 - 2008 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
|
Copyright 2007 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
|
||||||
Thomas Schmitt <scdbackup@gmx.net>
|
and Thomas Schmitt <scdbackup@gmx.net>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* ( derived from stub generated by CgeN on Sat, 01 Sep 2007 12:04:36 GMT ) */
|
/* ( derived from stub generated by CgeN on Sat, 01 Sep 2007 12:04:36 GMT ) */
|
||||||
@ -37,61 +37,10 @@
|
|||||||
|
|
||||||
#include "isoburn.h"
|
#include "isoburn.h"
|
||||||
|
|
||||||
|
/* No more: version numbers out of configure.ac
|
||||||
/* Default values for application provided msgs_submit methods.
|
major.minor.micro now comes from libisoburn.h
|
||||||
To be attached to newly aquired drives.
|
#include "../version.h"
|
||||||
*/
|
*/
|
||||||
int (*libisoburn_default_msgs_submit)
|
|
||||||
(void *handle, int error_code, char msg_text[],
|
|
||||||
int os_errno, char severity[], int flag)= NULL;
|
|
||||||
void *libisoburn_default_msgs_submit_handle= NULL;
|
|
||||||
int libisoburn_default_msgs_submit_flag= 0;
|
|
||||||
|
|
||||||
|
|
||||||
/* ----------------------- isoburn_toc_entry ---------------------- */
|
|
||||||
|
|
||||||
|
|
||||||
int isoburn_toc_entry_new(struct isoburn_toc_entry **objpt,
|
|
||||||
struct isoburn_toc_entry *boss, int flag)
|
|
||||||
{
|
|
||||||
struct isoburn_toc_entry *o, *s;
|
|
||||||
|
|
||||||
*objpt= o= (struct isoburn_toc_entry *)
|
|
||||||
malloc(sizeof(struct isoburn_toc_entry));
|
|
||||||
if(o==NULL) {
|
|
||||||
isoburn_msgs_submit(NULL, 0x00060000,
|
|
||||||
"Cannot allocate memory for isoburn toc entry",
|
|
||||||
0, "FATAL", 0);
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
o->session= 0;
|
|
||||||
o->track_no= 0;
|
|
||||||
o->start_lba= -1;
|
|
||||||
o->track_blocks= 0;
|
|
||||||
o->next= NULL;
|
|
||||||
if(boss!=NULL) {
|
|
||||||
for(s= boss; s->next!=NULL; s= s->next);
|
|
||||||
s->next= o;
|
|
||||||
}
|
|
||||||
return(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* @param flag bit0= delete all subordinates too
|
|
||||||
*/
|
|
||||||
int isoburn_toc_entry_destroy(struct isoburn_toc_entry **o, int flag)
|
|
||||||
{
|
|
||||||
if(*o==NULL)
|
|
||||||
return(0);
|
|
||||||
if(flag&1)
|
|
||||||
isoburn_toc_entry_destroy(&((*o)->next), flag);
|
|
||||||
free((char *) (*o));
|
|
||||||
*o= NULL;
|
|
||||||
return(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* --------------------- end isoburn_toc_entry -------------------- */
|
|
||||||
|
|
||||||
/* -------------------------- isoburn ----------------------- */
|
/* -------------------------- isoburn ----------------------- */
|
||||||
|
|
||||||
@ -110,31 +59,31 @@ int isoburn_new(struct isoburn **objpt, int flag)
|
|||||||
|
|
||||||
*objpt= o= (struct isoburn *) malloc(sizeof(struct isoburn));
|
*objpt= o= (struct isoburn *) malloc(sizeof(struct isoburn));
|
||||||
if(o==NULL) {
|
if(o==NULL) {
|
||||||
isoburn_msgs_submit(NULL, 0x00060000,
|
burn_msgs_submit(0x00060000,
|
||||||
"Cannot allocate memory for isoburn control object",
|
"Cannot allocate memory for isoburn control object",
|
||||||
0, "FATAL", 0);
|
0, "FATAL", NULL);
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
o->drive= NULL;
|
o->drive= NULL;
|
||||||
o->emulation_mode= 0;
|
o->emulation_mode= 0;
|
||||||
o->fabricated_msc1= -1;
|
o->min_start_byte= 0;
|
||||||
o->zero_nwa= Libisoburn_overwriteable_starT;
|
o->nwa= 0;
|
||||||
o->min_start_byte= o->zero_nwa * 2048;
|
|
||||||
o->nwa= o->zero_nwa;
|
|
||||||
o->truncate= 0;
|
o->truncate= 0;
|
||||||
|
|
||||||
|
#ifdef Libisoburn_no_fifO
|
||||||
o->iso_source= NULL;
|
o->iso_source= NULL;
|
||||||
o->fabricated_disc_status= BURN_DISC_UNREADY;
|
#else
|
||||||
o->toc= NULL;
|
o->fifo= NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
o->wrote_well= -1;
|
o->wrote_well= -1;
|
||||||
for(i=0;i<Libisoburn_target_head_sizE;i++)
|
o->fabricated_disc_status= BURN_DISC_UNREADY;
|
||||||
|
for(i=0;i<65536;i++)
|
||||||
o->target_iso_head[i]= 0;
|
o->target_iso_head[i]= 0;
|
||||||
o->image= NULL;
|
o->image= NULL;
|
||||||
o->read_pacifier= NULL;
|
o->read_pacifier= NULL;
|
||||||
o->read_pacifier_handle= NULL;
|
o->read_pacifier_handle= NULL;
|
||||||
o->msgs_submit= NULL;
|
|
||||||
o->msgs_submit_handle= NULL;
|
|
||||||
o->msgs_submit_flag= 0;
|
|
||||||
o->prev= NULL;
|
o->prev= NULL;
|
||||||
o->next= NULL;
|
o->next= NULL;
|
||||||
ret= iso_image_new("ISOIMAGE", &o->image);
|
ret= iso_image_new("ISOIMAGE", &o->image);
|
||||||
@ -171,10 +120,15 @@ int isoburn_destroy(struct isoburn **objpt, int flag)
|
|||||||
|
|
||||||
if(o->image!=NULL)
|
if(o->image!=NULL)
|
||||||
iso_image_unref(o->image);
|
iso_image_unref(o->image);
|
||||||
if(o->toc!=NULL)
|
|
||||||
isoburn_toc_entry_destroy(&(o->toc), 1); /* all */
|
#ifdef Libisoburn_no_fifO
|
||||||
if(o->iso_source!=NULL)
|
if(o->iso_source!=NULL)
|
||||||
burn_source_free(o->iso_source);
|
burn_source_free(o->iso_source);
|
||||||
|
#else
|
||||||
|
if(o->fifo!=NULL)
|
||||||
|
burn_source_free(o->fifo);
|
||||||
|
#endif /* ! Libisoburn_no_fifO */
|
||||||
|
|
||||||
|
|
||||||
free((char *) o);
|
free((char *) o);
|
||||||
*objpt= NULL;
|
*objpt= NULL;
|
||||||
@ -308,65 +262,28 @@ int isoburn_find_by_drive(struct isoburn **pt, struct burn_drive *d, int flag)
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int isoburn_msgs_submit(struct isoburn *o, int error_code, char msg_text[],
|
|
||||||
int os_errno, char severity[], int flag)
|
|
||||||
{
|
|
||||||
int ret, use_drive_method= 0;
|
|
||||||
|
|
||||||
if(o!=NULL)
|
|
||||||
if(o->msgs_submit!=NULL)
|
|
||||||
use_drive_method= 1;
|
|
||||||
if(use_drive_method) {
|
|
||||||
ret= o->msgs_submit(o->msgs_submit_handle, error_code, msg_text, os_errno,
|
|
||||||
severity, o->msgs_submit_flag);
|
|
||||||
return(ret);
|
|
||||||
}
|
|
||||||
if(libisoburn_default_msgs_submit != NULL) {
|
|
||||||
ret= libisoburn_default_msgs_submit(libisoburn_default_msgs_submit_handle,
|
|
||||||
error_code, msg_text, os_errno, severity,
|
|
||||||
libisoburn_default_msgs_submit_flag);
|
|
||||||
return(ret);
|
|
||||||
}
|
|
||||||
/* Fallback: use message queue of libburn */
|
|
||||||
burn_msgs_submit(error_code, msg_text, os_errno, severity, NULL);
|
|
||||||
return(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static
|
static
|
||||||
int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
|
int isoburn_prepare_disc_aux(struct burn_drive *d, struct burn_disc **disc,
|
||||||
struct burn_disc **disc,
|
|
||||||
struct isoburn_imgen_opts *opts, int new_img)
|
struct isoburn_imgen_opts *opts, int new_img)
|
||||||
{
|
{
|
||||||
struct burn_source *wsrc;
|
struct burn_source *wsrc;
|
||||||
struct burn_session *session;
|
struct burn_session *session;
|
||||||
struct burn_track *track;
|
struct burn_track *track;
|
||||||
struct isoburn *in_o, *out_o;
|
struct isoburn *o;
|
||||||
IsoWriteOpts *wopts= NULL;
|
IsoWriteOpts *wopts= NULL;
|
||||||
enum burn_disc_status state;
|
enum burn_disc_status state;
|
||||||
int ret, fifo_chunks, lba, nwa;
|
int ret, fifo_chunks;
|
||||||
|
|
||||||
ret= isoburn_find_emulator(&in_o, in_d, 0);
|
ret= isoburn_find_emulator(&o, d, 0);
|
||||||
if(ret<0 || in_o==NULL)
|
if(ret<0 || o==NULL)
|
||||||
{ret= -1; goto ex;}
|
{ret= -1; goto ex;}
|
||||||
ret= isoburn_find_emulator(&out_o, out_d, 0);
|
o->wrote_well= 0; /* early end will be registered as failure */
|
||||||
if(ret<0 || out_o==NULL)
|
|
||||||
{ret= -1; goto ex;}
|
|
||||||
/* early end will be registered as failure */
|
|
||||||
in_o->wrote_well= out_o->wrote_well= 0;
|
|
||||||
|
|
||||||
state = isoburn_disc_get_status(in_d);
|
state = isoburn_disc_get_status(d);
|
||||||
if (state != BURN_DISC_BLANK && state != BURN_DISC_APPENDABLE &&
|
if (state != BURN_DISC_BLANK && state != BURN_DISC_APPENDABLE
|
||||||
state != BURN_DISC_FULL) {
|
&& (state != BURN_DISC_FULL || ! new_img)) {
|
||||||
isoburn_msgs_submit(in_o, 0x00060000, "Unsuitable source media state",
|
/* unsuitable status */
|
||||||
0, "FAILURE", 0);
|
burn_msgs_submit(0x00060000, "Unsuitable media state", 0, "FAILURE", NULL);
|
||||||
{ret= -2; goto ex;}
|
|
||||||
}
|
|
||||||
state = isoburn_disc_get_status(out_d);
|
|
||||||
if (state != BURN_DISC_BLANK && state != BURN_DISC_APPENDABLE) {
|
|
||||||
isoburn_msgs_submit(out_o, 0x00060000, "Unsuitable target media state",
|
|
||||||
0, "FAILURE", 0);
|
|
||||||
{ret= -2; goto ex;}
|
{ret= -2; goto ex;}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -403,28 +320,36 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
|
|||||||
iso_write_opts_set_default_uid(wopts, opts->uid);
|
iso_write_opts_set_default_uid(wopts, opts->uid);
|
||||||
iso_write_opts_set_default_gid(wopts, opts->gid);
|
iso_write_opts_set_default_gid(wopts, opts->gid);
|
||||||
iso_write_opts_set_output_charset(wopts, opts->output_charset);
|
iso_write_opts_set_output_charset(wopts, opts->output_charset);
|
||||||
|
#ifdef Libisoburn_no_fifO
|
||||||
iso_write_opts_set_fifo_size(wopts, fifo_chunks);
|
iso_write_opts_set_fifo_size(wopts, fifo_chunks);
|
||||||
|
#endif /* Libisoburn_no_fifO */
|
||||||
|
|
||||||
|
if (new_img) {
|
||||||
ret = isoburn_disc_track_lba_nwa(out_d, NULL, 0, &lba, &nwa);
|
iso_write_opts_set_ms_block(wopts, 0);
|
||||||
if (ret != 1) {
|
opts->effective_lba= 0;
|
||||||
isoburn_msgs_submit(out_o, 0x00060000,
|
iso_write_opts_set_appendable(wopts, 0);
|
||||||
"Cannot determine next writeable address", 0, "FAILURE", 0);
|
iso_write_opts_set_overwrite_buf(wopts, NULL);
|
||||||
{ret= -3; goto ex;}
|
} else {
|
||||||
|
int lba, nwa;
|
||||||
|
ret = isoburn_disc_track_lba_nwa(d, NULL, 0, &lba, &nwa);
|
||||||
|
if (ret != 1) {
|
||||||
|
burn_msgs_submit(0x00060000, "Cannot determine next writeable address", 0,
|
||||||
|
"FAILURE", NULL);
|
||||||
|
{ret= -3; goto ex;}
|
||||||
|
}
|
||||||
|
if (nwa == 0 && state == BURN_DISC_APPENDABLE) {
|
||||||
|
/* invalid nwa */
|
||||||
|
burn_msgs_submit(0x00060000, "Encountered 0 as next writeable address", 0,
|
||||||
|
"FAILURE", NULL);
|
||||||
|
{ret= -4; goto ex;}
|
||||||
|
}
|
||||||
|
iso_write_opts_set_ms_block(wopts, nwa);
|
||||||
|
opts->effective_lba= nwa;
|
||||||
|
iso_write_opts_set_appendable(wopts, 1);
|
||||||
|
iso_write_opts_set_overwrite_buf(wopts, o->target_iso_head);
|
||||||
}
|
}
|
||||||
if (nwa == 0 && state == BURN_DISC_APPENDABLE) {
|
|
||||||
isoburn_msgs_submit(out_o, 0x00060000,
|
|
||||||
"Encountered 0 as next writeable address of appendable",
|
|
||||||
0, "FAILURE", 0);
|
|
||||||
{ret= -4; goto ex;}
|
|
||||||
}
|
|
||||||
iso_write_opts_set_ms_block(wopts, nwa);
|
|
||||||
opts->effective_lba= nwa;
|
|
||||||
iso_write_opts_set_appendable(wopts, !new_img);
|
|
||||||
iso_write_opts_set_overwrite_buf(wopts,
|
|
||||||
nwa>0 ? out_o->target_iso_head : NULL);
|
|
||||||
|
|
||||||
ret = iso_image_create_burn_source(in_o->image, wopts, &wsrc);
|
ret = iso_image_create_burn_source(o->image, wopts, &wsrc);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
isoburn_report_iso_error(ret, "Cannot create burn source", 0, "FAILURE", 0);
|
isoburn_report_iso_error(ret, "Cannot create burn source", 0, "FAILURE", 0);
|
||||||
{ret= -1; goto ex;}
|
{ret= -1; goto ex;}
|
||||||
@ -432,20 +357,35 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
|
|||||||
|
|
||||||
/* TODO check return values for failure. propertly clean-up on error */
|
/* TODO check return values for failure. propertly clean-up on error */
|
||||||
|
|
||||||
out_o->iso_source= wsrc;
|
#ifdef Libisoburn_no_fifO
|
||||||
|
o->iso_source= wsrc;
|
||||||
|
#else
|
||||||
|
o->fifo = burn_fifo_source_new(wsrc, 2048, fifo_chunks, 0);
|
||||||
|
burn_source_free(wsrc);
|
||||||
|
if (o->fifo == NULL) {
|
||||||
|
burn_msgs_submit(0x00060000, "Cannot attach fifo", 0, "FATAL", NULL);
|
||||||
|
{ret= -1; goto ex;}
|
||||||
|
}
|
||||||
|
#endif /* ! Libisoburn_no_fifO */
|
||||||
|
|
||||||
*disc = burn_disc_create();
|
*disc = burn_disc_create();
|
||||||
session = burn_session_create();
|
session = burn_session_create();
|
||||||
burn_disc_add_session(*disc, session, BURN_POS_END);
|
burn_disc_add_session(*disc, session, BURN_POS_END);
|
||||||
track = burn_track_create();
|
track = burn_track_create();
|
||||||
burn_track_set_source(track, out_o->iso_source);
|
|
||||||
|
#ifdef Libisoburn_no_fifO
|
||||||
|
burn_track_set_source(track, o->iso_source);
|
||||||
|
#else
|
||||||
|
burn_track_set_source(track, o->fifo);
|
||||||
|
#endif /* ! Libisoburn_no_fifO */
|
||||||
|
|
||||||
burn_session_add_track(session, track, BURN_POS_END);
|
burn_session_add_track(session, track, BURN_POS_END);
|
||||||
|
|
||||||
/* give up local references */
|
/* give up local references */
|
||||||
burn_track_free(track);
|
burn_track_free(track);
|
||||||
burn_session_free(session);
|
burn_session_free(session);
|
||||||
|
|
||||||
in_o->wrote_well= out_o->wrote_well= -1; /* neutral */
|
o->wrote_well= -1; /* neutral */
|
||||||
ret= 1;
|
ret= 1;
|
||||||
ex:
|
ex:
|
||||||
if(wopts!=NULL)
|
if(wopts!=NULL)
|
||||||
@ -453,23 +393,39 @@ ex:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int isoburn_prepare_disc(struct burn_drive *d, struct burn_disc **disc,
|
int isoburn_prepare_disc(struct burn_drive *d, struct burn_disc **disc,
|
||||||
struct isoburn_imgen_opts *opts)
|
struct isoburn_imgen_opts *opts)
|
||||||
{
|
{
|
||||||
return isoburn_prepare_disc_aux(d, d, disc, opts, 0);
|
return isoburn_prepare_disc_aux(d, disc, opts, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int isoburn_prepare_new_image(struct burn_drive *d, struct burn_disc **disc,
|
int isoburn_prepare_new_image(struct burn_drive *d, struct burn_disc **disc,
|
||||||
struct isoburn_imgen_opts *opts,
|
struct isoburn_imgen_opts *opts,
|
||||||
struct burn_drive *out_drive)
|
struct burn_drive *out_drive)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
struct isoburn *in_o, *out_o;
|
||||||
|
|
||||||
ret= isoburn_prepare_disc_aux(d, out_drive, disc, opts, 1);
|
ret= isoburn_prepare_disc_aux(d, disc, opts, 1);
|
||||||
if (ret<=0)
|
if (ret<=0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
#ifdef Libisoburn_no_fifO
|
||||||
|
/* Hand over source reference for optional fifo status inquiry */
|
||||||
|
if(out_drive==NULL)
|
||||||
|
return 1;
|
||||||
|
ret= isoburn_find_emulator(&out_o, out_drive, 0);
|
||||||
|
if(ret<0 || out_o==NULL)
|
||||||
|
return 1;
|
||||||
|
ret= isoburn_find_emulator(&in_o, d, 0);
|
||||||
|
if(ret<0 || in_o==NULL)
|
||||||
|
return 1; /* then without fifo status inquiry */
|
||||||
|
if(out_o->iso_source!=NULL)
|
||||||
|
burn_source_free(out_o->iso_source);
|
||||||
|
out_o->iso_source= in_o->iso_source;
|
||||||
|
in_o->iso_source= NULL;
|
||||||
|
#endif /* Libisoburn_no_fifO */
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -559,8 +515,8 @@ int isoburn_ropt_new(struct isoburn_read_opts **new_o, int flag)
|
|||||||
|
|
||||||
o= (*new_o)= calloc(1, sizeof(struct isoburn_read_opts));
|
o= (*new_o)= calloc(1, sizeof(struct isoburn_read_opts));
|
||||||
if(o==NULL) {
|
if(o==NULL) {
|
||||||
isoburn_msgs_submit(NULL, 0x00060000,
|
burn_msgs_submit(0x00060000, "Cannot allocate memory for read options",
|
||||||
"Cannot allocate memory for read options", 0, "FATAL", 0);
|
0, "FATAL", NULL);
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
o->norock= 0;
|
o->norock= 0;
|
||||||
@ -696,9 +652,9 @@ int isoburn_igopt_new(struct isoburn_imgen_opts **new_o, int flag)
|
|||||||
|
|
||||||
o= (*new_o)= calloc(1, sizeof(struct isoburn_imgen_opts));
|
o= (*new_o)= calloc(1, sizeof(struct isoburn_imgen_opts));
|
||||||
if(o==NULL) {
|
if(o==NULL) {
|
||||||
isoburn_msgs_submit(NULL, 0x00060000,
|
burn_msgs_submit(0x00060000,
|
||||||
"Cannot allocate memory for image generation options",
|
"Cannot allocate memory for image generation options",
|
||||||
0, "FATAL", 0);
|
0, "FATAL", NULL);
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
o->level= 2;
|
o->level= 2;
|
||||||
|
@ -10,33 +10,13 @@
|
|||||||
#define Isoburn_includeD
|
#define Isoburn_includeD
|
||||||
|
|
||||||
|
|
||||||
|
/* <<< transition macro */
|
||||||
|
#define Libisoburn_no_fifO 1
|
||||||
|
|
||||||
|
|
||||||
/* for uint8_t */
|
/* for uint8_t */
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
/* For emulated TOC of overwriteable media.
|
|
||||||
Provides minimal info for faking a struct burn_toc_entry.
|
|
||||||
*/
|
|
||||||
struct isoburn_toc_entry {
|
|
||||||
int session;
|
|
||||||
int track_no; /* point */
|
|
||||||
int start_lba;
|
|
||||||
int track_blocks;
|
|
||||||
|
|
||||||
struct isoburn_toc_entry *next;
|
|
||||||
};
|
|
||||||
|
|
||||||
int isoburn_toc_entry_new(struct isoburn_toc_entry **objpt,
|
|
||||||
struct isoburn_toc_entry *boss, int flag);
|
|
||||||
|
|
||||||
/* @param flag bit0= delete all subordinates too
|
|
||||||
*/
|
|
||||||
int isoburn_toc_entry_destroy(struct isoburn_toc_entry **o, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/* Size of target_iso_head which is to be written during
|
|
||||||
isoburn_activate_session()
|
|
||||||
*/
|
|
||||||
#define Libisoburn_target_head_sizE (32*2048)
|
|
||||||
|
|
||||||
struct isoburn {
|
struct isoburn {
|
||||||
|
|
||||||
@ -56,15 +36,6 @@ struct isoburn {
|
|||||||
struct isoburn *next;
|
struct isoburn *next;
|
||||||
|
|
||||||
|
|
||||||
/* If >= 0, this address is used as reply for isoburn_disc_get_msc1()
|
|
||||||
*/
|
|
||||||
int fabricated_msc1;
|
|
||||||
|
|
||||||
/* The nwa to be used for a first session on the present kind of overwriteable
|
|
||||||
media (usually Libisoburn_overwriteable_starT, but might be forced to 0)
|
|
||||||
*/
|
|
||||||
int zero_nwa;
|
|
||||||
|
|
||||||
/* Start address as given by image examination (bytes, not blocks) */
|
/* Start address as given by image examination (bytes, not blocks) */
|
||||||
off_t min_start_byte;
|
off_t min_start_byte;
|
||||||
|
|
||||||
@ -80,10 +51,11 @@ struct isoburn {
|
|||||||
*/
|
*/
|
||||||
enum burn_disc_status fabricated_disc_status;
|
enum burn_disc_status fabricated_disc_status;
|
||||||
|
|
||||||
/* Eventual emulated table of content read from the chain of ISO headers
|
#ifndef Libisoburn_no_fifO
|
||||||
on overwriteable media.
|
/* The fifo which is installed between track and libisofs burn_source
|
||||||
*/
|
*/
|
||||||
struct isoburn_toc_entry *toc;
|
struct burn_source *fifo;
|
||||||
|
#endif /* ! Libisoburn_no_fifO */
|
||||||
|
|
||||||
/* Indicator wether the most recent burn run worked :
|
/* Indicator wether the most recent burn run worked :
|
||||||
-1 = undetermined, ask libburn , 0 = failure , 1 = success
|
-1 = undetermined, ask libburn , 0 = failure , 1 = success
|
||||||
@ -94,15 +66,17 @@ struct isoburn {
|
|||||||
|
|
||||||
/* Buffered ISO head from media (should that become part of
|
/* Buffered ISO head from media (should that become part of
|
||||||
ecma119_read_opts ?) */
|
ecma119_read_opts ?) */
|
||||||
uint8_t target_iso_head[Libisoburn_target_head_sizE];
|
uint8_t target_iso_head[65536];
|
||||||
|
|
||||||
/* Libisofs image context */
|
/* Libisofs image context */
|
||||||
IsoImage *image;
|
IsoImage *image;
|
||||||
|
|
||||||
|
#ifdef Libisoburn_no_fifO
|
||||||
/* The burn source which transfers data from libisofs to libburn.
|
/* The burn source which transfers data from libisofs to libburn.
|
||||||
It has its own fifo.
|
It has its own fifo.
|
||||||
*/
|
*/
|
||||||
struct burn_source *iso_source;
|
struct burn_source *iso_source;
|
||||||
|
#endif /* Libisoburn_no_fifO */
|
||||||
|
|
||||||
/* For iso_tree_set_report_callback() */
|
/* For iso_tree_set_report_callback() */
|
||||||
int (*read_pacifier)(IsoImage*, IsoFileSource*);
|
int (*read_pacifier)(IsoImage*, IsoFileSource*);
|
||||||
@ -110,12 +84,6 @@ struct isoburn {
|
|||||||
/* For iso_image_attach_data() */
|
/* For iso_image_attach_data() */
|
||||||
void *read_pacifier_handle;
|
void *read_pacifier_handle;
|
||||||
|
|
||||||
/* An application provided method to immediately deliver messages */
|
|
||||||
int (*msgs_submit)(void *handle, int error_code, char msg_text[],
|
|
||||||
int os_errno, char severity[], int flag);
|
|
||||||
void *msgs_submit_handle; /* specific to application method */
|
|
||||||
int msgs_submit_flag; /* specific to application method */
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -174,11 +142,6 @@ int isoburn_invalidate_iso(struct isoburn *o, int flag);
|
|||||||
int isoburn_find_emulator(struct isoburn **pt,
|
int isoburn_find_emulator(struct isoburn **pt,
|
||||||
struct burn_drive *drive, int flag);
|
struct burn_drive *drive, int flag);
|
||||||
|
|
||||||
/* Deliver an event message. Either via a non-NULL o->msgs_submit() method
|
|
||||||
or via burn_msgs_submit() of libburn.
|
|
||||||
*/
|
|
||||||
int isoburn_msgs_submit(struct isoburn *o, int error_code, char msg_text[],
|
|
||||||
int os_errno, char severity[], int flag);
|
|
||||||
|
|
||||||
/** Set the start address for an emulated add-on session. The value will
|
/** Set the start address for an emulated add-on session. The value will
|
||||||
be rounded up to the alignment necessary for the media. The aligned
|
be rounded up to the alignment necessary for the media. The aligned
|
||||||
@ -365,71 +328,5 @@ struct isoburn_imgen_opts {
|
|||||||
int effective_lba;
|
int effective_lba;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* Alignment for session starts on overwriteable media.
|
|
||||||
(Increased from 16 to 32 blocks for aligning to BD-RE clusters.)
|
|
||||||
*/
|
|
||||||
#define Libisoburn_nwa_alignemenT 32
|
|
||||||
|
|
||||||
|
|
||||||
/* Alignment for outer session scanning with -ROM drives.
|
|
||||||
(E.g. my DVD-ROM drive shows any DVD type as 0x10 "DVD-ROM" with
|
|
||||||
more or less false capacity and TOC.)
|
|
||||||
*/
|
|
||||||
#define Libisoburn_toc_scan_alignemenT 16
|
|
||||||
|
|
||||||
/* Maximum gap to be bridged during a outer TOC scan. Gaps appear between the
|
|
||||||
end of a session and the start of the next session.
|
|
||||||
The longest gap found so far was about 38100 after the first session of a
|
|
||||||
DVD-R.
|
|
||||||
*/
|
|
||||||
#define Libisoburn_toc_scan_max_gaP 65536
|
|
||||||
|
|
||||||
|
|
||||||
/* Creating a chain of image headers which form a TOC:
|
|
||||||
|
|
||||||
The header of the first session is written after the LBA 0 header.
|
|
||||||
So it persists and can give the end of its session. By help of
|
|
||||||
Libisoburn_nwa_alignemenT it should be possible to predict the start
|
|
||||||
of the next session header.
|
|
||||||
The LBA 0 header is written by isoburn_activate_session() already
|
|
||||||
with the first session. So the media is mountable.
|
|
||||||
A problem arises with DVD-RW in Intermediate State. They cannot be
|
|
||||||
written by random access before they were written sequentially.
|
|
||||||
In this case, no copy of the session 1 header is maintained and no TOC
|
|
||||||
will be possible. Thus writing begins sequentially at LBA 0.
|
|
||||||
*/
|
|
||||||
#define Libisoburn_overwriteable_starT \
|
|
||||||
((off_t) (Libisoburn_target_head_sizE/2048))
|
|
||||||
|
|
||||||
|
|
||||||
/* Wrappers for emulation of TOC on overwriteable media */
|
|
||||||
|
|
||||||
struct isoburn_toc_track {
|
|
||||||
/* Either track or toc_entry are supposed to be NULL */
|
|
||||||
struct burn_track *track;
|
|
||||||
struct isoburn_toc_entry *toc_entry;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct isoburn_toc_session {
|
|
||||||
/* Either session or tracks and toc_entry are supposed to be NULL */
|
|
||||||
struct burn_session *session;
|
|
||||||
struct isoburn_toc_track **track_pointers;
|
|
||||||
int track_count;
|
|
||||||
struct isoburn_toc_entry *toc_entry;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct isoburn_toc_disc {
|
|
||||||
/* Either disc or sessions and toc are supposed to be NULL */
|
|
||||||
struct burn_disc *disc;
|
|
||||||
struct isoburn_toc_session *sessions; /* storage array */
|
|
||||||
struct isoburn_toc_session **session_pointers; /* storage array */
|
|
||||||
struct isoburn_toc_track *tracks; /* storage array */
|
|
||||||
struct isoburn_toc_track **track_pointers; /* storage array */
|
|
||||||
int session_count;
|
|
||||||
int track_count;
|
|
||||||
struct isoburn_toc_entry *toc;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* Isoburn_includeD */
|
#endif /* Isoburn_includeD */
|
||||||
|
|
||||||
|
@ -6,13 +6,12 @@
|
|||||||
/*
|
/*
|
||||||
libisofs related functions of libisoburn.
|
libisofs related functions of libisoburn.
|
||||||
|
|
||||||
Copyright 2007 - 2008 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
|
Copyright 2007 Vreixo Formoso Lopes <metalpain2002@yahoo.es>
|
||||||
Thomas Schmitt <scdbackup@gmx.net>
|
Thomas Schmitt <scdbackup@gmx.net>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#ifndef Xorriso_standalonE
|
#ifndef Xorriso_standalonE
|
||||||
|
|
||||||
@ -27,6 +26,7 @@
|
|||||||
|
|
||||||
#endif /* Xorriso_standalonE */
|
#endif /* Xorriso_standalonE */
|
||||||
|
|
||||||
|
|
||||||
#include "isoburn.h"
|
#include "isoburn.h"
|
||||||
#include "libisoburn.h"
|
#include "libisoburn.h"
|
||||||
|
|
||||||
@ -112,29 +112,29 @@ int isoburn_read_image(struct burn_drive *d,
|
|||||||
struct isoburn_read_opts *read_opts,
|
struct isoburn_read_opts *read_opts,
|
||||||
IsoImage **image)
|
IsoImage **image)
|
||||||
{
|
{
|
||||||
int ret, int_num, dummy;
|
int ret, int_num;
|
||||||
IsoReadOpts *ropts= NULL;
|
IsoReadOpts *ropts= NULL;
|
||||||
IsoReadImageFeatures *features= NULL;
|
IsoReadImageFeatures *features= NULL;
|
||||||
uint32_t ms_block;
|
uint32_t ms_block;
|
||||||
char msg[160];
|
|
||||||
enum burn_disc_status status= BURN_DISC_BLANK;
|
enum burn_disc_status status= BURN_DISC_BLANK;
|
||||||
IsoDataSource *ds= NULL;
|
IsoDataSource *ds= NULL;
|
||||||
struct isoburn *o= NULL;
|
struct isoburn *o= NULL;
|
||||||
|
|
||||||
|
if(read_opts==NULL) {
|
||||||
|
burn_msgs_submit(0x00060000,
|
||||||
|
"Program error: isoburn_read_image: read_opts==NULL",
|
||||||
|
0, "FATAL", NULL);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
if(d != NULL) {
|
if(d != NULL) {
|
||||||
ret = isoburn_find_emulator(&o, d, 0);
|
ret = isoburn_find_emulator(&o, d, 0);
|
||||||
if (ret < 0 || o == NULL)
|
if (ret < 0 || o == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
status = isoburn_disc_get_status(d);
|
status = isoburn_disc_get_status(d);
|
||||||
}
|
}
|
||||||
if(read_opts==NULL) {
|
|
||||||
isoburn_msgs_submit(o, 0x00060000,
|
|
||||||
"Program error: isoburn_read_image: read_opts==NULL",
|
|
||||||
0, "FATAL", 0);
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
if (d == NULL || status == BURN_DISC_BLANK || read_opts->pretend_blank) {
|
if (d == NULL || status == BURN_DISC_BLANK || read_opts->pretend_blank) {
|
||||||
create_blank_image:;
|
|
||||||
/*
|
/*
|
||||||
* Blank disc, we create a new image without files.
|
* Blank disc, we create a new image without files.
|
||||||
*/
|
*/
|
||||||
@ -142,9 +142,9 @@ create_blank_image:;
|
|||||||
if (d == NULL) {
|
if (d == NULL) {
|
||||||
/* New empty image without relation to a drive */
|
/* New empty image without relation to a drive */
|
||||||
if (image==NULL) {
|
if (image==NULL) {
|
||||||
isoburn_msgs_submit(o, 0x00060000,
|
burn_msgs_submit(0x00060000,
|
||||||
"Program error: isoburn_read_image: image==NULL",
|
"Program error: isoburn_read_image: image==NULL",
|
||||||
0, "FATAL", 0);
|
0, "FATAL", NULL);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
/* create a new image */
|
/* create a new image */
|
||||||
@ -170,9 +170,9 @@ create_blank_image:;
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (status != BURN_DISC_APPENDABLE && status != BURN_DISC_FULL) {
|
if (status != BURN_DISC_APPENDABLE && status != BURN_DISC_FULL) {
|
||||||
isoburn_msgs_submit(o, 0x00060000,
|
burn_msgs_submit(0x00060000,
|
||||||
"Program error: isoburn_read_image: incorrect disc status",
|
"Program error: isoburn_read_image: incorrect disc status",
|
||||||
0, "FATAL", 0);
|
0, "FATAL", NULL);
|
||||||
return -4;
|
return -4;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -182,12 +182,6 @@ create_blank_image:;
|
|||||||
if (ret <= 0)
|
if (ret <= 0)
|
||||||
return -2;
|
return -2;
|
||||||
ms_block= int_num;
|
ms_block= int_num;
|
||||||
ret = isoburn_read_iso_head(d, int_num, &dummy, NULL, 0);
|
|
||||||
if (ret <= 0) {
|
|
||||||
sprintf(msg, "No ISO 9660 image at LBA %d. Creating blank image.", int_num);
|
|
||||||
isoburn_msgs_submit(o, 0x00060000, msg, 0, "WARNING", 0);
|
|
||||||
goto create_blank_image;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* create the data source */
|
/* create the data source */
|
||||||
ret = iso_read_opts_new(&ropts, 0);
|
ret = iso_read_opts_new(&ropts, 0);
|
||||||
@ -206,11 +200,6 @@ create_blank_image:;
|
|||||||
iso_read_opts_set_default_uid(ropts, read_opts->uid);
|
iso_read_opts_set_default_uid(ropts, read_opts->uid);
|
||||||
iso_read_opts_set_default_gid(ropts, read_opts->gid);
|
iso_read_opts_set_default_gid(ropts, read_opts->gid);
|
||||||
iso_read_opts_set_input_charset(ropts, read_opts->input_charset);
|
iso_read_opts_set_input_charset(ropts, read_opts->input_charset);
|
||||||
|
|
||||||
/* <<< experimental API call of libisofs
|
|
||||||
iso_read_opts_set_error_behavior(ropts, 1);
|
|
||||||
*/
|
|
||||||
|
|
||||||
ds = isoburn_data_source_new(d);
|
ds = isoburn_data_source_new(d);
|
||||||
iso_image_attach_data(o->image, o->read_pacifier_handle,
|
iso_image_attach_data(o->image, o->read_pacifier_handle,
|
||||||
isoburn_idle_free_function);
|
isoburn_idle_free_function);
|
||||||
@ -236,6 +225,15 @@ create_blank_image:;
|
|||||||
read_opts->hasIso1999 = iso_read_image_features_has_iso1999(features);
|
read_opts->hasIso1999 = iso_read_image_features_has_iso1999(features);
|
||||||
read_opts->hasElTorito = iso_read_image_features_has_eltorito(features);
|
read_opts->hasElTorito = iso_read_image_features_has_eltorito(features);
|
||||||
read_opts->size = iso_read_image_features_get_size(features);
|
read_opts->size = iso_read_image_features_get_size(features);
|
||||||
|
|
||||||
|
#ifdef NIX
|
||||||
|
read_opts->hasRR = features->hasRR;
|
||||||
|
read_opts->hasJoliet = features->hasJoliet;
|
||||||
|
read_opts->hasIso1999 = features->hasIso1999;
|
||||||
|
read_opts->hasElTorito = features->hasElTorito;
|
||||||
|
read_opts->size = features->size;
|
||||||
|
#endif
|
||||||
|
|
||||||
iso_read_image_features_destroy(features);
|
iso_read_image_features_destroy(features);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -248,15 +246,15 @@ int isoburn_attach_image(struct burn_drive *d, IsoImage *image)
|
|||||||
int ret;
|
int ret;
|
||||||
struct isoburn *o;
|
struct isoburn *o;
|
||||||
|
|
||||||
|
if (image == NULL) {
|
||||||
|
burn_msgs_submit(0x00060000,
|
||||||
|
"Program error: isoburn_attach_image: image==NULL",
|
||||||
|
0, "FATAL", NULL);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
ret = isoburn_find_emulator(&o, d, 0);
|
ret = isoburn_find_emulator(&o, d, 0);
|
||||||
if (ret < 0 || o == NULL)
|
if (ret < 0 || o == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
if (image == NULL) {
|
|
||||||
isoburn_msgs_submit(o, 0x00060000,
|
|
||||||
"Program error: isoburn_attach_image: image==NULL",
|
|
||||||
0, "FATAL", 0);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
if(o->image != NULL)
|
if(o->image != NULL)
|
||||||
iso_image_unref(o->image);
|
iso_image_unref(o->image);
|
||||||
o->image = image;
|
o->image = image;
|
||||||
@ -278,13 +276,11 @@ int isoburn_activate_session(struct burn_drive *drive)
|
|||||||
if (o->emulation_mode != 1)
|
if (o->emulation_mode != 1)
|
||||||
return 1; /* don't need to activate session */
|
return 1; /* don't need to activate session */
|
||||||
|
|
||||||
if (!(o->fabricated_disc_status == BURN_DISC_APPENDABLE ||
|
if (o->fabricated_disc_status != BURN_DISC_APPENDABLE)
|
||||||
(o->fabricated_disc_status == BURN_DISC_BLANK &&
|
|
||||||
o->zero_nwa > 0)))
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
ret = burn_random_access_write(drive, (off_t) 0, (char*)o->target_iso_head,
|
ret = burn_random_access_write(drive, 0, (char*)o->target_iso_head,
|
||||||
Libisoburn_target_head_sizE, 1);
|
32*2048, 1);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -304,9 +300,9 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
|
|||||||
struct ecma119_pri_vol_desc *pvm;
|
struct ecma119_pri_vol_desc *pvm;
|
||||||
|
|
||||||
if(o==NULL) {
|
if(o==NULL) {
|
||||||
isoburn_msgs_submit(NULL, 0x00060000,
|
burn_msgs_submit(0x00060000,
|
||||||
"Program error: isoburn_start_emulation: o==NULL",
|
"Program error: isoburn_start_emulation: o==NULL",
|
||||||
0, "FATAL", 0);
|
0, "FATAL", NULL);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -315,7 +311,7 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
|
|||||||
/* we can assume 0 as start block for image */
|
/* we can assume 0 as start block for image */
|
||||||
/* TODO what about ms? where we validate valid iso image in ms disc? */
|
/* TODO what about ms? where we validate valid iso image in ms disc? */
|
||||||
ret = burn_read_data(drive, (off_t) 0, (char*)o->target_iso_head,
|
ret = burn_read_data(drive, (off_t) 0, (char*)o->target_iso_head,
|
||||||
(off_t) Libisoburn_target_head_sizE, &data_count, 2);
|
sizeof(o->target_iso_head), &data_count, 2);
|
||||||
|
|
||||||
/* an error means an empty disc */
|
/* an error means an empty disc */
|
||||||
if (ret <= 0) {
|
if (ret <= 0) {
|
||||||
@ -325,7 +321,7 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
|
|||||||
|
|
||||||
/* check first 64K. If 0's, the disc is treated as a blank disc, and thus
|
/* check first 64K. If 0's, the disc is treated as a blank disc, and thus
|
||||||
overwritten without extra check. */
|
overwritten without extra check. */
|
||||||
i = Libisoburn_target_head_sizE;
|
i = sizeof(o->target_iso_head);
|
||||||
while (i && !o->target_iso_head[i-1])
|
while (i && !o->target_iso_head[i-1])
|
||||||
--i;
|
--i;
|
||||||
|
|
||||||
@ -355,7 +351,7 @@ int isoburn_start_emulation(struct isoburn *o, int flag)
|
|||||||
} else if (!strncmp((char*)pvm->std_identifier, "CDXX1", 5)) {
|
} else if (!strncmp((char*)pvm->std_identifier, "CDXX1", 5)) {
|
||||||
|
|
||||||
/* empty image */
|
/* empty image */
|
||||||
isoburn_set_start_byte(o, o->zero_nwa * 2048, 0);
|
isoburn_set_start_byte(o, (off_t) 0, 0);
|
||||||
o->fabricated_disc_status= BURN_DISC_BLANK;
|
o->fabricated_disc_status= BURN_DISC_BLANK;
|
||||||
} else {
|
} else {
|
||||||
/* treat any disc in an unknown format as full */
|
/* treat any disc in an unknown format as full */
|
||||||
|
@ -188,7 +188,7 @@ void isoburn_version(int *major, int *minor, int *micro);
|
|||||||
*/
|
*/
|
||||||
#define isoburn_libisofs_req_major 0
|
#define isoburn_libisofs_req_major 0
|
||||||
#define isoburn_libisofs_req_minor 6
|
#define isoburn_libisofs_req_minor 6
|
||||||
#define isoburn_libisofs_req_micro 6
|
#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.
|
||||||
@ -196,7 +196,7 @@ void isoburn_version(int *major, int *minor, int *micro);
|
|||||||
*/
|
*/
|
||||||
#define isoburn_libburn_req_major 0
|
#define isoburn_libburn_req_major 0
|
||||||
#define isoburn_libburn_req_minor 4
|
#define isoburn_libburn_req_minor 4
|
||||||
#define isoburn_libburn_req_micro 8
|
#define isoburn_libburn_req_micro 4
|
||||||
|
|
||||||
|
|
||||||
/** 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
|
||||||
@ -231,8 +231,8 @@ int isoburn_libburn_req(int *major, int *minor, int *micro);
|
|||||||
@since 0.1.0
|
@since 0.1.0
|
||||||
*/
|
*/
|
||||||
#define isoburn_header_version_major 0
|
#define isoburn_header_version_major 0
|
||||||
#define isoburn_header_version_minor 2
|
#define isoburn_header_version_minor 1
|
||||||
#define isoburn_header_version_micro 0
|
#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.
|
||||||
@ -298,24 +298,6 @@ and would leave out the ugly compile time traps.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/** Announce to the library an application provided method for immediate
|
|
||||||
delivery of messages. It is used when no drive is affected directly or
|
|
||||||
if the drive has no own msgs_submit() method attached by
|
|
||||||
isoburn_drive_set_msgs_submit.
|
|
||||||
If no method is preset or if the method is set to NULL then libisoburn
|
|
||||||
delivers its messages through the message queue of libburn.
|
|
||||||
@param msgs_submit The function call which implements the method
|
|
||||||
@param submit_handle Handle to be used as first argument of msgs_submit
|
|
||||||
@param submit_flag Flag to be used as last argument of msgs_submit
|
|
||||||
@param flag Unused yet, submit 0
|
|
||||||
@since 0.2.0
|
|
||||||
*/
|
|
||||||
int isoburn_set_msgs_submit(int (*msgs_submit)(void *handle, int error_code,
|
|
||||||
char msg_text[], int os_errno,
|
|
||||||
char severity[], int flag),
|
|
||||||
void *submit_handle, int submit_flag, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/** Aquire a target drive by its filesystem path resp. libburn persistent
|
/** Aquire a target drive by its filesystem path resp. libburn persistent
|
||||||
address.
|
address.
|
||||||
Wrapper for: burn_drive_scan_and_grab()
|
Wrapper for: burn_drive_scan_and_grab()
|
||||||
@ -348,15 +330,12 @@ int isoburn_drive_scan_and_grab(struct burn_drive_info *drive_infos[],
|
|||||||
bit1= regard overwriteable media as blank
|
bit1= regard overwriteable media as blank
|
||||||
bit2= if the drive is a regular disk file: truncate it to
|
bit2= if the drive is a regular disk file: truncate it to
|
||||||
the write start address
|
the write start address
|
||||||
bit3= if the drive reports a read-only profile try to read
|
|
||||||
table of content by scanning for ISO image headers.
|
|
||||||
(depending on media type and drive this might
|
|
||||||
help or it might make the resulting toc even worse)
|
|
||||||
@return 1 = success , 0 = drive not found , <0 = other error
|
@return 1 = success , 0 = drive not found , <0 = other error
|
||||||
*/
|
*/
|
||||||
int isoburn_drive_aquire(struct burn_drive_info *drive_infos[],
|
int isoburn_drive_aquire(struct burn_drive_info *drive_infos[],
|
||||||
char* adr, int flag);
|
char* adr, int flag);
|
||||||
|
|
||||||
|
|
||||||
/** Aquire a drive from the burn_drive_info[] array which was obtained by
|
/** Aquire a drive from the burn_drive_info[] array which was obtained by
|
||||||
a previous call of burn_drive_scan().
|
a previous call of burn_drive_scan().
|
||||||
Wrapper for: burn_drive_grab()
|
Wrapper for: burn_drive_grab()
|
||||||
@ -368,25 +347,6 @@ int isoburn_drive_aquire(struct burn_drive_info *drive_infos[],
|
|||||||
int isoburn_drive_grab(struct burn_drive *drive, int load);
|
int isoburn_drive_grab(struct burn_drive *drive, int load);
|
||||||
|
|
||||||
|
|
||||||
/** Attach to a drive an application provided method for immediate
|
|
||||||
delivery of messages.
|
|
||||||
If no method is set or if the method is set to NULL then libisoburn
|
|
||||||
delivers messages of the drive through the global msgs_submit() method
|
|
||||||
set by isoburn_set_msgs_submiti() or by the message queue of libburn.
|
|
||||||
@since 0.2.0
|
|
||||||
@param d The drive to which this function, handle and flag shall apply
|
|
||||||
@param msgs_submit The function call which implements the method
|
|
||||||
@param submit_handle Handle to be used as first argument of msgs_submit
|
|
||||||
@param submit_flag Flag to be used as last argument of msgs_submit
|
|
||||||
@param flag Unused yet, submit 0
|
|
||||||
*/
|
|
||||||
int isoburn_drive_set_msgs_submit(struct burn_drive *d,
|
|
||||||
int (*msgs_submit)(void *handle, int error_code,
|
|
||||||
char msg_text[], int os_errno,
|
|
||||||
char severity[], int flag),
|
|
||||||
void *submit_handle, int submit_flag, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/** Inquire the media status. Expect the whole spectrum of libburn BURN_DISC_*
|
/** Inquire the media status. Expect the whole spectrum of libburn BURN_DISC_*
|
||||||
with multi-session media. Emulated states with random access media are
|
with multi-session media. Emulated states with random access media are
|
||||||
BURN_DISC_BLANK and BURN_DISC_APPENDABLE.
|
BURN_DISC_BLANK and BURN_DISC_APPENDABLE.
|
||||||
@ -421,160 +381,6 @@ int isoburn_disc_erasable(struct burn_drive *d);
|
|||||||
void isoburn_disc_erase(struct burn_drive *drive, int fast);
|
void isoburn_disc_erase(struct burn_drive *drive, int fast);
|
||||||
|
|
||||||
|
|
||||||
/** Program isoburn_disc_get_msc1() to return a fabricated value.
|
|
||||||
This makes only sense between aquiring the drive and reading the
|
|
||||||
image. After isoburn_read_image() it will confuse the coordination
|
|
||||||
of libisoburn and libisofs.
|
|
||||||
Note: Sessions and tracks are counted beginning with 1, not with 0.
|
|
||||||
@since 0.1.6
|
|
||||||
@param drive The drive where msc1 is to be set
|
|
||||||
@param adr_mode Determines how to interpret adr_value and to set msc1.
|
|
||||||
If adr_value shall represent a number then decimal ASCII
|
|
||||||
digits are expected.
|
|
||||||
0= start lba of last session in TOC, ignore adr_value
|
|
||||||
1= start lba of session number given by adr_value
|
|
||||||
2= start lba of track given number by adr_value
|
|
||||||
3= adr_value itself is the lba to be used
|
|
||||||
4= start lba of last session with volume id
|
|
||||||
given by adr_value
|
|
||||||
@parm adr_value A string describing the value to be eventually used.
|
|
||||||
@param flag Bitfield for control purposes. Unused yet. Submit 0.
|
|
||||||
*/
|
|
||||||
int isoburn_set_msc1(struct burn_drive *d, int adr_mode, char *adr_value,
|
|
||||||
int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
|
||||||
/*
|
|
||||||
|
|
||||||
Wrappers for emulation of TOC on overwriteable media
|
|
||||||
|
|
||||||
Media which match the overwriteable usage model lack of a history of sessions
|
|
||||||
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
|
|
||||||
header at LBA 0 and eventually declares them appendable.
|
|
||||||
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
|
|
||||||
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
|
|
||||||
from emulated multi-session images on overwriteables if the first session
|
|
||||||
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
|
|
||||||
with the libburn structs. I.e. you may use them only with isoburn_toc_*
|
|
||||||
calls.
|
|
||||||
isoburn_toc_disc needs to be freed after use. isoburn_toc_session and
|
|
||||||
isoburn_toc_track vanish together with their isoburn_toc_disc.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Opaque handles to media, session, track */
|
|
||||||
struct isoburn_toc_disc;
|
|
||||||
struct isoburn_toc_session;
|
|
||||||
struct isoburn_toc_track;
|
|
||||||
|
|
||||||
|
|
||||||
/** Obtain a master handle for the table of content.
|
|
||||||
This handle governs allocated resources which have to be released by
|
|
||||||
isoburn_toc_disc_free() when no longer needed.
|
|
||||||
Wrapper for: burn_drive_get_disc()
|
|
||||||
@since 0.1.6
|
|
||||||
@param drive The drive with the media to inspect
|
|
||||||
@return NULL in case there is no content info, else it is a valid handle
|
|
||||||
*/
|
|
||||||
struct isoburn_toc_disc *isoburn_toc_drive_get_disc(struct burn_drive *d);
|
|
||||||
|
|
||||||
|
|
||||||
/** Tell the number of 2048 byte blocks covered by the table of content.
|
|
||||||
Wrapper for: burn_disc_get_sectors()
|
|
||||||
@since 0.1.6
|
|
||||||
@param disc The master handle of the media
|
|
||||||
@return number of blocks, <=0 indicates unknown or unreadable state
|
|
||||||
*/
|
|
||||||
int isoburn_toc_disc_get_sectors(struct isoburn_toc_disc *disc);
|
|
||||||
|
|
||||||
|
|
||||||
/** Get the array of session handles from the table of content.
|
|
||||||
Wrapper for: burn_disc_get_sessions()
|
|
||||||
@since 0.1.6
|
|
||||||
@param disc The master handle of the media
|
|
||||||
@param num returns the number of sessions in the array
|
|
||||||
@return the address of the array of session handles
|
|
||||||
*/
|
|
||||||
struct isoburn_toc_session **isoburn_toc_disc_get_sessions(
|
|
||||||
struct isoburn_toc_disc *disc, int *num);
|
|
||||||
|
|
||||||
|
|
||||||
/** Tell the number of 2048 byte blocks covered by a particular session.
|
|
||||||
Wrapper for: burn_session_get_sectors()
|
|
||||||
@since 0.1.6
|
|
||||||
@param s The session handle
|
|
||||||
@return number of blocks, <=0 indicates unknown or unreadable state
|
|
||||||
*/
|
|
||||||
int isoburn_toc_session_get_sectors(struct isoburn_toc_session *s);
|
|
||||||
|
|
||||||
|
|
||||||
/** Obtain a copy of the entry which describes the end of a particular session.
|
|
||||||
Wrapper for: burn_session_get_leadout_entry()
|
|
||||||
@since 0.1.6
|
|
||||||
@param s The session handle
|
|
||||||
@param entry A pointer to memory provided by the caller. It will be filled
|
|
||||||
with info according to struct burn_toc_entry as defined
|
|
||||||
in libburn.h
|
|
||||||
*/
|
|
||||||
void isoburn_toc_session_get_leadout_entry(struct isoburn_toc_session *s,
|
|
||||||
struct burn_toc_entry *entry);
|
|
||||||
|
|
||||||
|
|
||||||
/** Get the array of track handles from a particular session.
|
|
||||||
Wrapper for: burn_session_get_tracks()
|
|
||||||
@since 0.1.6
|
|
||||||
@param s The session handle
|
|
||||||
@param num returns the number of tracks in the array
|
|
||||||
@return the address of the array of track handles
|
|
||||||
*/
|
|
||||||
struct isoburn_toc_track **isoburn_toc_session_get_tracks(
|
|
||||||
struct isoburn_toc_session *s, int *num);
|
|
||||||
|
|
||||||
|
|
||||||
/** Obtain a copy of the entry which describes a particular itrack.
|
|
||||||
Wrapper for: burn_track_get_entry()
|
|
||||||
@since 0.1.6
|
|
||||||
@param s The track handle
|
|
||||||
@param entry A pointer to memory provided by the caller. It will be filled
|
|
||||||
with info according to struct burn_toc_entry as defined
|
|
||||||
in libburn.h
|
|
||||||
*/
|
|
||||||
void isoburn_toc_track_get_entry(struct isoburn_toc_track *t,
|
|
||||||
struct burn_toc_entry *entry);
|
|
||||||
|
|
||||||
|
|
||||||
/** Release the memory associated with a master handle of media.
|
|
||||||
The handle is invalid afterwards and may not be used any more.
|
|
||||||
Wrapper for: burn_disc_free()
|
|
||||||
@since 0.1.6
|
|
||||||
@param disc The master handle of the media
|
|
||||||
*/
|
|
||||||
void isoburn_toc_disc_free(struct isoburn_toc_disc *disc);
|
|
||||||
|
|
||||||
|
|
||||||
/** Try whether at the data at the given address look like a ISO 9660
|
|
||||||
image header and obtain its alleged size. Depending on the info mode
|
|
||||||
one other string of text information can be retrieved too.
|
|
||||||
@since 0.1.6
|
|
||||||
@param drive The drive with the media to inspect
|
|
||||||
@param lba The block number from where to read
|
|
||||||
@param image_blocks The number of 2048 bytes blocks
|
|
||||||
@param info Caller provided memory, enough to take eventual info reply
|
|
||||||
@param flag bit0-7: info return mode
|
|
||||||
0= do not return anything in info (do not even touch it)
|
|
||||||
1= return volume id (info needs 33 bytes)
|
|
||||||
@return 1 seems to be a valid ISO image , 0 format not recognized, <0 error
|
|
||||||
*/
|
|
||||||
int isoburn_read_iso_head(struct burn_drive *d, int lba,
|
|
||||||
int *image_blocks, char *info, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
/*
|
/*
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
xorriso. By Thomas Schmitt <scdbackup@gmx.net>
|
xorriso. By Thomas Schmitt <scdbackup@gmx.net>
|
||||||
Integrated sub project of libburnia-project.org but also published via:
|
Integrated sub project of libburnia-project.org but also published via:
|
||||||
http://scdbackup.sourceforge.net/xorriso_eng.html
|
http://scdbackup.sourceforge.net/xorriso_eng.html
|
||||||
http://scdbackup.sourceforge.net/xorriso-0.2.0.pl00.tar.gz
|
http://scdbackup.sourceforge.net/xorriso-0.1.4.pl00.tar.gz
|
||||||
Copyright (C) 2006-2008 Thomas Schmitt, provided under GPL version 2.
|
Copyright (C) 2006-2008 Thomas Schmitt, provided under GPL version 2.
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -14,7 +14,6 @@ filesystems into Rock Ridge enhanced ISO 9660 filesystems and allows
|
|||||||
session-wise manipulation of such filesystems. It can load the management
|
session-wise manipulation of such filesystems. It can load the management
|
||||||
information of existing ISO images and it writes the session results to
|
information of existing ISO images and it writes the session results to
|
||||||
optical media or to filesystem objects.
|
optical media or to filesystem objects.
|
||||||
Vice versa xorriso is able to restore file objects from ISO 9660 filesystems.
|
|
||||||
|
|
||||||
Currently it is only supported on Linux with kernels >= 2.4.
|
Currently it is only supported on Linux with kernels >= 2.4.
|
||||||
|
|
||||||
@ -36,10 +35,10 @@ The tarball contains anything that is needed except libc and libpthread.
|
|||||||
libreadline and the readline-dev headers will make dialog mode more convenient,
|
libreadline and the readline-dev headers will make dialog mode more convenient,
|
||||||
but are not mandatory.
|
but are not mandatory.
|
||||||
|
|
||||||
Obtain xorriso-0.2.0.pl00.tar.gz, take it to a directory of your choice and do:
|
Obtain xorriso-0.1.4.pl00.tar.gz, take it to a directory of your choice and do:
|
||||||
|
|
||||||
tar xzf xorriso-0.2.0.pl00.tar.gz
|
tar xzf xorriso-0.1.4.pl00.tar.gz
|
||||||
cd xorriso-0.2.0
|
cd xorriso-0.1.4
|
||||||
|
|
||||||
Within that directory execute:
|
Within that directory execute:
|
||||||
|
|
||||||
@ -161,9 +160,9 @@ and a matching dynamically linked xorriso binary.
|
|||||||
This binary is leaner but depends on properly installed libraries of suitable
|
This binary is leaner but depends on properly installed libraries of suitable
|
||||||
revision.
|
revision.
|
||||||
|
|
||||||
Dynamic library and compile time header requirements for libisoburn-0.2.0 :
|
Dynamic library and compile time header requirements for libisoburn-0.1.4 :
|
||||||
- libburn.so.4 , version libburn-0.4.8 or higher
|
- libburn.so.4 , version libburn-0.4.4 or higher
|
||||||
- libisofs.so.6 , version libisofs-0.6.6 or higher
|
- libisofs.so.6 , version libisofs-0.6.4 or higher
|
||||||
libisoburn and xorriso will not start with libraries which are older than their
|
libisoburn and xorriso will not start with libraries which are older than their
|
||||||
headers seen at compile time. So compile in the oldest possible installation
|
headers seen at compile time. So compile in the oldest possible installation
|
||||||
setup unless you have reason to enforce a newer bug fix level.
|
setup unless you have reason to enforce a newer bug fix level.
|
||||||
|
@ -2247,7 +2247,7 @@ Updated libisofs version number in xorriso-standalone
|
|||||||
------------------------------------ cycle - xorriso-0.1.3 - 2008.04.28.082539
|
------------------------------------ cycle - xorriso-0.1.3 - 2008.04.28.082539
|
||||||
* Now depending on libisofs-0.6.4
|
* Now depending on libisofs-0.6.4
|
||||||
|
|
||||||
2008.04.28.120001 [branch 1711]
|
2008.04.28.120001 [branch ]
|
||||||
configure.ac
|
configure.ac
|
||||||
README
|
README
|
||||||
libisoburn/libisoburn.h (isoburn_header_version_*)
|
libisoburn/libisoburn.h (isoburn_header_version_*)
|
||||||
@ -2260,10 +2260,11 @@ xorriso/make_xorriso_standalone.sh
|
|||||||
xorriso/configure_ac.txt
|
xorriso/configure_ac.txt
|
||||||
Version leap to 0.1.4
|
Version leap to 0.1.4
|
||||||
|
|
||||||
28 Apr 2008 [branch 1712]
|
28 Apr 2008 [branch ]
|
||||||
xorriso/changelog.txt
|
xorriso/changelog.txt
|
||||||
Documented changes and release timestamp
|
Documented changes and release timestamp
|
||||||
|
|
||||||
|
|
||||||
---------------------------------- release - xorriso-0.1.4 - 2008.04.28.120001
|
---------------------------------- release - xorriso-0.1.4 - 2008.04.28.120001
|
||||||
* Bug fix: -as mkisofs -no-pad was misspelled -nopad
|
* Bug fix: -as mkisofs -no-pad was misspelled -nopad
|
||||||
* Bug fix: Implicite directory attribute copying with -cut_out was wrong
|
* Bug fix: Implicite directory attribute copying with -cut_out was wrong
|
||||||
@ -2273,714 +2274,7 @@ Documented changes and release timestamp
|
|||||||
* New option -session_log
|
* New option -session_log
|
||||||
* Dynamically linkable with release version 0.6.4 of libisofs
|
* Dynamically linkable with release version 0.6.4 of libisofs
|
||||||
|
|
||||||
|
|
||||||
2008.04.28.122244 [1713]
|
|
||||||
configure.ac
|
|
||||||
README
|
|
||||||
libisoburn/libisoburn.h (isoburn_header_version_*)
|
|
||||||
xorriso/README
|
|
||||||
xorriso/xorriso_timestamp.h
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorrisoburn.h (xorriso_libisoburn_req_*)
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
xorriso/make_xorriso_standalone.sh
|
|
||||||
xorriso/configure_ac.txt
|
|
||||||
Version leap to 0.1.5
|
|
||||||
|
|
||||||
28 Apr 2008 [1714]
|
|
||||||
xorriso/changelog.txt
|
|
||||||
Documented changes and release timestamp
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.5 - 2008.04.28.122244
|
|
||||||
|
|
||||||
2008.05.01.124248 [1716]
|
|
||||||
libisoburn/isofs_wrap.c
|
|
||||||
xorriso/xorriso.h
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
New option -error_behavior with a first occasion 'image_loading'
|
|
||||||
|
|
||||||
1 May 2008 [1717]
|
|
||||||
xorriso/convert_man_to_html.sh
|
|
||||||
Fine tuning of HTML man page appearance
|
|
||||||
|
|
||||||
1 May 2008 [1718]
|
|
||||||
xorriso/xorriso.1
|
|
||||||
Clarified "best_effort" behavior
|
|
||||||
|
|
||||||
2008.05.01.135421 [1719]
|
|
||||||
libisoburn/data_source.c
|
|
||||||
Adjusted ds_read_block() to inofficial libisofs expectations
|
|
||||||
|
|
||||||
2008.05.01.174110 [1720]
|
|
||||||
libisoburn/data_source.c
|
|
||||||
Adjusted ds_read_block() to inofficial libisofs expectations
|
|
||||||
|
|
||||||
2008.05.02.072505 [1721]
|
|
||||||
libisoburn/data_source.c
|
|
||||||
Adjusted ds_read_block() to inofficial libisofs expectations
|
|
||||||
|
|
||||||
2008.05.02.204942 [1722]
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorriso.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Working towards exclusion of user defined absolute paths and leaf patterns
|
|
||||||
|
|
||||||
2008.05.03.151106 [1724]
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Working towards exclusion of user defined absolute paths and leaf patterns
|
|
||||||
|
|
||||||
2008.05.03.223204 [1725]
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Working towards exclusion of user defined absolute paths and leaf patterns
|
|
||||||
|
|
||||||
2008.05.04.133525 [1726]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
New options -not_paths, -not_leaf, -not_list, -not_mgt, -as mkisofs -m
|
|
||||||
|
|
||||||
4 May 2008 [1727]
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
xorriso/changelog.txt
|
|
||||||
Mentioned new options
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.5 - 2008.05.04.133525
|
|
||||||
* New option -error_behavior with a first occasion 'image_loading'
|
|
||||||
* New options -not_paths, -not_leaf, -not_list, -not_mgt, -as mkisofs -m
|
|
||||||
|
|
||||||
|
|
||||||
2008.05.05.210317 [1728]
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
After formatting DVD-RW write 128 MB and close track to end Intermediate State
|
|
||||||
|
|
||||||
2008.05.06.084439 [1731]
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Calling isoburn_cancel_prepared_write() after failed isoburn_disc_write()
|
|
||||||
|
|
||||||
2008.05.06.144606 [1732]
|
|
||||||
libisoburn/isoburn.h
|
|
||||||
libisoburn/isoburn.c
|
|
||||||
libisoburn/isofs_wrap.c
|
|
||||||
libisoburn/burn_wrap.c
|
|
||||||
Experiment for TOC on overwriteables: Keep a target_head copy of session #1
|
|
||||||
|
|
||||||
2008.05.07.071427 [1737]
|
|
||||||
libisoburn/isoburn.h
|
|
||||||
libisoburn/isoburn.c
|
|
||||||
libisoburn/burn_wrap.c
|
|
||||||
libisoburn/isofs_wrap.c
|
|
||||||
Removed some outdated ifdef cases
|
|
||||||
|
|
||||||
2008.05.07.175508 [1738]
|
|
||||||
libisoburn/libisoburn.h
|
|
||||||
libisoburn/isoburn.h
|
|
||||||
libisoburn/burn_wrap.c
|
|
||||||
Reading emulated toc info from overwriteable media, new API isoburn_toc_*()
|
|
||||||
|
|
||||||
2008.05.07.175640 [1739]
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Making use of new isoburn_toc_* functions
|
|
||||||
|
|
||||||
2008.05.07.214343 [1740]
|
|
||||||
libisoburn/libisoburn.h
|
|
||||||
libisoburn/burn_wrap.c
|
|
||||||
New API function isoburn_read_iso_head()
|
|
||||||
|
|
||||||
2008.05.07.214442 [1741]
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
New format with -toc is more concise and shows volume id
|
|
||||||
|
|
||||||
2008.05.08.141054 [1742]
|
|
||||||
libisoburn/libisoburn.h
|
|
||||||
libisoburn/isoburn.h
|
|
||||||
libisoburn/burn_wrap.c
|
|
||||||
Try to read header chain from alleged -ROM media (e.g. DVD+RW in -ROM drive)
|
|
||||||
|
|
||||||
2008.05.08.141920 [1743]
|
|
||||||
xorriso/xorriso.h
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
New TOC layout with volume id and sbsector=, new option -rom_toc_scan
|
|
||||||
|
|
||||||
8 May 2008 [1744]
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
Mentioned new features
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.5 - 2008.05.08.141920
|
|
||||||
* Emulated TOC on overwriteable media
|
|
||||||
* New TOC layout with volume id and sbsector=
|
|
||||||
* New option -rom_toc_scan
|
|
||||||
|
|
||||||
|
|
||||||
2008.05.08.185350 [1745]
|
|
||||||
libisoburn/isoburn.h
|
|
||||||
libisoburn/isoburn.c
|
|
||||||
libisoburn/burn_wrap.c
|
|
||||||
Adjusted reply of isoburn_disc_get_msc1() to eventual -rom_toc_scan result
|
|
||||||
|
|
||||||
8 May 2008 [1746]
|
|
||||||
xorriso/xorriso.1
|
|
||||||
Updated man page examples
|
|
||||||
|
|
||||||
8 May 2008 [1747]
|
|
||||||
xorriso/xorriso.1
|
|
||||||
Updated man page examples
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.5 - 2008.05.08.205551
|
|
||||||
|
|
||||||
9 May 2008 [1751]
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
Updated details in web page
|
|
||||||
|
|
||||||
2008.05.09.205517 [1752]
|
|
||||||
libisoburn/isofs_wrap.c
|
|
||||||
Trying to better handle non ISO images on -indev
|
|
||||||
|
|
||||||
10 May 2008 [1761]
|
|
||||||
xorriso/configure_ac.txt
|
|
||||||
Adapted xorriso standalone production to new libburn cycle 0.4.7
|
|
||||||
|
|
||||||
10 May 2008 [1762]
|
|
||||||
xorriso/xorriso.1
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
Minor change in -update_r example
|
|
||||||
|
|
||||||
2008.05.10.194336 [1763]
|
|
||||||
xorriso/xorrisoburn.h
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.c
|
|
||||||
Better behavior of update_r with no image present
|
|
||||||
|
|
||||||
2008.05.12.080812 [1765]
|
|
||||||
configure.ac
|
|
||||||
libisoburn/libisoburn.h
|
|
||||||
Switched requirements to libburn-0.4.6
|
|
||||||
|
|
||||||
2008.05.12.081331 [1766]
|
|
||||||
libisoburn/libisoburn.h
|
|
||||||
libisoburn/burn_wrap.c
|
|
||||||
New API call isoburn_set_msc1()
|
|
||||||
|
|
||||||
2008.05.12.082733 [1767]
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
New option -load session|track|sbsector|volid
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.5 - 2008.05.12.082733
|
|
||||||
* New option -load session|track|sbsector|volid
|
|
||||||
* Now depending on libburn-0.4.6
|
|
||||||
|
|
||||||
|
|
||||||
2008.05.12.193341 [1768]
|
|
||||||
libisoburn/burn_wrap.c
|
|
||||||
Reacted on harmless compiler warning
|
|
||||||
|
|
||||||
2008.05.12.193642 [1769]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.h
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
New -blank and -format modes as_needed
|
|
||||||
|
|
||||||
2008.05.13.115901 [1770]
|
|
||||||
xorriso/xorriso.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.h
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
New option -list_formats
|
|
||||||
|
|
||||||
2008.05.13.135251 [1771]
|
|
||||||
libisoburn/isoburn.h
|
|
||||||
libisoburn/isoburn.c
|
|
||||||
libisoburn/isofs_wrap.c
|
|
||||||
libisoburn/burn_wrap.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
Corrected strange behavior with non-ISO images on overwriteable media
|
|
||||||
|
|
||||||
2008.05.13.153837 [1772]
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Prepared Xorriso_get_profile() for potential call without flag bit1
|
|
||||||
|
|
||||||
2008.05.13.180624 [1773]
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Handled -list_format with non MMC drives
|
|
||||||
|
|
||||||
2008.05.13.180912 [1774]
|
|
||||||
xorriso/xorriso.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
Eat up leading dashes with command options, convert inner dashes to underscores
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.5 - 2008.05.13.180912
|
|
||||||
* New -blank and -format modes as_needed
|
|
||||||
* New option -list_formats
|
|
||||||
|
|
||||||
2008.05.14.114548 [1775]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
New -format types by_index and fast_by_index
|
|
||||||
|
|
||||||
2008.05.14.173201 [1779]
|
|
||||||
configure.ac
|
|
||||||
libisoburn/libisoburn.h
|
|
||||||
Required libburn version is now 0.4.7 (because of DVD-RAM BD-RE bug fix)
|
|
||||||
|
|
||||||
2008.05.14.173430 [1780]
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Automatic fast format on attempt to write to unformatted DVD-RAM or BD-RE
|
|
||||||
|
|
||||||
2008.05.14.174846 [1781]
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
Uploaded forgotten enhancements
|
|
||||||
|
|
||||||
2008.05.15.092028 [1783]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
Enabled a pacifier for compare_r
|
|
||||||
|
|
||||||
2008.05.15.150041 [1784]
|
|
||||||
xorriso/xorriso.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
New options -map and -map_single
|
|
||||||
|
|
||||||
2008.05.15.192118 [1785]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
Bug fix: -update_r and others did not work properly with relative paths
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.5 -
|
------------------------------------ cycle - xorriso-0.1.5 -
|
||||||
* New options -map and -map_single
|
|
||||||
* Bug fix: -update_r and others did not work properly with relative paths
|
|
||||||
|
|
||||||
|
|
||||||
2008.05.17.162753 [1794]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Corrected ugly message with -update_r and root directory
|
|
||||||
|
|
||||||
2008.05.17.170001 [1796]
|
|
||||||
configure.ac
|
|
||||||
README
|
|
||||||
libisoburn/libisoburn.h
|
|
||||||
xorriso/README
|
|
||||||
xorriso/xorriso_timestamp.h
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorrisoburn.h
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
xorriso/make_xorriso_standalone.sh
|
|
||||||
xorriso/configure_ac.txt
|
|
||||||
Version leap to 0.1.6, requiring libburn-0.4.8 now
|
|
||||||
|
|
||||||
2008.05.18.070001 [1797]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Bug fix: -findi operated on nodes which ceased existence shortly before
|
|
||||||
|
|
||||||
18 May 2008 [1799]
|
|
||||||
xorriso/changelog.txt
|
|
||||||
Documented changes and release timestamp
|
|
||||||
|
|
||||||
---------------------------------- release - xorriso-0.1.6 - 2008.05.18.070001
|
|
||||||
* New option -error_behavior with a first occasion 'image_loading'
|
|
||||||
* New options -not_paths, -not_leaf, -not_list, -not_mgt, -as mkisofs -m
|
|
||||||
* Emulated TOC on overwriteable media
|
|
||||||
* New TOC layout with volume id and sbsector=
|
|
||||||
* New option -rom_toc_scan
|
|
||||||
* New option -load session|track|sbsector|volid
|
|
||||||
* Now depending on libburn-0.4.8
|
|
||||||
* New -blank and -format modes as_needed
|
|
||||||
* New option -list_formats
|
|
||||||
* New options -map and -map_single
|
|
||||||
* Bug fix: -update_r and others did not work properly with relative paths
|
|
||||||
* Bug fix: -findi operated on nodes which ceased existence shortly before
|
|
||||||
|
|
||||||
|
|
||||||
2008.05.18.082208 [1798]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Bug fix: -findi operated on nodes which ceased existence shortly before
|
|
||||||
|
|
||||||
2008.05.18.084729 [1800]
|
|
||||||
configure.ac
|
|
||||||
README
|
|
||||||
libisoburn/libisoburn.h
|
|
||||||
xorriso/README
|
|
||||||
xorriso/xorriso_timestamp.h
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorrisoburn.h
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
xorriso/make_xorriso_standalone.sh
|
|
||||||
xorriso/configure_ac.txt
|
|
||||||
xorriso/changelog.txt
|
|
||||||
Version leap to 0.1.7, requiring libburn-0.4.8 now
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.7 - 2008.05.18.084729
|
|
||||||
|
|
||||||
2008.05.20.075142 [1804]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
Making Xorriso_prescan_args() safe against misunderstandings
|
|
||||||
|
|
||||||
2008.05.22.192618 [1808]
|
|
||||||
xorriso/xorriso.h
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.h
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
First experiments of osirrox ISO-to-disk copying
|
|
||||||
|
|
||||||
2008.05.22.192737 [1809]
|
|
||||||
libisoburn/data_source.c
|
|
||||||
Removed outdated code branch
|
|
||||||
|
|
||||||
2008.05.22.210835 [1810]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
New options -osirrox and -cpx
|
|
||||||
|
|
||||||
2008.05.24.092546 [1812]
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
Enabled osirrox of more file types, curbed with device files
|
|
||||||
|
|
||||||
2008.05.24.092853 [1813]
|
|
||||||
libisoburn/isoburn.c
|
|
||||||
Bug fix: modifying to overwriteable target yielded unmountable results
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.7 - 2008.05.24.092853
|
|
||||||
* Bug fix: Modifying to overwriteable target yielded unmountable results
|
|
||||||
* New options -osirrox and -cpx
|
|
||||||
|
|
||||||
|
|
||||||
2008.05.24.170109 [1814]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Some polishing with -cpx
|
|
||||||
|
|
||||||
26 May 2008 [1815]
|
|
||||||
xorriso/configure_ac.txt
|
|
||||||
standalone version switch to libisofs-0.6.5
|
|
||||||
|
|
||||||
2008.05.26.181210 [1816]
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Improved access permission restauration by osirrox
|
|
||||||
|
|
||||||
2008.05.27.201513 [1817]
|
|
||||||
xorriso/xorriso.h
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
New option -stream_recording
|
|
||||||
|
|
||||||
2008.05.31.174045 [1819]
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.h
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
Implemented concatenation of split files during -cpx
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.7 - 2008.05.31.174045
|
|
||||||
* New option -stream_recording
|
|
||||||
|
|
||||||
2008.06.01.134322 [1820]
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Reacted on harmless compiler warning
|
|
||||||
|
|
||||||
2008.06.01.145038 [1821]
|
|
||||||
xorriso/configure_ac.txt
|
|
||||||
standalone version switch to libisofs-0.6.6
|
|
||||||
|
|
||||||
2008.06.01.145155 [1822]
|
|
||||||
configure.ac
|
|
||||||
libisoburn/libisoburn.h
|
|
||||||
Switched requirements to libisofs-0.6.6
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.7 - 2008.06.01.145155
|
|
||||||
* Bug fix: major,minor numbers of device files appeared as 0,1 in next session
|
|
||||||
|
|
||||||
|
|
||||||
2008.06.02.070301 [1824]
|
|
||||||
configure.ac
|
|
||||||
README
|
|
||||||
libisoburn/libisoburn.h
|
|
||||||
xorriso/README
|
|
||||||
xorriso/xorriso_timestamp.h
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorrisoburn.h
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
xorriso/make_xorriso_standalone.sh
|
|
||||||
xorriso/configure_ac.txt
|
|
||||||
Version leap to 0.1.8
|
|
||||||
|
|
||||||
2 Jun 2008 [1825]
|
|
||||||
xorriso/changelog.txt
|
|
||||||
Documented changes and release timestamp
|
|
||||||
|
|
||||||
---------------------------------- release - xorriso-0.1.8 - 2008.06.02.070301
|
|
||||||
* Bug fix: Modifying to overwriteable target yielded unmountable results
|
|
||||||
* Bug fix: major,minor numbers of device files appeared as 0,1 in next session
|
|
||||||
* New option -stream_recording for full speed with DVD-RAM and BD-RE
|
|
||||||
* New options -osirrox and -cpx allow to extract single files from ISO image
|
|
||||||
|
|
||||||
|
|
||||||
2008.06.02.141334 [1826]
|
|
||||||
configure.ac
|
|
||||||
README
|
|
||||||
libisoburn/libisoburn.h
|
|
||||||
xorriso/README
|
|
||||||
xorriso/xorriso_timestamp.h
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorrisoburn.h
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
xorriso/make_xorriso_standalone.sh
|
|
||||||
xorriso/configure_ac.txt
|
|
||||||
Version leap to 0.1.9
|
|
||||||
|
|
||||||
2 Jun 2008 [1827]
|
|
||||||
xorriso/changelog.txt
|
|
||||||
Documented changes and release timestamp
|
|
||||||
|
|
||||||
2 Jun 2008 [1828]
|
|
||||||
xorriso/xorriso.1
|
|
||||||
Beautified documentation of -osirrox
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.9 - 2008.06.02.141334
|
|
||||||
|
|
||||||
5 Jun 2008 [1834]
|
|
||||||
xorriso/convert_man_to_html.sh
|
|
||||||
Beautified HTML man page
|
|
||||||
|
|
||||||
2008.06.05.165023 [1835]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
New options -cpax, -cp_rx, -cp_rax to restore files and trees from ISO to disk
|
|
||||||
|
|
||||||
2008.06.06.083432 [1839]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
Bug fix: -chmod unintentionally performed o-x as first operation
|
|
||||||
|
|
||||||
2008.06.06.103735 [1840]
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
Fine tuning of directory attribute copying with -cp_rx
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.9 -
|
|
||||||
* New options -cpax, -cp_rx, -cp_rax to restore files and trees from ISO to disk
|
|
||||||
* Bug fix: -chmod unintentionally performed o-x as first operation
|
|
||||||
|
|
||||||
|
|
||||||
2008.06.09.134432 [1841]
|
|
||||||
xorriso/xorriso.h
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.h
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Allowing to restore from image with pending changes
|
|
||||||
|
|
||||||
2008.06.09.165735 [1842]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Removed some outdated code parts
|
|
||||||
|
|
||||||
2008.06.10.094304 [1844]
|
|
||||||
libisoburn/isoburn.c
|
|
||||||
libisoburn/burn_wrap.c
|
|
||||||
Removed outdated code parts
|
|
||||||
|
|
||||||
2008.06.10.100231 [1845]
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Removed outdated code parts
|
|
||||||
|
|
||||||
2008.06.11.131607 [1846]
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
Proper handling of restore overwrite situations with directories and softlinks
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.9 - 2008.06.11.131607
|
|
||||||
|
|
||||||
2008.06.12.112644 [1847]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
Corrections about restoring of directories
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.9 - 2008.06.12.112644
|
|
||||||
|
|
||||||
2008.06.13.151630 [1848]
|
|
||||||
xorriso/xorriso.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.h
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
New option -paste_in
|
|
||||||
|
|
||||||
2008.06.14.104745 [1849]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
New options -extract and -extract_single
|
|
||||||
|
|
||||||
14 Jun 2008 [1850]
|
|
||||||
xorriso/convert_man_to_html.sh
|
|
||||||
Beautification of HTML man page
|
|
||||||
|
|
||||||
2008.06.14.140459 [1851]
|
|
||||||
xorriso/xorriso.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
Correction about -extract / /
|
|
||||||
|
|
||||||
2008.06.14.184512 [1854]
|
|
||||||
xorriso/xorriso.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
xorriso/convert_man_to_html.sh
|
|
||||||
Gave up the unusual parameter sequences of -extract and -paste_in
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.9 - 2008.06.14.184512
|
|
||||||
* New option -paste_in to copy ISO files into parts of disk files
|
|
||||||
* New option -extract restores with arguments of -map or -update_r
|
|
||||||
|
|
||||||
|
|
||||||
2008.06.17.121524 [1857]
|
|
||||||
xorriso/xorriso.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
New options -map_l, -compare_l, -update_l, -extract_l
|
|
||||||
|
|
||||||
2008.06.17.133914 [1858]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
Reacted on harmless compiler warning
|
|
||||||
|
|
||||||
2008.06.17.170622 [1859]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Fixed a bug about -update_l
|
|
||||||
|
|
||||||
2008.06.18.132057 [1860]
|
|
||||||
libisoburn/isoburn.h
|
|
||||||
libisoburn/burn_wrap.c
|
|
||||||
Made -rom_toc_scan work on closed DVD-R in a DVD-ROM drive
|
|
||||||
|
|
||||||
2008.06.18.161512 [1861]
|
|
||||||
libisoburn/libisoburn.h
|
|
||||||
libisoburn/isoburn.h
|
|
||||||
libisoburn/isoburn.c
|
|
||||||
libisoburn/isofs_wrap.c
|
|
||||||
libisoburn/burn_wrap.c
|
|
||||||
libisoburn/data_source.c
|
|
||||||
New API functions isoburn_preset_msgs_submit(), isoburn_set_msgs_submit()
|
|
||||||
|
|
||||||
2008.06.18.161723 [1862]
|
|
||||||
xorriso/xorriso.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Made use of isoburn_preset_msgs_submit()
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.9 - 2008.06.18.161723
|
|
||||||
* New options -map_l, -compare_l, -update_l, -extract_l
|
|
||||||
* New API functions isoburn_set_msgs_submit(), isoburn_drive_set_msgs_submit()
|
|
||||||
|
|
||||||
|
|
||||||
2008.06.18.192913 [1863]
|
|
||||||
libisoburn/burn_wrap.c
|
|
||||||
Improved pacifier with -rom_toc_scan
|
|
||||||
|
|
||||||
2008.06.19.090436 [1864]
|
|
||||||
libisoburn/libisoburn.h
|
|
||||||
libisoburn/burn_wrap.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Renamed isoburn_*set_msgs_submit() and slightly changed meaning
|
|
||||||
|
|
||||||
2008.06.19.092458 [1865]
|
|
||||||
libisoburn/burn_wrap.c
|
|
||||||
Corrected wrong size unit MB to kB in toc scan pacifier text
|
|
||||||
|
|
||||||
2008.06.20.091647 [1866]
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
xorriso/xorriso.1
|
|
||||||
New -osirrox option auto_chmod_on
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.9 - 2008.06.20.091647
|
|
||||||
|
|
||||||
|
|
||||||
2008.06.20.164105 [1867]
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorriso.c
|
|
||||||
xorriso/xorrisoburn.h
|
|
||||||
xorriso/xorrisoburn.c
|
|
||||||
Fixed several bugs with restore operations
|
|
||||||
|
|
||||||
2008.06.21.180701 [1870]
|
|
||||||
xorriso/xorriso.1
|
|
||||||
Corrected mistake in xorriso man page
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.1.9 - 2008.06.21.180701
|
|
||||||
|
|
||||||
2008.06.22.080000 [1872]
|
|
||||||
xorriso/xorriso.c
|
|
||||||
Removed duplicated help text snippet
|
|
||||||
|
|
||||||
22 Jun 2008 [1783]
|
|
||||||
configure.ac
|
|
||||||
README
|
|
||||||
libisoburn/libisoburn.h
|
|
||||||
xorriso/README
|
|
||||||
xorriso/xorriso_timestamp.h
|
|
||||||
xorriso/xorriso_private.h
|
|
||||||
xorriso/xorrisoburn.h
|
|
||||||
xorriso/xorriso_eng.html
|
|
||||||
xorriso/make_xorriso_standalone.sh
|
|
||||||
xorriso/configure_ac.txt
|
|
||||||
Version leap to 0.2.0
|
|
||||||
|
|
||||||
[]
|
|
||||||
xorriso/changelog.txt
|
|
||||||
Documented changes and release timestamp
|
|
||||||
|
|
||||||
---------------------------------- release - xorriso-0.2.0 - 2008.06.22.090001
|
|
||||||
* Bug fix: -chmod unintentionally performed o-x as first operation
|
|
||||||
* New options -cpax, -cp_rx, -cp_rax to restore files and trees from ISO to disk
|
|
||||||
* New option -extract restores with arguments of -map or -update_r
|
|
||||||
* New option -paste_in to copy ISO files into parts of disk files
|
|
||||||
* New options -map_l, -compare_l, -update_l, -extract_l
|
|
||||||
* New API functions isoburn_set_msgs_submit(), isoburn_drive_set_msgs_submit()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------ cycle - xorriso-0.2.1 -
|
|
||||||
------------------------------------ cycle - xorriso-0.2.1 -
|
|
||||||
|
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
TODO
|
TODO
|
||||||
@ -2988,26 +2282,36 @@ Documented changes and release timestamp
|
|||||||
|
|
||||||
------------------------------------------------- bugs
|
------------------------------------------------- bugs
|
||||||
|
|
||||||
|
- downgrade unreadable image from FAILURE to WARNING
|
||||||
|
|
||||||
------------------------------------------------- important
|
------------------------------------------------- important
|
||||||
|
|
||||||
|
- pacifier for -compare_r : try read pacifier without newline
|
||||||
|
|
||||||
------------------------------------------------- development
|
------------------------------------------------- development
|
||||||
|
|
||||||
??? Clarify handling of links in ISO and on disk during restore
|
- evaluate possibility of emulated session table on overwriteables
|
||||||
|
|
||||||
|
- exclusion of unwanted files and subtrees
|
||||||
|
- leaf
|
||||||
|
- branch
|
||||||
|
|
||||||
|
- option -map disk_path iso_rr_path for no-fuzz file mapping
|
||||||
|
|
||||||
- mkisofs,cdrecord multi session
|
- mkisofs,cdrecord multi session
|
||||||
|
|
||||||
|
- -restore
|
||||||
|
??? -compare_l -update_l /disk_path_start iso_rr_path_start path[s] --
|
||||||
|
??? backup area shaping with -yes -not for -compare_r and -update_r ?
|
||||||
|
|
||||||
|
- Make use of iso_tree_add_new_node() in Xorriso_tree_graft_node()
|
||||||
|
|
||||||
|
|
||||||
> Relative addressing and pattern matching :
|
> Relative addressing and pattern matching :
|
||||||
iso_rr_pattern on
|
iso_rr_pattern on
|
||||||
cd /u/FERTIG
|
cd /u/FERTIG
|
||||||
lsd nonexist/..
|
lsd nonexist/..
|
||||||
|
|
||||||
- perform any long lasting operation in separate threads while
|
|
||||||
the main thread cares for user and message queues.
|
|
||||||
|
|
||||||
- Introduce an interrupt key for dialog
|
|
||||||
|
|
||||||
- watch read latency and evaluate read quality indicator
|
|
||||||
|
|
||||||
- regularly do valgrind check for memory leaks
|
- regularly do valgrind check for memory leaks
|
||||||
|
|
||||||
- ??? http://scan.coverity.com/faq.html
|
- ??? http://scan.coverity.com/faq.html
|
||||||
@ -3026,41 +2330,13 @@ Documented changes and release timestamp
|
|||||||
|
|
||||||
> Make transactional the tree deletions meant for replacing
|
> Make transactional the tree deletions meant for replacing
|
||||||
|
|
||||||
|
- Introduce an interrupt key for dialog
|
||||||
|
|
||||||
------------------------------------------------- libisofs wishes
|
-------------------------------------------- jump to libburn 0.4.4
|
||||||
|
|
||||||
------ problem fixes :
|
- make use of burn_sev_to_text() in libisoburn and xorriso
|
||||||
|
|
||||||
- Error code for libisoburn data source read errors.
|
- If iso_msgs_submit() : use it in isoburn_report_iso_error()
|
||||||
|
|
||||||
- #define ISO_ERR_PRIO(e) ((e & 0x00700000) << 8)
|
|
||||||
(rather than 0x00F00000, see ticket 135)
|
|
||||||
|
|
||||||
------ feature enhancements :
|
|
||||||
|
|
||||||
- Data files >= 4 GiB.
|
|
||||||
|
|
||||||
- API: iso_image_update_sizes() to be run immediately before -commit
|
|
||||||
|
|
||||||
- A repeatable shell command as origin ("disk_file")
|
|
||||||
of a regular file in the ISO image.
|
|
||||||
|
|
||||||
- API: iso_stream_get_dev_ino() to get the source side dev_t and ino_t
|
|
||||||
|
|
||||||
- API: iso_cout_stream_get_params(stream, &path, &offset, &size)
|
|
||||||
|
|
||||||
- Image checksum tag in the last data blocks of an image.
|
|
||||||
A data file entry should point to that block.
|
|
||||||
|
|
||||||
- creation of bootable images
|
|
||||||
|
|
||||||
------ extended attribute stunts: Not visible for mount but for libisofs
|
|
||||||
|
|
||||||
- file checksums
|
|
||||||
|
|
||||||
- ACLs
|
|
||||||
|
|
||||||
- man attr(5) extended attributes
|
|
||||||
|
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
AC_INIT([xorriso], [0.2.0], [http://libburnia-project.org])
|
AC_INIT([xorriso], [0.1.4], [http://libburnia-project.org])
|
||||||
AC_PREREQ([2.50])
|
AC_PREREQ([2.50])
|
||||||
dnl AC_CONFIG_HEADER([config.h])
|
dnl AC_CONFIG_HEADER([config.h])
|
||||||
|
|
||||||
@ -9,14 +9,14 @@ AM_INIT_AUTOMAKE([subdir-objects])
|
|||||||
|
|
||||||
BURN_MAJOR_VERSION=0
|
BURN_MAJOR_VERSION=0
|
||||||
BURN_MINOR_VERSION=4
|
BURN_MINOR_VERSION=4
|
||||||
BURN_MICRO_VERSION=9
|
BURN_MICRO_VERSION=5
|
||||||
AC_SUBST(BURN_MAJOR_VERSION)
|
AC_SUBST(BURN_MAJOR_VERSION)
|
||||||
AC_SUBST(BURN_MINOR_VERSION)
|
AC_SUBST(BURN_MINOR_VERSION)
|
||||||
AC_SUBST(BURN_MICRO_VERSION)
|
AC_SUBST(BURN_MICRO_VERSION)
|
||||||
|
|
||||||
LIBISOFS_MAJOR_VERSION=0
|
LIBISOFS_MAJOR_VERSION=0
|
||||||
LIBISOFS_MINOR_VERSION=6
|
LIBISOFS_MINOR_VERSION=6
|
||||||
LIBISOFS_MICRO_VERSION=6
|
LIBISOFS_MICRO_VERSION=4
|
||||||
AC_SUBST(LIBISOFS_MAJOR_VERSION)
|
AC_SUBST(LIBISOFS_MAJOR_VERSION)
|
||||||
AC_SUBST(LIBISOFS_MINOR_VERSION)
|
AC_SUBST(LIBISOFS_MINOR_VERSION)
|
||||||
AC_SUBST(LIBISOFS_MICRO_VERSION)
|
AC_SUBST(LIBISOFS_MICRO_VERSION)
|
||||||
|
@ -70,9 +70,6 @@ then
|
|||||||
-e 's/<b>Drive and media related inquiry actions:<\/b>/\ <BR><b>Drive and media related inquiry actions:<\/b><BR>\ <BR>/' \
|
-e 's/<b>Drive and media related inquiry actions:<\/b>/\ <BR><b>Drive and media related inquiry actions:<\/b><BR>\ <BR>/' \
|
||||||
-e 's/<b>Navigation in ISO image/\ <BR><b>Navigation in ISO image/' \
|
-e 's/<b>Navigation in ISO image/\ <BR><b>Navigation in ISO image/' \
|
||||||
-e 's/^filesystem:<\/b>/filesystem:<\/b><BR>\ <BR>/' \
|
-e 's/^filesystem:<\/b>/filesystem:<\/b><BR>\ <BR>/' \
|
||||||
-e 's/<b>osirrox restore options:<\/b>/\ <BR><b>osirrox restore options:<\/b><BR>\ <BR>/' \
|
|
||||||
-e 's/<b>Command compatibility emulations:<\/b>/\ <BR><b>Command compatibility emulations:<\/b><BR>\ <BR>/' \
|
|
||||||
-e 's/^<p><b>−as</<p>\ <BR><b>\−as</' \
|
|
||||||
-e 's/<b>Scripting, dialog and/\ <BR><b>Scripting, dialog and/' \
|
-e 's/<b>Scripting, dialog and/\ <BR><b>Scripting, dialog and/' \
|
||||||
-e 's/^features:<\/b>/features:<\/b><BR>\ <BR>/' \
|
-e 's/^features:<\/b>/features:<\/b><BR>\ <BR>/' \
|
||||||
-e 's/<b>Support for frontend/\ <BR><b>Support for frontend/' \
|
-e 's/<b>Support for frontend/\ <BR><b>Support for frontend/' \
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
current_dir=$(pwd)
|
current_dir=$(pwd)
|
||||||
lone_dir="$current_dir"/"xorriso-standalone"
|
lone_dir="$current_dir"/"xorriso-standalone"
|
||||||
|
|
||||||
xorriso_rev=0.2.0
|
xorriso_rev=0.1.4
|
||||||
# For unstable uploads:
|
# For unstable uploads:
|
||||||
# xorriso_pl=""
|
# xorriso_pl=""
|
||||||
# For stable releases:
|
# For stable releases:
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
.\" First parameter, NAME, should be all caps
|
.\" First parameter, NAME, should be all caps
|
||||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||||
.\" other parameters are allowed: see man(7), man(1)
|
.\" other parameters are allowed: see man(7), man(1)
|
||||||
.TH XORRISO 1 "Jun, 21, 2008"
|
.TH XORRISO 1 "April, 3, 2008"
|
||||||
.\" Please adjust this date whenever revising the manpage.
|
.\" Please adjust this date whenever revising the manpage.
|
||||||
.\"
|
.\"
|
||||||
.\" Some roff macros, for reference:
|
.\" Some roff macros, for reference:
|
||||||
@ -15,7 +15,6 @@
|
|||||||
.\" .br insert line break
|
.\" .br insert line break
|
||||||
.\" .sp <n> insert n+1 empty lines
|
.\" .sp <n> insert n+1 empty lines
|
||||||
.\" for manpage-specific macros, see man(7)
|
.\" for manpage-specific macros, see man(7)
|
||||||
.nh
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
xorriso - creates, loads, manipulates and writes ISO 9660 filesystem images
|
xorriso - creates, loads, manipulates and writes ISO 9660 filesystem images
|
||||||
with Rock Ridge extensions.
|
with Rock Ridge extensions.
|
||||||
@ -31,8 +30,6 @@ filesystems into Rock Ridge enhanced ISO 9660 filesystems and allows
|
|||||||
session-wise manipulation of such filesystems. It can load the management
|
session-wise manipulation of such filesystems. It can load the management
|
||||||
information of existing ISO images and it writes the session results to
|
information of existing ISO images and it writes the session results to
|
||||||
optical media or to filesystem objects.
|
optical media or to filesystem objects.
|
||||||
.br
|
|
||||||
Vice versa xorriso is able to restore file objects from ISO 9660 filesystems.
|
|
||||||
.PP
|
.PP
|
||||||
A special property of xorriso is that it needs neither an external ISO 9660
|
A special property of xorriso is that it needs neither an external ISO 9660
|
||||||
formatter program nor an external burn program for CD or DVD but rather
|
formatter program nor an external burn program for CD or DVD but rather
|
||||||
@ -56,8 +53,6 @@ filesystem objects.
|
|||||||
Can write result as add-on session to appendable multi-session media,
|
Can write result as add-on session to appendable multi-session media,
|
||||||
to overwriteable media, to regular files, and to block devices.
|
to overwriteable media, to regular files, and to block devices.
|
||||||
.br
|
.br
|
||||||
Can restore files from ISO image to disk filesystem (see osirrox).
|
|
||||||
.br
|
|
||||||
Scans for optical drives, blanks re-useable optical media.
|
Scans for optical drives, blanks re-useable optical media.
|
||||||
.br
|
.br
|
||||||
Reads its instructions from command line arguments, dialog, and batch files.
|
Reads its instructions from command line arguments, dialog, and batch files.
|
||||||
@ -149,13 +144,11 @@ There are two families of media in the MMC standard:
|
|||||||
.br
|
.br
|
||||||
\fBMulti-session\fR media are CD-R, CD-RW, DVD-R, DVD+R, DVD+R/DL, and
|
\fBMulti-session\fR media are CD-R, CD-RW, DVD-R, DVD+R, DVD+R/DL, and
|
||||||
unformatted DVD-RW. These media provide a table of content which
|
unformatted DVD-RW. These media provide a table of content which
|
||||||
describes their existing sessions. See option \fB-toc\fR.
|
describes their existing sessions.
|
||||||
.br
|
.br
|
||||||
\fBOverwriteable\fR media are DVD-RAM, DVD+RW, BD-RE, and formatted DVD-RW.
|
\fBOverwriteable\fR media are DVD-RAM, DVD+RW, and formatted DVD-RW.
|
||||||
They allow random write access but do not provide information about their
|
They allow random write access but do not provide information about their
|
||||||
session history. If they contain one or more ISO 9660 sessions and if the
|
session history.
|
||||||
first session was written by xorriso, then a table of content can
|
|
||||||
be emulated. Else only a single overall session will be visible.
|
|
||||||
.br
|
.br
|
||||||
DVD-RW media can be formatted by -format full.
|
DVD-RW media can be formatted by -format full.
|
||||||
They can be made unformatted by -blank deformat.
|
They can be made unformatted by -blank deformat.
|
||||||
@ -171,10 +164,10 @@ capabilities.
|
|||||||
suitable for xorriso.
|
suitable for xorriso.
|
||||||
.br
|
.br
|
||||||
Blank is the state of newly purchased optical media.
|
Blank is the state of newly purchased optical media.
|
||||||
With used CD-RW and DVD-RW it can be achieved by action -blank "as_needed".
|
With used CD-RW and DVD-RW it can be achieved by action -blank "fast".
|
||||||
Overwriteable media are considered blank unless they contain an ISO image
|
Overwriteable media are considered blank unless they contain an ISO image
|
||||||
suitable for xorriso. Action -blank "as_needed" can be used to invalidate the
|
suitable for xorriso. Action -blank "fast" can be used to invalidate the image
|
||||||
image on overwriteable media, or to apply eventual mandatory formatting.
|
on overwriteable media.
|
||||||
.br
|
.br
|
||||||
\fBAppendable\fR media accept further sessions. Either they are MMC
|
\fBAppendable\fR media accept further sessions. Either they are MMC
|
||||||
multi-session media in appendable state, or they are overwriteable media
|
multi-session media in appendable state, or they are overwriteable media
|
||||||
@ -186,15 +179,10 @@ Appendable is the state after writing a session with option -close off.
|
|||||||
for xorriso.
|
for xorriso.
|
||||||
.br
|
.br
|
||||||
Closed is the state of DVD-ROM media and of multi-session media which were
|
Closed is the state of DVD-ROM media and of multi-session media which were
|
||||||
written with option -close on. If the drive is read-only hardware then it will
|
written with option -close on. If the drive is incapable of writing it will
|
||||||
probably show any media as closed CD-ROM resp. DVD-ROM.
|
probably show any media as closed CD-ROM resp. DVD-ROM.
|
||||||
.br
|
.br
|
||||||
Overwriteable media assume this state in such read-only drives or if they
|
Overwriteable media assume this state only in such read-only drives.
|
||||||
contain unrecognizable data in the first 32 data blocks.
|
|
||||||
.br
|
|
||||||
\fBRead-only\fR drives may or may not show session histories of multi-session
|
|
||||||
media. Often only the first and the last session are visible. Sometimes
|
|
||||||
not even that. Option -rom_toc_scan might or might not help in such cases.
|
|
||||||
.SS
|
.SS
|
||||||
.B Creating, Growing, Modifying:
|
.B Creating, Growing, Modifying:
|
||||||
.br
|
.br
|
||||||
@ -224,8 +212,7 @@ Growing is achieved by option -dev.
|
|||||||
The write method of \fBmodifying\fR produces compact filesystem
|
The write method of \fBmodifying\fR produces compact filesystem
|
||||||
images with no outdated files or directory trees. Modifying can write its
|
images with no outdated files or directory trees. Modifying can write its
|
||||||
images to target media which are completely unsuitable for multi-session
|
images to target media which are completely unsuitable for multi-session
|
||||||
operations. E.g. DVD-RW which were treated with -blank deformat_quickest,
|
operations. E.g. fast blanked DVD-RW, named pipes, character devices, sockets.
|
||||||
named pipes, character devices, sockets.
|
|
||||||
On the other hand modified sessions cannot be written to appendable media
|
On the other hand modified sessions cannot be written to appendable media
|
||||||
but to blank media only.
|
but to blank media only.
|
||||||
.br
|
.br
|
||||||
@ -298,7 +285,7 @@ among the start arguments. Do not try to fool this ban via backdoor addresses
|
|||||||
to stdout.
|
to stdout.
|
||||||
.br
|
.br
|
||||||
If stdout is used as drive, then -use_readline is permanently disabled.
|
If stdout is used as drive, then -use_readline is permanently disabled.
|
||||||
Use of backdoors will cause severe memory and/or tty corruption.
|
Use of backdoors will cause severe memory and/or terminal corruption.
|
||||||
.PP
|
.PP
|
||||||
Be aware that especially the superuser can write into any accessible file or
|
Be aware that especially the superuser can write into any accessible file or
|
||||||
device by using its path with the "stdio:" prefix. Addresses without prefix
|
device by using its path with the "stdio:" prefix. Addresses without prefix
|
||||||
@ -404,9 +391,6 @@ All command words are shown with a leading dash although this dash is not
|
|||||||
mandatory for the option to be recognized. There may be future emulation
|
mandatory for the option to be recognized. There may be future emulation
|
||||||
modes, where dashes may become mandatory in order to distinguish options
|
modes, where dashes may become mandatory in order to distinguish options
|
||||||
from file addresses.
|
from file addresses.
|
||||||
.br
|
|
||||||
Normally any number of leading dashes is ignored with command words and
|
|
||||||
inner dashes are interpreted as underscores.
|
|
||||||
.TP
|
.TP
|
||||||
.B Aquiring source and target drive:
|
.B Aquiring source and target drive:
|
||||||
.TP
|
.TP
|
||||||
@ -426,7 +410,7 @@ An empty address string "" gives up the current device
|
|||||||
without aquiring a new one.
|
without aquiring a new one.
|
||||||
.TP
|
.TP
|
||||||
\fB\-indev\fR address
|
\fB\-indev\fR address
|
||||||
Set input drive and load an eventual ISO image. If the new input drive differs
|
Set input drive and load eventual ISO image. If the new input drive differs
|
||||||
from -outdev then switch from growing to modifying. The same rules and
|
from -outdev then switch from growing to modifying. The same rules and
|
||||||
restrictions apply as with -dev.
|
restrictions apply as with -dev.
|
||||||
.TP
|
.TP
|
||||||
@ -446,48 +430,6 @@ apply. See above paragraph "Libburn drives".
|
|||||||
An empty address string "" gives up the current output drive
|
An empty address string "" gives up the current output drive
|
||||||
without aquiring a new one. No writing is possible without an output drive.
|
without aquiring a new one. No writing is possible without an output drive.
|
||||||
.TP
|
.TP
|
||||||
\fB\-load\fR entity id
|
|
||||||
Load a particular (possibly outdated) ISO image from a -dev or -indev which
|
|
||||||
hosts more than one session. Usually all available sessions are shown with
|
|
||||||
option -toc.
|
|
||||||
.br
|
|
||||||
entity depicts the kind of addressing. id depicts the particular
|
|
||||||
address. The following entities are defined:
|
|
||||||
.br
|
|
||||||
"auto" with any id addresses the last session in -toc. This is the default.
|
|
||||||
.br
|
|
||||||
"session" with id being a number as of a line "ISO session", column "Idx".
|
|
||||||
.br
|
|
||||||
"track" with id being a number as of a line "ISO track", column "Idx".
|
|
||||||
.br
|
|
||||||
"lba" or "sbsector" with a number as of a line "ISO ...", column "sbsector".
|
|
||||||
.br
|
|
||||||
"volid" with a text as of a line "ISO ...", column "Volume Id".
|
|
||||||
.br
|
|
||||||
Adressing a non-existing entity or one which does not represent an ISO
|
|
||||||
image will either abandon -indev or at least lead to a blank image.
|
|
||||||
.br
|
|
||||||
If an input drive is set at the moment when -load is executed, then the
|
|
||||||
addressed ISO image is loaded immediately. Else, the setting will be pending
|
|
||||||
until the next -dev or -indev. After the image has been loaded once, the
|
|
||||||
setting is valid for -rollback until next -dev or -indev, where it
|
|
||||||
will be reset to "auto".
|
|
||||||
.TP
|
|
||||||
\fB\-rom_toc_scan\fR "on"|"off"
|
|
||||||
Read-only drives do not tell the actual media type but show any media as
|
|
||||||
ROM (e.g. as DVD-ROM). The session history of MMC multi-session media might
|
|
||||||
be truncated to first and last session or even be completely false.
|
|
||||||
(The eventual emulated history of overwriteable media is not affected by this.)
|
|
||||||
.br
|
|
||||||
To have in case of failure a chance of getting the session history and
|
|
||||||
especially the address of the last session, there is a scan for ISO 9660
|
|
||||||
filesystem headers which might help but also might yield worse results
|
|
||||||
than the drive's table of content. At its end it can cause read attempts
|
|
||||||
to invalid addresses and thus ugly drive behavior.
|
|
||||||
.br
|
|
||||||
To be in effect, -rom_toc_scan has to be enabled by "on" before the -*dev
|
|
||||||
command which aquires drive and media.
|
|
||||||
.TP
|
|
||||||
\fB\-ban_stdio_write\fR
|
\fB\-ban_stdio_write\fR
|
||||||
Allow for writing only the usage of MMC optical drives. Disallow
|
Allow for writing only the usage of MMC optical drives. Disallow
|
||||||
to write the result into files of nearly arbitrary type.
|
to write the result into files of nearly arbitrary type.
|
||||||
@ -604,16 +546,22 @@ Like -add but read the parameter words from file disk_path
|
|||||||
or standard input if disk_path is "-".
|
or standard input if disk_path is "-".
|
||||||
The list must contain exactly one pathspec resp. disk_path pattern per line.
|
The list must contain exactly one pathspec resp. disk_path pattern per line.
|
||||||
.TP
|
.TP
|
||||||
\fB\-map\fR disk_path iso_rr_path
|
\fB\-cpr\fR disk_path [***] iso_rr_path
|
||||||
Insert file object disk_path into the ISO image as iso_rr_path. If disk_path
|
Insert the given files or directory trees from filesystem
|
||||||
is a directory then its whole sub tree is inserted into the ISO image.
|
into the ISO image.
|
||||||
.TP
|
.br
|
||||||
\fB\-map_single\fR disk_path iso_rr_path
|
The rules for generating the ISO addresses are similar as with
|
||||||
Like -map, but if disk_path is a directory then its sub tree is not inserted.
|
shell command cp -r. Nevertheless, directories of the iso_rr_path
|
||||||
.TP
|
are created if necessary. Especially a not yet existing iso_rr_path
|
||||||
\fB\-map_l\fR disk_prefix iso_rr_prefix disk_path [***]
|
will be handled as directory if multiple disk_paths are present.
|
||||||
Performs -map with each of the disk_path arguments. iso_rr_path will be
|
The leafnames of the multiple disk_paths will be grafted under that
|
||||||
composed from disk_path by replacing disk_prefix by iso_rr_prefix.
|
directory as would be done with an existing directory.
|
||||||
|
.br
|
||||||
|
If a single disk_path is present then a non-existing iso_rr_path will
|
||||||
|
get the same type as the disk_path.
|
||||||
|
.br
|
||||||
|
If a disk_path does not begin with '/' then -cdx is prepended.
|
||||||
|
If the iso_rr_path does not begin with '/' then -cd is prepended.
|
||||||
.TP
|
.TP
|
||||||
\fB\-update\fR disk_path iso_rr_path
|
\fB\-update\fR disk_path iso_rr_path
|
||||||
Compare file object disk_path with file object iso_rr_path. If they do not
|
Compare file object disk_path with file object iso_rr_path. If they do not
|
||||||
@ -622,10 +570,6 @@ a matching copy of disk_path. This comparison will imply lengthy content
|
|||||||
reading before a decision is made. On the other hand it strives for the
|
reading before a decision is made. On the other hand it strives for the
|
||||||
smallest possible amount of add-on data which is needed to achieve the
|
smallest possible amount of add-on data which is needed to achieve the
|
||||||
matching copy.
|
matching copy.
|
||||||
.br
|
|
||||||
If disk_path is a directory and iso_rr_path does not exist yet, then the
|
|
||||||
whole subtree will be inserted. Else only directory attributes will be
|
|
||||||
updated.
|
|
||||||
.TP
|
.TP
|
||||||
\fB\-update_r\fR disk_path iso_rr_path
|
\fB\-update_r\fR disk_path iso_rr_path
|
||||||
Like -update but working recursively. I.e. all file objects below both
|
Like -update but working recursively. I.e. all file objects below both
|
||||||
@ -638,10 +582,10 @@ should always be the same as with the first adding of disk_path as iso_rr_path.
|
|||||||
.br
|
.br
|
||||||
If iso_rr_path does not exist yet, then it gets added. If disk_path does not
|
If iso_rr_path does not exist yet, then it gets added. If disk_path does not
|
||||||
exist, then iso_rr_path gets deleted.
|
exist, then iso_rr_path gets deleted.
|
||||||
.TP
|
.br
|
||||||
\fB\-update_l\fR disk_prefix iso_rr_prefix disk_path [***]
|
-update_r is also a convenient compromise between -add addressing and -cp_r
|
||||||
Performs -update_r with each of the disk_path arguments. iso_rr_path will be
|
addressing: Its semantics is similar to -add and thus avoids the pitfalls
|
||||||
composed from disk_path by replacing disk_prefix by iso_rr_prefix.
|
inherited from cp -r behavior. Its syntax resembles cp, though.
|
||||||
.TP
|
.TP
|
||||||
\fB\-cut_out\fR disk_path byte_offset byte_count iso_rr_path
|
\fB\-cut_out\fR disk_path byte_offset byte_count iso_rr_path
|
||||||
Map a byte interval of a regular disk file into a regular file in the ISO
|
Map a byte interval of a regular disk file into a regular file in the ISO
|
||||||
@ -695,23 +639,6 @@ to the directory if it already contains all parts of the old disk file.
|
|||||||
If not all parts are present, then only those present parts will
|
If not all parts are present, then only those present parts will
|
||||||
be updated.
|
be updated.
|
||||||
.TP
|
.TP
|
||||||
\fB\-cpr\fR disk_path [***] iso_rr_path
|
|
||||||
Insert the given files or directory trees from filesystem
|
|
||||||
into the ISO image.
|
|
||||||
.br
|
|
||||||
The rules for generating the ISO addresses are similar as with
|
|
||||||
shell command cp -r. Nevertheless, directories of the iso_rr_path
|
|
||||||
are created if necessary. Especially a not yet existing iso_rr_path
|
|
||||||
will be handled as directory if multiple disk_paths are present.
|
|
||||||
The leafnames of the multiple disk_paths will be grafted under that
|
|
||||||
directory as would be done with an existing directory.
|
|
||||||
.br
|
|
||||||
If a single disk_path is present then a non-existing iso_rr_path will
|
|
||||||
get the same type as the disk_path.
|
|
||||||
.br
|
|
||||||
If a disk_path does not begin with '/' then -cdx is prepended.
|
|
||||||
If the iso_rr_path does not begin with '/' then -cd is prepended.
|
|
||||||
.TP
|
|
||||||
\fB\-rm\fR iso_rr_path [***]
|
\fB\-rm\fR iso_rr_path [***]
|
||||||
Delete the given files from the ISO image.
|
Delete the given files from the ISO image.
|
||||||
.br
|
.br
|
||||||
@ -914,7 +841,7 @@ Switch from eventual modifiying mode to growing mode.
|
|||||||
are uncommitted manipulations pending.
|
are uncommitted manipulations pending.
|
||||||
So, to perform a final write operation with no new -dev
|
So, to perform a final write operation with no new -dev
|
||||||
and no new loading of image, rather execute option -end.
|
and no new loading of image, rather execute option -end.
|
||||||
To suppress a final write, execute -rollback_end.
|
To suppress a final write, execute -rollback -end.
|
||||||
To eject outdev after write without new loading of image, use -commit_eject.
|
To eject outdev after write without new loading of image, use -commit_eject.
|
||||||
.br
|
.br
|
||||||
|
|
||||||
@ -942,23 +869,18 @@ Combined -commit and -eject. When writing has finished do not make
|
|||||||
-indev and/or -outdev. Eventually give up any non-ejected drive.
|
-indev and/or -outdev. Eventually give up any non-ejected drive.
|
||||||
.TP
|
.TP
|
||||||
\fB\-blank\fR mode
|
\fB\-blank\fR mode
|
||||||
Make media ready for writing from scratch (if not -dummy is activated).
|
Blank media resp. invalidate ISO image on media if not -dummy
|
||||||
|
is activated.
|
||||||
.br
|
.br
|
||||||
This affects only the -outdev not the -indev.
|
This affects only the -outdev not the -indev.
|
||||||
If both drives are the same and if the ISO image was altered
|
If both drives are the same and if the ISO image was altered
|
||||||
then this command leads to a FAILURE event.
|
then this command leads to a FAILURE event.
|
||||||
Defined modes are:
|
Defined modes are:
|
||||||
as_needed, fast, all, deformat, deformat_quickest
|
fast, all, deformat, deformat_quickest
|
||||||
.br
|
|
||||||
"as_needed" cares for used CD-RW, DVD-RW and for used overwriteable media
|
|
||||||
by applying -blank "fast". It applies -format "full" to yet unformatted
|
|
||||||
DVD-RAM or BD-RE. Other media or states are gracefully ignored.
|
|
||||||
.br
|
.br
|
||||||
"fast" and "all" make CD-RW and unformatted DVD-RW re-usable,
|
"fast" and "all" make CD-RW and unformatted DVD-RW re-usable,
|
||||||
or invalidate overwriteable ISO images.
|
or invalidate overwriteable ISO images.
|
||||||
.br
|
|
||||||
"deformat" converts overwriteable DVD-RW into unformatted ones.
|
"deformat" converts overwriteable DVD-RW into unformatted ones.
|
||||||
.br
|
|
||||||
"deformat_quickest" is a faster way to deformat or blank DVD-RW
|
"deformat_quickest" is a faster way to deformat or blank DVD-RW
|
||||||
but produces media which are only suitable for a single session.
|
but produces media which are only suitable for a single session.
|
||||||
xorriso will write onto them only if option -close is set to "on".
|
xorriso will write onto them only if option -close is set to "on".
|
||||||
@ -969,111 +891,28 @@ reported percentages. Blanking was successful if no SORRY event or
|
|||||||
worse occured.
|
worse occured.
|
||||||
.TP
|
.TP
|
||||||
\fB\-format\fR mode
|
\fB\-format\fR mode
|
||||||
Convert unformatted DVD-RW into overwriteable ones, "de-ice" DVD+RW, format
|
Convert unformatted DVD-RW into overwriteable ones,
|
||||||
newly purchased BD-RE, re-format DVD-RAM or BD-RE.
|
"de-ice" DVD+RW.
|
||||||
|
For now, mode should be the word "full".
|
||||||
.br
|
.br
|
||||||
Defined modes are:
|
This action has no effect on media if -dummy is activated.
|
||||||
.br
|
.br
|
||||||
as_needed, full, fast, by_index_<num>, fast_by_index_<num>
|
Be warned that re-formatting DVD+RW is considered to be risky
|
||||||
|
to the media's health. DVD+RW get formatted as far as needed
|
||||||
|
during writing, but an entirely formatted media might be better
|
||||||
|
readable in some DVD players.
|
||||||
.br
|
.br
|
||||||
"as_needed" formats yet unformatted DVD-RW, DVD-RAM, BD-RE. Other media
|
On the other hand unreliable DVD+RW can sometimes be repaired by
|
||||||
are left untouched.
|
re-formatting.
|
||||||
.br
|
|
||||||
"full" (re-)formats DVD-RW, DVD+RW, DVD-RAM, BD-RE.
|
|
||||||
.br
|
|
||||||
"fast" does the same as "full" but tries to be quicker.
|
|
||||||
.br
|
|
||||||
"by_index_" selects a format out of the descriptor list issued by option
|
|
||||||
-list_formats. The index number from that list is to be appended to the
|
|
||||||
mode word. E.g: "by_index_3".
|
|
||||||
.br
|
|
||||||
"fast_by_index_" does the same as "by_index_" but tries to be quicker.
|
|
||||||
.br
|
|
||||||
The formatting action has no effect on media if -dummy is activated.
|
|
||||||
.br
|
|
||||||
Formatting is normally needed only once during the lifetime of a media,
|
|
||||||
if ever. But it is a reason for re-formatting if:
|
|
||||||
.br
|
|
||||||
DVD-RW was deformatted by -blank,
|
|
||||||
.br
|
|
||||||
DVD+RW has read failures (re-formatting might help or not),
|
|
||||||
.br
|
|
||||||
DVD-RAM or BD-RE shall change their amount of defect reserve.
|
|
||||||
.br
|
.br
|
||||||
|
|
||||||
The progress reports issued by some drives while formatting are
|
The progress reports issued by some drives while formatting are
|
||||||
quite unrealistic. Do not conclude success or failure from the
|
quite unrealistic. Do not conclude success or failure from the
|
||||||
reported percentages. Formatting was successful if no SORRY event
|
reported percentages. Formatting was successful if no SORRY event
|
||||||
or worse occured. Be patient with apparently frozen progress.
|
or worse occured.
|
||||||
.TP
|
|
||||||
\fB\-list_formats\fR
|
|
||||||
Put out a list of format descriptors as reported by the output drive for
|
|
||||||
the current media. The list gives the index number after "Format idx",
|
|
||||||
a MMC format code, the announced size in blocks (like "2236704s")
|
|
||||||
and the same size in MiB.
|
|
||||||
.br
|
|
||||||
MMC format codes are manifold. Most important are:
|
|
||||||
"00h" general formatting, "01h" increases reserve space for DVD-RAM,
|
|
||||||
"26h" for DVD+RW, "30h" for BD-RE with reserve space,
|
|
||||||
"31h" for BD-RE without reserve space.
|
|
||||||
.br
|
|
||||||
Smaller format size with DVD-RAM or BD-RE means more reserve space.
|
|
||||||
.TP
|
.TP
|
||||||
.B Settings for data insertion:
|
.B Settings for data insertion:
|
||||||
.TP
|
.TP
|
||||||
\fB\-not_mgt\fR code[:code[...]]
|
|
||||||
Control the behavior of the exclusion lists.
|
|
||||||
.br
|
|
||||||
Exclusion processing happens before disk_paths get mapped to the ISO image
|
|
||||||
and before disk files get compared with image files.
|
|
||||||
The absolute disk path of the source is matched against the -not_paths list.
|
|
||||||
The leafname of the disk path is matched against the patterns in the -not_leaf
|
|
||||||
list. If a match is detected then the disk path will not be regarded as an
|
|
||||||
existing file and not be added to the ISO image.
|
|
||||||
.br
|
|
||||||
Several codes are defined.
|
|
||||||
The _on/_off settings persist until they are revoked by their_off/_on
|
|
||||||
counterparts.
|
|
||||||
.br
|
|
||||||
"erase" empties the lists which were accumulated by -not_paths and -not_leaf.
|
|
||||||
.br
|
|
||||||
"reset" is like "erase" but also re-installs default behavior.
|
|
||||||
.br
|
|
||||||
"off" disables exclusion processing temporarily without invalidating
|
|
||||||
the lists and settings.
|
|
||||||
.br
|
|
||||||
"on" re-enables exclusion processing.
|
|
||||||
.br
|
|
||||||
"param_off" applies exclusion processing only to paths below disk_path
|
|
||||||
parameter of commands. I.e. explicitely given disk_paths are exempted
|
|
||||||
from exclusion processing.
|
|
||||||
.br
|
|
||||||
"param_on" applies exclusion processing to command parameters as well as
|
|
||||||
to files below such parameters.
|
|
||||||
.br
|
|
||||||
"subtree_off" with "param_on" excludes parameter paths only if they
|
|
||||||
match a -not_paths item exactly.
|
|
||||||
.br
|
|
||||||
"subtree_on" additionally excludes parameter paths which lead to a file
|
|
||||||
address below any -not_paths item.
|
|
||||||
.br
|
|
||||||
"ignore_off" treats excluded disk files as if they were missing. I.e. they
|
|
||||||
get reported with -compare and deleted from the image with -update.
|
|
||||||
.br
|
|
||||||
"ignore_on" keeps excluded files out of -compare or -update activities.
|
|
||||||
.TP
|
|
||||||
\fB\-not_paths\fR disk_path [***]
|
|
||||||
Add the given paths to the list of excluded absolute disk paths. If a given
|
|
||||||
path is relative, then the current -cdx is prepended to form an absolute path.
|
|
||||||
Eventual pattern matching happens at definition time and not when exclusion
|
|
||||||
checks are made.
|
|
||||||
.br
|
|
||||||
(Do not forget to end the list of disk_paths by "--")
|
|
||||||
.TP
|
|
||||||
\fB\-not_leaf\fR pattern
|
|
||||||
Add a single shell parser style pattern to the list of exclusions for
|
|
||||||
disk leafnames. These patterns are evaluated when the exclusion checks are
|
|
||||||
made.
|
|
||||||
.TP
|
|
||||||
\fB\-follow\fR occasion[:occasion[...]]
|
\fB\-follow\fR occasion[:occasion[...]]
|
||||||
Enable or disable resolution of symbolic links and mountpoints under
|
Enable or disable resolution of symbolic links and mountpoints under
|
||||||
disk_paths. This applies to actions -add, -du*x, -ls*x, -findx,
|
disk_paths. This applies to actions -add, -du*x, -ls*x, -findx,
|
||||||
@ -1149,9 +988,6 @@ With setting "nondir", only directories are protected by such events, other
|
|||||||
existing file types get treated with -rm before the new file gets added.
|
existing file types get treated with -rm before the new file gets added.
|
||||||
Setting "on" allows automatic -rm_r. I.e. a non-directory can replace an
|
Setting "on" allows automatic -rm_r. I.e. a non-directory can replace an
|
||||||
existing directory and all its subordinates.
|
existing directory and all its subordinates.
|
||||||
.br
|
|
||||||
If restoring of files is enabled, then the overwrite rule applies to the
|
|
||||||
target file objects on disk as well, but "on" is downgraded to "nondir".
|
|
||||||
.TP
|
.TP
|
||||||
\fB\-split_size\fR number["k"|"m"]
|
\fB\-split_size\fR number["k"|"m"]
|
||||||
Set the threshold for automatic splitting of regular files. Such splitting
|
Set the threshold for automatic splitting of regular files. Such splitting
|
||||||
@ -1214,15 +1050,8 @@ MMC drives usually activate their own idea of speed and take
|
|||||||
the speed value given by the burn program only as upper limit
|
the speed value given by the burn program only as upper limit
|
||||||
for their own decision.
|
for their own decision.
|
||||||
.TP
|
.TP
|
||||||
\fB\-stream_recording\fR "on"|"off"
|
|
||||||
Setting "on" tries to circumvent the management of defects on DVD-RAM and
|
|
||||||
DVD+RW. Defect management keeps partly damaged media usable. But it reduces
|
|
||||||
write speed to half nominal speed even if the media is in perfect shape.
|
|
||||||
For the case of flawless media, one may use -stream_recording "on" to get
|
|
||||||
full speed.
|
|
||||||
.TP
|
|
||||||
\fB\-dummy\fR "on"|"off"
|
\fB\-dummy\fR "on"|"off"
|
||||||
If "on" then simulate burning or refuse with FAILURE event if
|
If "on" simulate burning or refuse with FAILURE event if
|
||||||
no simulation is possible, do neither blank nor format.
|
no simulation is possible, do neither blank nor format.
|
||||||
.TP
|
.TP
|
||||||
\fB-fs\fR number["k"|"m"]
|
\fB-fs\fR number["k"|"m"]
|
||||||
@ -1354,22 +1183,6 @@ A special property of this option is that the first -report_about setting
|
|||||||
among the start arguments is in effect already when the first operations
|
among the start arguments is in effect already when the first operations
|
||||||
of xorriso begin. Only "-report_about" with dash "-" is recognized that way.
|
of xorriso begin. Only "-report_about" with dash "-" is recognized that way.
|
||||||
.TP
|
.TP
|
||||||
\fB\-error_behavior\fR occasion behavior
|
|
||||||
Control the program behavior at problem event occasions.
|
|
||||||
.br
|
|
||||||
For now this applies only to occasion "image_loading" which is given while
|
|
||||||
an image tree is read from the input device. There are three behaviors
|
|
||||||
available:
|
|
||||||
.br
|
|
||||||
"best_effort" goes on with reading after events with severity below FAILURE
|
|
||||||
if the threshold of option -abort_on allows this.
|
|
||||||
.br
|
|
||||||
"failure" aborts image tree reading on first event of at least SORRY.
|
|
||||||
It issues an own FAILURE event.
|
|
||||||
.br
|
|
||||||
"fatal" acts like "failure" but issues the own event as FATAL.
|
|
||||||
This is the default.
|
|
||||||
.TP
|
|
||||||
.B Dialog mode control:
|
.B Dialog mode control:
|
||||||
.TP
|
.TP
|
||||||
\fB\-dialog\fR "on"|"off"
|
\fB\-dialog\fR "on"|"off"
|
||||||
@ -1397,8 +1210,6 @@ If "on" then ask the user for "y" or "n":
|
|||||||
.br
|
.br
|
||||||
before deleting or overwriting any file in the ISO image,
|
before deleting or overwriting any file in the ISO image,
|
||||||
.br
|
.br
|
||||||
before overwriting any disk file during restore operations,
|
|
||||||
.br
|
|
||||||
before rolling back pending image changes,
|
before rolling back pending image changes,
|
||||||
.br
|
.br
|
||||||
before committing image changes to media,
|
before committing image changes to media,
|
||||||
@ -1427,6 +1238,17 @@ use -rollback to revoke the whole session.
|
|||||||
.TP
|
.TP
|
||||||
.B Drive and media related inquiry actions:
|
.B Drive and media related inquiry actions:
|
||||||
.TP
|
.TP
|
||||||
|
\fB\-toc\fR
|
||||||
|
.br
|
||||||
|
Show media specific table of content. This is the media
|
||||||
|
structure, not the ISO image directory tree. In case of
|
||||||
|
overwriteable media holding a valid ISO image, a single
|
||||||
|
session gets fabricated from the ISO image size info.
|
||||||
|
.br
|
||||||
|
A drive which is incapable of writing may show any media as CD-ROM or DVD-ROM
|
||||||
|
with only one or two sessions on it. The last of these sessions is supposed
|
||||||
|
to be the most recent real session then.
|
||||||
|
.TP
|
||||||
\fB\-devices\fR
|
\fB\-devices\fR
|
||||||
Show list of available MMC drives with the addresses of
|
Show list of available MMC drives with the addresses of
|
||||||
their libburn standard device files.
|
their libburn standard device files.
|
||||||
@ -1442,24 +1264,7 @@ who is able to see all drives.
|
|||||||
.br
|
.br
|
||||||
Drives which are occupied by other processes get not shown.
|
Drives which are occupied by other processes get not shown.
|
||||||
.TP
|
.TP
|
||||||
\fB\-toc\fR
|
\fB\-print-size\fR
|
||||||
.br
|
|
||||||
Show media specific table of content. This is the media session history,
|
|
||||||
not the ISO image directory tree.
|
|
||||||
.br
|
|
||||||
In case of overwriteable media holding a valid ISO image, a single session
|
|
||||||
gets fabricated from the ISO image size info. But if the first session on the
|
|
||||||
overwriteable media was written by xorriso then in most cases a complete
|
|
||||||
session history can be emulated.
|
|
||||||
.br
|
|
||||||
A drive which is incapable of writing may show any media as CD-ROM or DVD-ROM
|
|
||||||
with only one or two sessions on it. The last of these sessions is supposed
|
|
||||||
to be the most recent real session then.
|
|
||||||
.br
|
|
||||||
Some read-only drives and media show no usable session history at all.
|
|
||||||
Eventually option -rom_toc_scan might help.
|
|
||||||
.TP
|
|
||||||
\fB\-print_size\fR
|
|
||||||
Print the foreseeable consumption of 2048 byte blocks
|
Print the foreseeable consumption of 2048 byte blocks
|
||||||
by next -commit. This can last a while as a -commit gets
|
by next -commit. This can last a while as a -commit gets
|
||||||
prepared and only in last moment is revoked by this option.
|
prepared and only in last moment is revoked by this option.
|
||||||
@ -1610,106 +1415,6 @@ Like -compare but working recursively. I.e. all file objects below both
|
|||||||
addresses get compared whether they have counterparts below the other address
|
addresses get compared whether they have counterparts below the other address
|
||||||
and whether both counterparts match.
|
and whether both counterparts match.
|
||||||
.TP
|
.TP
|
||||||
\fB\-compare_l\fR disk_prefix iso_rr_prefix disk_path [***]
|
|
||||||
Performs -compare_r with each of the disk_path arguments. iso_rr_path will be
|
|
||||||
composed from disk_path by replacing disk_prefix by iso_rr_prefix.
|
|
||||||
.TP
|
|
||||||
.B osirrox restore options:
|
|
||||||
.PP
|
|
||||||
Normally xorriso only writes to disk files which were given as stdio:
|
|
||||||
pseudo-drives or as log files.
|
|
||||||
But its alter ego, osirrox, is able to extract file objects
|
|
||||||
from ISO images and to create, overwrite, or delete file objects on disk.
|
|
||||||
.br
|
|
||||||
Disk file exclusions by -not_mgt, -not_leaf, -not_paths apply.
|
|
||||||
If disk file objects already exist then the settings of -overwrite and
|
|
||||||
-reassure apply. But -overwrite "on" only triggers the behavior
|
|
||||||
of -overwrite "nondir". I.e. directories cannot be deleted.
|
|
||||||
.br
|
|
||||||
Access permissions of files in the ISO image do not restrict restoring.
|
|
||||||
The directory permissions on disk have to allow rwx.
|
|
||||||
.TP
|
|
||||||
\fB\-osirrox\fR "on"|"device_files"|"off"[:option:...]
|
|
||||||
Setting "off" disables disk filesystem manipulations. This is the default
|
|
||||||
unless the program was started with leafname "osirrox". Elsewise
|
|
||||||
the capability to restore files can be enabled explicitly by -osirrox "on".
|
|
||||||
.br
|
|
||||||
To enable restoring of special files by "device_files" is potentially
|
|
||||||
dangerous.
|
|
||||||
The meaning of the number st_rdev (see man 2 stat) depends much on the
|
|
||||||
operating system. Best is to restore device files only to the same system
|
|
||||||
from where they were copied. If not enabled, device files in the ISO image
|
|
||||||
are ignored during restore operations.
|
|
||||||
.br
|
|
||||||
Due to a bug of previous versions, device files from previous sessions might
|
|
||||||
have been altered to major=0, minor=1. So this combination does not get
|
|
||||||
restored.
|
|
||||||
.br
|
|
||||||
Option "concat_split_on" is default. It enables restoring of split file
|
|
||||||
directories as data files if the directory contains a complete collection
|
|
||||||
of -cut_out part files. With option "concat_split_off" such directories are
|
|
||||||
handled like any other ISO image directory.
|
|
||||||
.br
|
|
||||||
Option "auto_chmod_off" is default. If "auto_chmod_on" is set then access
|
|
||||||
restrictions for disk directories get circumvented if those directories
|
|
||||||
are owned by the effective user who runs xorriso. This happens by temporarily
|
|
||||||
granting rwx permission to the owner. It will not work with ACL restrictions.
|
|
||||||
.TP
|
|
||||||
\fB\-extract\fR iso_rr_path disk_path
|
|
||||||
Restore the file objects at and underneath iso_rr_path to their corresponding
|
|
||||||
addresses at and underneath disk_path.
|
|
||||||
This is the inverse of -map or -update_r.
|
|
||||||
.br
|
|
||||||
If iso_rr_path is a directory and disk_path is an existing directory then
|
|
||||||
both trees will be merged. Directory attributes get extracted only if the disk
|
|
||||||
directory is newly created by the restore operation.
|
|
||||||
Disk files get removed only if they are to be replaced
|
|
||||||
by file objects from the ISO image.
|
|
||||||
.br
|
|
||||||
As many attributes as possible are copied together with restored
|
|
||||||
file objects.
|
|
||||||
.TP
|
|
||||||
\fB\-extract_single\fR iso_rr_path disk_path
|
|
||||||
Like -extract, but if iso_rr_path is a directory then its sub tree gets not
|
|
||||||
restored.
|
|
||||||
.TP
|
|
||||||
\fB\-extract_l\fR iso_rr_prefix disk_prefix iso_rr_path [***]
|
|
||||||
Performs -extract with each of the iso_rr_path arguments. disk_path will be
|
|
||||||
composed from iso_rr_path by replacing iso_rr_prefix by disk_prefix.
|
|
||||||
.TP
|
|
||||||
\fB\-cpx\fR iso_rr_path [***] disk_path
|
|
||||||
Extract single leaf file objects from the ISO image and store them under
|
|
||||||
the address given by disk_path. If more then one iso_rr_path is given then
|
|
||||||
disk_path must be a directory or non-existent. In the latter case it gets
|
|
||||||
created and the extracted files get installed in it with the same leafnames.
|
|
||||||
.br
|
|
||||||
Missing directory components in disk_path will get created, if possible.
|
|
||||||
.br
|
|
||||||
Directories are allowed as iso_rr_path only with -osirrox "concat_split_on"
|
|
||||||
and only if they actually represent a complete collection of -cut_out split
|
|
||||||
file parts.
|
|
||||||
.TP
|
|
||||||
\fB\-cpax\fR iso_rr_path [***] disk_path
|
|
||||||
Like -cpx but restoring mtime, atime as in ISO image and trying to set
|
|
||||||
ownership and group as in ISO image.
|
|
||||||
.TP
|
|
||||||
\fB\-cp_rx\fR iso_rr_path [***] disk_path
|
|
||||||
Like -cpx but also extracting whole directory trees from the ISO image.
|
|
||||||
.br
|
|
||||||
The resulting disk paths are determined as with shell command cp -r :
|
|
||||||
If disk_path is an existing directory then the trees will be inserted or merged
|
|
||||||
underneath this directory and will keep their leaf names. The ISO directory "/"
|
|
||||||
has no leaf name and thus gets mapped directly to disk_path.
|
|
||||||
.TP
|
|
||||||
\fB\-cp_rax\fR iso_rr_path [***] disk_path
|
|
||||||
Like -cp_rx but restoring mtime, atime as in ISO image and trying to set
|
|
||||||
ownership and group as in ISO image.
|
|
||||||
.TP
|
|
||||||
\fB\-paste_in\fR iso_rr_path disk_path byte_offset byte_count
|
|
||||||
Read the content of a ISO data file and write it into a data file on disk
|
|
||||||
beginning at the byte_offset. Write at most byte_count bytes.
|
|
||||||
This is the inverse of option -cut_out.
|
|
||||||
.TP
|
|
||||||
.B Command compatibility emulations:
|
.B Command compatibility emulations:
|
||||||
.PP
|
.PP
|
||||||
Writing of ISO 9660 on CD is traditionally done by program mkisofs
|
Writing of ISO 9660 on CD is traditionally done by program mkisofs
|
||||||
@ -1732,8 +1437,8 @@ Personality "\fBmkisofs\fR" accepts the options listed with:
|
|||||||
.br
|
.br
|
||||||
-as mkisofs -help --
|
-as mkisofs -help --
|
||||||
.br
|
.br
|
||||||
Among them: -R (always on), -J, -graft-points, -o, -path-list, -m, -print-size,
|
Among them: -R (always on), -J, -graft-points, -o, -path-list, -print-size, -V,
|
||||||
-V, -v, -version, pathspecs as with xorriso -add. A lot of options are not
|
-v, -version, pathspecs as with xorriso -add. A lot of options are not
|
||||||
supported and lead to failure of the mkisofs emulation. Some are ignored,
|
supported and lead to failure of the mkisofs emulation. Some are ignored,
|
||||||
but better do not rely on this tolerance.
|
but better do not rely on this tolerance.
|
||||||
.br
|
.br
|
||||||
@ -1859,7 +1564,8 @@ This transport becomes visible with -report_about "ALL".
|
|||||||
If path is not empty it gives the address of a plain text file where
|
If path is not empty it gives the address of a plain text file where
|
||||||
a log record gets appended after each session. This log can be used to
|
a log record gets appended after each session. This log can be used to
|
||||||
determine the start_lba of a session for mount option sbsector= from
|
determine the start_lba of a session for mount option sbsector= from
|
||||||
date or volume id.
|
date or volume id. With non-multi-session media this is currently the only
|
||||||
|
way to obtain this parameter.
|
||||||
.br
|
.br
|
||||||
Record format is: timestamp start_lba size volume-id
|
Record format is: timestamp start_lba size volume-id
|
||||||
.br
|
.br
|
||||||
@ -1930,8 +1636,6 @@ Adjust thresholds for verbosity, exit value and program abort
|
|||||||
Examples of input timestrings
|
Examples of input timestrings
|
||||||
.br
|
.br
|
||||||
Incremental backup of a few directory trees
|
Incremental backup of a few directory trees
|
||||||
.br
|
|
||||||
Restore directory trees from a particular ISO session to disk
|
|
||||||
.SS
|
.SS
|
||||||
.B As superuser learn about available drives
|
.B As superuser learn about available drives
|
||||||
Consider to give rw permissions to those users or groups
|
Consider to give rw permissions to those users or groups
|
||||||
@ -1954,15 +1658,19 @@ Re-add some wanted stuff.
|
|||||||
Because no -dialog "on" is given, the program will then end by committing the
|
Because no -dialog "on" is given, the program will then end by committing the
|
||||||
session to media.
|
session to media.
|
||||||
.br
|
.br
|
||||||
\fB$\fR cd /home/me
|
|
||||||
.br
|
|
||||||
\fB$\fR xorriso -outdev /dev/sr2 \\
|
\fB$\fR xorriso -outdev /dev/sr2 \\
|
||||||
.br
|
.br
|
||||||
-blank as_needed \\
|
-blank fast \\
|
||||||
.br
|
.br
|
||||||
-map /home/me/sounds /sounds \\
|
-pathspecs on \\
|
||||||
.br
|
.br
|
||||||
-map /home/me/pictures /pictures \\
|
-add \\
|
||||||
|
.br
|
||||||
|
/sounds=/home/me/sounds \\
|
||||||
|
.br
|
||||||
|
/pictures \\
|
||||||
|
.br
|
||||||
|
-- \\
|
||||||
.br
|
.br
|
||||||
-rm_r \\
|
-rm_r \\
|
||||||
.br
|
.br
|
||||||
@ -1974,12 +1682,12 @@ session to media.
|
|||||||
.br
|
.br
|
||||||
-- \\
|
-- \\
|
||||||
.br
|
.br
|
||||||
-cd / \\
|
-add \\
|
||||||
.br
|
.br
|
||||||
-add pictures/confidential/work*
|
/pictures/confidential/work*
|
||||||
.br
|
.br
|
||||||
Note that '/pictures/*private*' is a pattern for iso_rr_paths
|
Note that '/pictures/*private*' is a pattern for iso_rr_paths
|
||||||
while pictures/confidential/work* gets expanded by the shell
|
while /pictures/confidential/work* gets expanded by the shell
|
||||||
with addresses from the hard disk.
|
with addresses from the hard disk.
|
||||||
.SS
|
.SS
|
||||||
.B A dialog session doing about the same
|
.B A dialog session doing about the same
|
||||||
@ -1994,7 +1702,7 @@ made ready for being overwritten and the loaded ISO image is made empty.
|
|||||||
In order to be able to eject the media, the session needs to be committed
|
In order to be able to eject the media, the session needs to be committed
|
||||||
explicitely.
|
explicitely.
|
||||||
.br
|
.br
|
||||||
.B $ xorriso -dialog on -page 20 80 -disk_pattern on
|
.B $ xorriso -pathspecs on -dialog on -page 20 80
|
||||||
.br
|
.br
|
||||||
enter option and arguments :
|
enter option and arguments :
|
||||||
.br
|
.br
|
||||||
@ -2002,11 +1710,11 @@ enter option and arguments :
|
|||||||
.br
|
.br
|
||||||
enter option and arguments :
|
enter option and arguments :
|
||||||
.br
|
.br
|
||||||
.B \-blank as_needed
|
.B \-blank fast
|
||||||
.br
|
.br
|
||||||
enter option and arguments :
|
enter option and arguments :
|
||||||
.br
|
.br
|
||||||
.B \-map /home/me/sounds /sounds -map /home/me/pictures /pictures
|
.B \-add /sounds=/home/me/sounds /pictures
|
||||||
.br
|
.br
|
||||||
enter option and arguments :
|
enter option and arguments :
|
||||||
.br
|
.br
|
||||||
@ -2014,11 +1722,7 @@ enter option and arguments :
|
|||||||
.br
|
.br
|
||||||
enter option and arguments :
|
enter option and arguments :
|
||||||
.br
|
.br
|
||||||
.B \-cdx /home/me/pictures -cd /pictures
|
.B \-add /pictures/confidential/office /pictures/confidential/factory
|
||||||
.br
|
|
||||||
enter option and arguments :
|
|
||||||
.br
|
|
||||||
.B \-add confidential/office confidential/factory
|
|
||||||
.br
|
.br
|
||||||
enter option and arguments :
|
enter option and arguments :
|
||||||
.br
|
.br
|
||||||
@ -2050,9 +1754,15 @@ Add new directory trees /sounds and /movies. Burn to the same media and eject.
|
|||||||
.br
|
.br
|
||||||
-chmod go-rwx /pictures/restricted -- \\
|
-chmod go-rwx /pictures/restricted -- \\
|
||||||
.br
|
.br
|
||||||
-map /home/me/prepared_for_dvd/sounds_dummy /sounds \\
|
-pathsspecs on \\
|
||||||
.br
|
.br
|
||||||
-map /home/me/prepared_for_dvd/movies /movies \\
|
-add \\
|
||||||
|
.br
|
||||||
|
/sounds=/home/me/prepared_for_dvd/sounds_dummy \\
|
||||||
|
.br
|
||||||
|
/movies=/home/me/prepared_for_dvd/movies \\
|
||||||
|
.br
|
||||||
|
-- \\
|
||||||
.br
|
.br
|
||||||
-commit -eject all
|
-commit -eject all
|
||||||
.SS
|
.SS
|
||||||
@ -2067,7 +1777,7 @@ first and only session to the output drive.
|
|||||||
.br
|
.br
|
||||||
...
|
...
|
||||||
.br
|
.br
|
||||||
-outdev /dev/sr0 -blank as_needed \\
|
-outdev /dev/sr0 -blank fast \\
|
||||||
.br
|
.br
|
||||||
-commit -eject all
|
-commit -eject all
|
||||||
.SS
|
.SS
|
||||||
@ -2132,19 +1842,14 @@ compare them with their disk counterparts,
|
|||||||
add disk file objects which are missing yet,
|
add disk file objects which are missing yet,
|
||||||
overwrite those which are different on disk,
|
overwrite those which are different on disk,
|
||||||
and delete those which have vanished on disk.
|
and delete those which have vanished on disk.
|
||||||
But do not add or overwrite files matching *.o, *.swp.
|
|
||||||
.br
|
.br
|
||||||
\fB$\fR xorriso -dev /dev/sr0 \\
|
\fB$\fR xorriso -dev /dev/sr0 \\
|
||||||
.br
|
|
||||||
-volid PROJECTS_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" \\
|
|
||||||
.br
|
|
||||||
-not_leaf '*.o' -not_leaf '*.swp' \\
|
|
||||||
.br
|
.br
|
||||||
-update_r /home/thomas/open_source_projects /open_source_projects \\
|
-update_r /home/thomas/open_source_projects /open_source_projects \\
|
||||||
.br
|
.br
|
||||||
-update_r /home/thomas/personal_mail /personal_mail \\
|
-update_r /home/thomas/personal_mail /personal_mail \\
|
||||||
.br
|
.br
|
||||||
-commit -toc -eject all
|
-commit_eject all
|
||||||
.br
|
.br
|
||||||
To be used several times on the same media, whenever an update of
|
To be used several times on the same media, whenever an update of
|
||||||
the two disk trees to the media is desired. Begin with blank media and start
|
the two disk trees to the media is desired. Begin with blank media and start
|
||||||
@ -2155,14 +1860,21 @@ This makes most sense with backups on non-erasable media like CD-R,
|
|||||||
DVD-R, DVD+R if the full backup leaves substantial remaining capacity
|
DVD-R, DVD+R if the full backup leaves substantial remaining capacity
|
||||||
on media and if the expected changes are much smaller than the full backup.
|
on media and if the expected changes are much smaller than the full backup.
|
||||||
An update run will probably save no time but last longer than a full backup.
|
An update run will probably save no time but last longer than a full backup.
|
||||||
Another good reason may be given if read speed is much higher than write speed.
|
|
||||||
.br
|
.br
|
||||||
With \fBmount\fR option \fB"sbsector="\fR it is possible to access the session
|
With \fBmount\fR option \fB"sbsector="\fR it is possible to access the session
|
||||||
trees which represent the older backup versions. With CD media, Linux mount
|
trees which represent the older backup versions. Multi-session media can tell
|
||||||
accepts session numbers directly by its option "session=".
|
the sbsector by xorriso option -toc, as "data lba:". For other media one
|
||||||
|
may set before writing a suitable path for xorriso option -session_log where
|
||||||
|
the sbsector number gets recorded as the second word in each line.
|
||||||
.br
|
.br
|
||||||
Multi-session media and most overwriteable media written by xorriso can tell
|
With CD media, Linux mount accepts session numbers directly by its option
|
||||||
the sbsector of a session by xorriso option -toc.
|
"session=".
|
||||||
|
.br
|
||||||
|
\fBDo not write more than about 50 sessions\fR to one multi-session media.
|
||||||
|
Theoretical limits are higher but in practice the media deteriorate more early.
|
||||||
|
It might also be that your operating system has a session limit with mount.
|
||||||
|
Always have a blank media ready to perform a full backup in case the update
|
||||||
|
attempt fails. An overview of sessions is given by option -toc.
|
||||||
.br
|
.br
|
||||||
Sessions on multi-session media are separated by several MB of unused blocks.
|
Sessions on multi-session media are separated by several MB of unused blocks.
|
||||||
So with small sessions the payload capacity can become substantially lower
|
So with small sessions the payload capacity can become substantially lower
|
||||||
@ -2174,34 +1886,14 @@ automatically.
|
|||||||
Have at least two media which you use alternatingly. So only older backups
|
Have at least two media which you use alternatingly. So only older backups
|
||||||
get endangered by the new write operation, while the newest backup is
|
get endangered by the new write operation, while the newest backup is
|
||||||
stored safely on a different media.
|
stored safely on a different media.
|
||||||
Always have a blank media ready to perform a full backup in case the update
|
|
||||||
attempt fails due to insufficient remaining capacity.
|
|
||||||
.SS
|
|
||||||
.B Restore directory trees from a particular ISO session to disk
|
|
||||||
This is an alternative to mounting the media and using normal file operations.
|
|
||||||
.br
|
.br
|
||||||
First check which backup sessions are on the media:
|
If you have enough re-useable media for a round-robin scheme then better do
|
||||||
|
full backups with blank media each time. Blanking can be achieved by
|
||||||
|
either a separate run:
|
||||||
.br
|
.br
|
||||||
\fB$\fR xorriso -outdev /dev/sr0 -toc
|
\fB$\fR xorriso -outdev /dev/sr0 -blank fast -eject all
|
||||||
.br
|
.br
|
||||||
Then load the desired session and copy the file trees to disk.
|
or in the update run by using option -blank "fast" before option -update_r.
|
||||||
Avoid to eventually create /home/thomas/restored without rwx-permission.
|
|
||||||
.br
|
|
||||||
\fB$\fR xorriso -load volid PROJECTS_MAIL_2008_06_19_205956 \\
|
|
||||||
.br
|
|
||||||
-indev /dev/sr0 \\
|
|
||||||
.br
|
|
||||||
-osirrox on:auto_chmod_on \\
|
|
||||||
.br
|
|
||||||
-chmod u+rwx / -- \\
|
|
||||||
.br
|
|
||||||
-extract /open_source_projects \\
|
|
||||||
.br
|
|
||||||
/home/thomas/restored/open_source_projects \\
|
|
||||||
.br
|
|
||||||
-extract /personal_mail /home/thomas/restored/personal_mail
|
|
||||||
.br
|
|
||||||
-rollback_end
|
|
||||||
.br
|
.br
|
||||||
.SH FILES
|
.SH FILES
|
||||||
.SS
|
.SS
|
||||||
|
2512
xorriso/xorriso.c
2512
xorriso/xorriso.c
File diff suppressed because it is too large
Load Diff
@ -72,13 +72,6 @@ int Xorriso_msgs_submit(struct XorrisO *xorriso,
|
|||||||
int error_code, char msg_text[], int os_errno,
|
int error_code, char msg_text[], int os_errno,
|
||||||
char severity[], int flag);
|
char severity[], int flag);
|
||||||
|
|
||||||
/** Alternative call interface of Xorriso_msgs_submit with void* instead
|
|
||||||
of struct XorrisO*
|
|
||||||
*/
|
|
||||||
int Xorriso_msgs_submit_void(void *xorriso,
|
|
||||||
int error_code, char msg_text[], int os_errno,
|
|
||||||
char severity[], int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/** Evaluate an advise whether to abort or whether to go on with option
|
/** Evaluate an advise whether to abort or whether to go on with option
|
||||||
processing. This should be called after any option function was processed.
|
processing. This should be called after any option function was processed.
|
||||||
@ -240,13 +233,6 @@ int Xorriso_option_compare(struct XorrisO *xorriso, char *disk_path,
|
|||||||
int Xorriso_option_cpri( struct XorrisO *xorriso, int argc, char **argv,
|
int Xorriso_option_cpri( struct XorrisO *xorriso, int argc, char **argv,
|
||||||
int *idx, int flag);
|
int *idx, int flag);
|
||||||
|
|
||||||
/* Options -cpx , -cpax, -cp_rx , -cp_rax */
|
|
||||||
/* @param flag bit0= recursive (-cp_rx, -cp_rax)
|
|
||||||
bit1= full property restore (-cpax, -cp_rax)
|
|
||||||
*/
|
|
||||||
int Xorriso_option_cpx(struct XorrisO *xorriso, int argc, char **argv,
|
|
||||||
int *idx, int flag);
|
|
||||||
|
|
||||||
/* Option -cut_out */
|
/* Option -cut_out */
|
||||||
int Xorriso_option_cut_out(struct XorrisO *xorriso, char *disk_path,
|
int Xorriso_option_cut_out(struct XorrisO *xorriso, char *disk_path,
|
||||||
char *start, char *count, char *iso_rr_path, int flag);
|
char *start, char *count, char *iso_rr_path, int flag);
|
||||||
@ -282,21 +268,9 @@ int Xorriso_option_eject(struct XorrisO *xorriso, char *which, int flag);
|
|||||||
*/
|
*/
|
||||||
int Xorriso_option_end(struct XorrisO *xorriso, int flag);
|
int Xorriso_option_end(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
/* Option -errfile_log marked|plain path|-|"" */
|
/* Option -iso_rr_pattern "on"|"ls"|"off" */
|
||||||
int Xorriso_option_errfile_log(struct XorrisO *xorriso,
|
int Xorriso_option_iso_rr_pattern(struct XorrisO *xorriso, char *mode,
|
||||||
char *mode, char *path, int flag);
|
int flag);
|
||||||
|
|
||||||
/* Option -error_behavior */
|
|
||||||
int Xorriso_option_error_behavior(struct XorrisO *xorriso,
|
|
||||||
char *occasion, char *behavior, int flag);
|
|
||||||
|
|
||||||
/* Options -extract , -extract_single */
|
|
||||||
/* @param flag bit0=do not report the restored item
|
|
||||||
bit1=do not reset pacifier, no final pacifier message
|
|
||||||
bit5= -extract_single: eventually do not insert directory tree
|
|
||||||
*/
|
|
||||||
int Xorriso_option_extract(struct XorrisO *xorriso, char *disk_path,
|
|
||||||
char *iso_path, int flag);
|
|
||||||
|
|
||||||
/* Option -follow */
|
/* Option -follow */
|
||||||
int Xorriso_option_follow(struct XorrisO *xorriso, char *mode, int flag);
|
int Xorriso_option_follow(struct XorrisO *xorriso, char *mode, int flag);
|
||||||
@ -321,22 +295,9 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag);
|
|||||||
/* Option -history */
|
/* Option -history */
|
||||||
int Xorriso_option_history(struct XorrisO *xorriso, char *line, int flag);
|
int Xorriso_option_history(struct XorrisO *xorriso, char *line, int flag);
|
||||||
|
|
||||||
/* Option -iso_rr_pattern "on"|"ls"|"off" */
|
|
||||||
int Xorriso_option_iso_rr_pattern(struct XorrisO *xorriso, char *mode,
|
|
||||||
int flag);
|
|
||||||
|
|
||||||
/* Option -joliet "on"|"off" */
|
/* Option -joliet "on"|"off" */
|
||||||
int Xorriso_option_joliet(struct XorrisO *xorriso, char *mode, int flag);
|
int Xorriso_option_joliet(struct XorrisO *xorriso, char *mode, int flag);
|
||||||
|
|
||||||
/* Option -list_formats */
|
|
||||||
int Xorriso_option_list_formats(struct XorrisO *xorriso, int flag);
|
|
||||||
|
|
||||||
/* Option -load session|track|sbsector value */
|
|
||||||
/* @return <=0 error , 1 success, 2 revoked by -reassure
|
|
||||||
*/
|
|
||||||
int Xorriso_option_load(struct XorrisO *xorriso, char *adr_mode,
|
|
||||||
char *adr_value, int flag);
|
|
||||||
|
|
||||||
/* Option -logfile */
|
/* Option -logfile */
|
||||||
int Xorriso_option_logfile(struct XorrisO *xorriso, char *channel,
|
int Xorriso_option_logfile(struct XorrisO *xorriso, char *channel,
|
||||||
char *fileadr, int flag);
|
char *fileadr, int flag);
|
||||||
@ -361,22 +322,6 @@ int Xorriso_option_lsi(struct XorrisO *xorriso, int argc, char **argv,
|
|||||||
int Xorriso_option_lsx(struct XorrisO *xorriso, int argc, char **argv,
|
int Xorriso_option_lsx(struct XorrisO *xorriso, int argc, char **argv,
|
||||||
int *idx, int flag);
|
int *idx, int flag);
|
||||||
|
|
||||||
/* Option -map */
|
|
||||||
/* @param flag bit0=do not report the added item
|
|
||||||
bit1=do not reset pacifier, no final pacifier message
|
|
||||||
*/
|
|
||||||
int Xorriso_option_map(struct XorrisO *xorriso, char *disk_path,
|
|
||||||
char *iso_path, int flag);
|
|
||||||
|
|
||||||
/* Options -map_l , -compare_l , -update_l , -extract_l */
|
|
||||||
/* @param flag bit8-11= mode 0= -map_l
|
|
||||||
1= -compare_l
|
|
||||||
2= -update_l
|
|
||||||
3= -extract_l
|
|
||||||
*/
|
|
||||||
int Xorriso_option_map_l(struct XorrisO *xorriso, int argc, char **argv,
|
|
||||||
int *idx, int flag);
|
|
||||||
|
|
||||||
/* Option -mark */
|
/* Option -mark */
|
||||||
int Xorriso_option_mark(struct XorrisO *xorriso, char *mark, int flag);
|
int Xorriso_option_mark(struct XorrisO *xorriso, char *mark, int flag);
|
||||||
|
|
||||||
@ -391,21 +336,11 @@ int Xorriso_option_mvi(struct XorrisO *xorriso, int argc, char **argv,
|
|||||||
/* Option -no_rc */
|
/* Option -no_rc */
|
||||||
int Xorriso_option_no_rc(struct XorrisO *xorriso, int flag);
|
int Xorriso_option_no_rc(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
/* Option -not_leaf */
|
|
||||||
int Xorriso_option_not_leaf(struct XorrisO *xorriso, char *pattern, int flag);
|
|
||||||
|
|
||||||
/* Option -not_paths */
|
|
||||||
int Xorriso_option_not_paths(struct XorrisO *xorriso, int argc, char **argv,
|
|
||||||
int *idx, int flag);
|
|
||||||
|
|
||||||
/* Option -options_from_file*/
|
/* Option -options_from_file*/
|
||||||
/* @return <=0 error , 1 = success , 3 = request to end program run */
|
/* @return <=0 error , 1 = success , 3 = request to end program run */
|
||||||
int Xorriso_option_options_from_file(struct XorrisO *xorriso, char *adr,
|
int Xorriso_option_options_from_file(struct XorrisO *xorriso, char *adr,
|
||||||
int flag);
|
int flag);
|
||||||
|
|
||||||
/* Option -osirrox "on"|"off" */
|
|
||||||
int Xorriso_option_osirrox(struct XorrisO *xorriso, char *mode, int flag);
|
|
||||||
|
|
||||||
/* Option -overwrite "on"|"nondir"|"off" */
|
/* Option -overwrite "on"|"nondir"|"off" */
|
||||||
int Xorriso_option_overwrite(struct XorrisO *xorriso, char *mode, int flag);
|
int Xorriso_option_overwrite(struct XorrisO *xorriso, char *mode, int flag);
|
||||||
|
|
||||||
@ -415,10 +350,6 @@ int Xorriso_option_padding(struct XorrisO *xorriso, char *size, int flag);
|
|||||||
/* Option -page */
|
/* Option -page */
|
||||||
int Xorriso_option_page(struct XorrisO *xorriso, int len, int width, int flag);
|
int Xorriso_option_page(struct XorrisO *xorriso, int len, int width, int flag);
|
||||||
|
|
||||||
/* Option -paste_in */
|
|
||||||
int Xorriso_option_paste_in(struct XorrisO *xorriso, char *iso_rr_path,
|
|
||||||
char *disk_path, char *start, char *count, int flag);
|
|
||||||
|
|
||||||
/* Option -path-list */
|
/* Option -path-list */
|
||||||
int Xorriso_option_path_list(struct XorrisO *xorriso, char *adr, int flag);
|
int Xorriso_option_path_list(struct XorrisO *xorriso, char *adr, int flag);
|
||||||
|
|
||||||
@ -431,7 +362,7 @@ int Xorriso_option_pkt_output(struct XorrisO *xorriso, char *mode, int flag);
|
|||||||
/* Option -print */
|
/* Option -print */
|
||||||
int Xorriso_option_print(struct XorrisO *xorriso, char *text, int flag);
|
int Xorriso_option_print(struct XorrisO *xorriso, char *text, int flag);
|
||||||
|
|
||||||
/* Option -print_size
|
/* Option -print-size
|
||||||
@param flag bit0= report in mkisofs compatible form on real stdout
|
@param flag bit0= report in mkisofs compatible form on real stdout
|
||||||
*/
|
*/
|
||||||
int Xorriso_option_print_size(struct XorrisO *xorriso, int flag);
|
int Xorriso_option_print_size(struct XorrisO *xorriso, int flag);
|
||||||
@ -451,9 +382,6 @@ int Xorriso_option_pwdi(struct XorrisO *xorriso, int flag);
|
|||||||
/* Option -pwdx */
|
/* Option -pwdx */
|
||||||
int Xorriso_option_pwdx(struct XorrisO *xorriso, int flag);
|
int Xorriso_option_pwdx(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
/* Option -reassure "on"|"tree"|"off" */
|
|
||||||
int Xorriso_option_reassure(struct XorrisO *xorriso, char *mode, int flag);
|
|
||||||
|
|
||||||
/* Option -report_about */
|
/* Option -report_about */
|
||||||
int Xorriso_option_report_about(struct XorrisO *xorriso, char *severity,
|
int Xorriso_option_report_about(struct XorrisO *xorriso, char *severity,
|
||||||
int flag);
|
int flag);
|
||||||
@ -462,8 +390,8 @@ int Xorriso_option_report_about(struct XorrisO *xorriso, char *severity,
|
|||||||
int Xorriso_option_return_with(struct XorrisO *xorriso, char *severity,
|
int Xorriso_option_return_with(struct XorrisO *xorriso, char *severity,
|
||||||
int exit_value, int flag);
|
int exit_value, int flag);
|
||||||
|
|
||||||
/* Option -revoke_exclusions */
|
/* Option -reassure "on"|"tree"|"off" */
|
||||||
int Xorriso_option_revoke_exclusions(struct XorrisO *xorriso, int flag);
|
int Xorriso_option_reassure(struct XorrisO *xorriso, char *mode, int flag);
|
||||||
|
|
||||||
/* Options -rm alias -rmi , -rm_r alias -rm_ri , -rmdir alias -rmdiri */
|
/* Options -rm alias -rmi , -rm_r alias -rm_ri , -rmdir alias -rmdiri */
|
||||||
/* @param flag bit0=recursive , bit2= remove empty directory: rmdir */
|
/* @param flag bit0=recursive , bit2= remove empty directory: rmdir */
|
||||||
@ -471,15 +399,10 @@ int Xorriso_option_rmi(struct XorrisO *xorriso, int argc, char **argv,
|
|||||||
int *idx, int flag);
|
int *idx, int flag);
|
||||||
|
|
||||||
/* Option -rollback */
|
/* Option -rollback */
|
||||||
/* @param flag bit0= do not -reassure
|
/* @return <=0 error , 1 success, 2 revoked by -reassure
|
||||||
@return <=0 error , 1 success, 2 revoked by -reassure
|
|
||||||
*/
|
*/
|
||||||
int Xorriso_option_rollback(struct XorrisO *xorriso, int flag);
|
int Xorriso_option_rollback(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
/* Option -rom_toc_scan */
|
|
||||||
int Xorriso_option_rom_toc_scan(struct XorrisO *xorriso, char *mode,
|
|
||||||
int flag);
|
|
||||||
|
|
||||||
/* Option -session_log */
|
/* Option -session_log */
|
||||||
int Xorriso_option_session_log(struct XorrisO *xorriso, char *path, int flag);
|
int Xorriso_option_session_log(struct XorrisO *xorriso, char *path, int flag);
|
||||||
|
|
||||||
@ -496,10 +419,6 @@ int Xorriso_option_status(struct XorrisO *xorriso, char *mode, int flag);
|
|||||||
int Xorriso_option_status_history_max(struct XorrisO *xorriso, int num1,
|
int Xorriso_option_status_history_max(struct XorrisO *xorriso, int num1,
|
||||||
int flag);
|
int flag);
|
||||||
|
|
||||||
/* Option -stream_recording */
|
|
||||||
int Xorriso_option_stream_recording(struct XorrisO *xorriso, char *mode,
|
|
||||||
int flag);
|
|
||||||
|
|
||||||
/* Option -tell_media_space */
|
/* Option -tell_media_space */
|
||||||
int Xorriso_option_tell_media_space(struct XorrisO *xorriso, int flag);
|
int Xorriso_option_tell_media_space(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<HEAD>
|
<HEAD>
|
||||||
<META NAME="description" CONTENT="xorriso, creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions">
|
<META NAME="description" CONTENT="xorriso, creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions">
|
||||||
<META NAME="keywords" CONTENT="xorriso, libburn, libburnia, burn, CD, DVD, ISO, ISO 9660, RockRidge, Rock Ridge, linux, recording, burning, CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW, DVD+R, DVD+R DL, BD-RE, scdbackup">
|
<META NAME="keywords" CONTENT="xorriso, libburn, libburnia, burn, CD, DVD, ISO, ISO 9660, RockRidge, Rock Ridge, linux, recording, burning, CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW, DVD+R, DVD+R/DL, scdbackup">
|
||||||
<META NAME="robots" CONTENT="follow">
|
<META NAME="robots" CONTENT="follow">
|
||||||
<TITLE>xorriso homepage english</TITLE>
|
<TITLE>xorriso homepage english</TITLE>
|
||||||
</HEAD>
|
</HEAD>
|
||||||
@ -24,8 +24,6 @@ into Rock Ridge enhanced ISO 9660 filesystems and allows
|
|||||||
session-wise manipulation of such filesystems. It can load the management
|
session-wise manipulation of such filesystems. It can load the management
|
||||||
information of existing ISO images and it writes the session results to
|
information of existing ISO images and it writes the session results to
|
||||||
optical media or to filesystem objects.
|
optical media or to filesystem objects.
|
||||||
<BR>
|
|
||||||
Vice versa xorriso is able to restore file objects from ISO 9660 filesystems.
|
|
||||||
</P>
|
</P>
|
||||||
<P>
|
<P>
|
||||||
|
|
||||||
@ -35,10 +33,10 @@ Vice versa xorriso is able to restore file objects from ISO 9660 filesystems.
|
|||||||
|
|
||||||
<P>
|
<P>
|
||||||
<H2>Hardware requirements:</H2>
|
<H2>Hardware requirements:</H2>
|
||||||
A CD/DVD/BD recorder suitable for
|
A CD/DVD recorder suitable for
|
||||||
<A HREF="http://libburnia-project.org">http://libburnia-project.org</A> <BR>
|
<A HREF="http://libburnia-project.org">http://libburnia-project.org</A> <BR>
|
||||||
(SCSI , ATA , USB , or SATA writers compliant to standard MMC-3 for CD
|
(SCSI , ATA , USB , or SATA writers compliant to standard MMC-3 for CD
|
||||||
and to MMC-5 for DVD or BD).
|
and to MMC-5 for DVD).
|
||||||
<BR>
|
<BR>
|
||||||
</P>
|
</P>
|
||||||
|
|
||||||
@ -60,15 +58,14 @@ and to MMC-5 for DVD or BD).
|
|||||||
GPL software included:<BR>
|
GPL software included:<BR>
|
||||||
</H2>
|
</H2>
|
||||||
<DL>
|
<DL>
|
||||||
<DT>libburn-0.4.9</DT>
|
<DT>libburn-0.4.5</DT>
|
||||||
<DD>reads and writes data from and to CD, DVD, BD-RE.</DD>
|
<DD>reads and writes data from and to CD and DVD.</DD>
|
||||||
<DD>(founded by Derek Foreman and Ben Jansens,
|
<DD>(founded by Derek Foreman and Ben Jansens,
|
||||||
furthered since August 2006 by
|
furthered since August 2006 by team of libburnia-project.org)</DD>
|
||||||
Thomas Schmitt from team of libburnia-project.org)</DD>
|
<DT>libisofs-0.6.4</DT>
|
||||||
<DT>libisofs-0.6.6</DT>
|
<DD>operates ISO 9660 images.</DD>
|
||||||
<DD>operates on ISO 9660 filesystem images.</DD>
|
|
||||||
<DD>(By Vreixo Formoso and Mario Danic from team of libburnia-project.org)</DD>
|
<DD>(By Vreixo Formoso and Mario Danic from team of libburnia-project.org)</DD>
|
||||||
<DT>libisoburn-0.2.0</DT>
|
<DT>libisoburn-0.1.4</DT>
|
||||||
<DD>coordinates libburn and libisofs, emulates multi-session where needed.</DD>
|
<DD>coordinates libburn and libisofs, emulates multi-session where needed.</DD>
|
||||||
<DD>(By Vreixo Formoso and Thomas Schmitt
|
<DD>(By Vreixo Formoso and Thomas Schmitt
|
||||||
from team of libburnia-project.org)</DD>
|
from team of libburnia-project.org)</DD>
|
||||||
@ -89,7 +86,7 @@ For ports to other usable systems <A HREF="#contact">contact us</A>.
|
|||||||
<H2>Special features:</H2>
|
<H2>Special features:</H2>
|
||||||
<UL>
|
<UL>
|
||||||
<LI>
|
<LI>
|
||||||
ISO 9660 formatter and burner for CD, DVD, BD-RE are fixely integrated.
|
ISO 9660 formatter and burner for CD or DVD are fixely integrated.
|
||||||
</LI>
|
</LI>
|
||||||
<LI>
|
<LI>
|
||||||
Operates on an existing ISO image or creates a new one.
|
Operates on an existing ISO image or creates a new one.
|
||||||
@ -115,14 +112,10 @@ Can write result as add-on session to appendable multi-session media,
|
|||||||
to overwriteable media, to regular files, and to block devices.
|
to overwriteable media, to regular files, and to block devices.
|
||||||
</LI>
|
</LI>
|
||||||
<LI>
|
<LI>
|
||||||
Can restore single files and whole trees from ISO image to disk filesystem.
|
Scans for optical drives, blanks re-useable optical media.
|
||||||
</LI>
|
</LI>
|
||||||
<LI>
|
<LI>
|
||||||
Scans for optical drives, blanks re-useable optical media, formats media.
|
Suitable for: CD-R, CD-RW, DVD-R, DVD-RW, DVD+R, DVD+R/DL, DVD+RW, DVD-RAM.
|
||||||
</LI>
|
|
||||||
<LI>
|
|
||||||
Suitable for:
|
|
||||||
CD-R, CD-RW, DVD-R, DVD-RW, DVD+R, DVD+R DL, DVD+RW, DVD-RAM, BD-RE.
|
|
||||||
</LI>
|
</LI>
|
||||||
<LI>
|
<LI>
|
||||||
Reads its instructions from command line arguments, dialog, and batch files.
|
Reads its instructions from command line arguments, dialog, and batch files.
|
||||||
@ -158,9 +151,8 @@ may accept pathspecs of form target=source as known from program mkisofs.</DT>
|
|||||||
<DT>Get info about a particular drive and loaded media:</DT>
|
<DT>Get info about a particular drive and loaded media:</DT>
|
||||||
<DD>$<KBD> xorriso -indev /dev/sr0 -du / -- -toc 2>&1 | less</KBD></DD>
|
<DD>$<KBD> xorriso -indev /dev/sr0 -du / -- -toc 2>&1 | less</KBD></DD>
|
||||||
|
|
||||||
<DT>Make re-usable media writable again, delete any ISO 9660 image,
|
<DT>Make re-usable media writable again, delete any ISO 9660 image:</DT>
|
||||||
eventually prepare yet unused BD-RE:</DT>
|
<DD>$<KBD> xorriso -outdev /dev/sr0 -blank fast -eject all</KBD></DD>
|
||||||
<DD>$<KBD> xorriso -outdev /dev/sr0 -blank as_needed -eject all</KBD></DD>
|
|
||||||
|
|
||||||
<DT>
|
<DT>
|
||||||
<HR>
|
<HR>
|
||||||
@ -182,17 +174,17 @@ adjust permissions to make it publicly read-only,
|
|||||||
write it to media and immediately eject media without
|
write it to media and immediately eject media without
|
||||||
previously reloading the written image.
|
previously reloading the written image.
|
||||||
</DT>
|
</DT>
|
||||||
<DD>$<KBD> cd /home/me</KBD></DD>
|
<DD>$<KBD> xorriso -outdev /dev/sr0 -blank fast -pathspecs on \</KBD></DD>
|
||||||
<DD>$<KBD> xorriso -outdev /dev/sr0 -blank as_needed \</KBD></DD>
|
<DD><KBD> -add /sounds=/home/me/sounds \</KBD></DD>
|
||||||
<DD><KBD> -map /home/me/sounds /sounds \</KBD></DD>
|
<DD><KBD>
|
||||||
<DD><KBD> -map /home/me/pictures /pictures \</KBD></DD>
|
/pictures=/home/me/pictures -- \</KBD></DD>
|
||||||
<DD><KBD> -rm_r /sounds/indecent '/pictures/*private*' -- \</KBD></DD>
|
<DD><KBD> -rm_r /sounds/indecent '/pictures/*private*' -- \</KBD></DD>
|
||||||
<DD><KBD> -cd / \</KBD></DD>
|
<DD><KBD> -add /pictures/private/horses=/home/me/pictures/private/horses -- \</KBD></DD>
|
||||||
<DD><KBD> -add pictures/private/horses* -- \</KBD></DD>
|
|
||||||
<DD><KBD> -chmod_r a+r,a-w / -- \</KBD></DD>
|
<DD><KBD> -chmod_r a+r,a-w / -- \</KBD></DD>
|
||||||
<DD><KBD> -find / -type d -exec chmod a+x -- \</KBD></DD>
|
<DD><KBD> -find / -type d -exec chmod a+x -- \</KBD></DD>
|
||||||
<DD><KBD> -volid SOUNDS_PICS_2008_01_16 \</KBD></DD>
|
<DD><KBD> -volid SOUNDS_PICS_2008_01_16 \</KBD></DD>
|
||||||
<DD><KBD> -commit_eject all</KBD></DD>
|
<DD><KBD> -commit_eject all</KBD></DD>
|
||||||
|
|
||||||
<DT>
|
<DT>
|
||||||
<HR>
|
<HR>
|
||||||
</DT>
|
</DT>
|
||||||
@ -203,14 +195,15 @@ rename /pictures/private/horses,
|
|||||||
add new directory trees /sounds and /movies,
|
add new directory trees /sounds and /movies,
|
||||||
disallow any access for group and others.
|
disallow any access for group and others.
|
||||||
Finally write as additional session to media and eject:</DT>
|
Finally write as additional session to media and eject:</DT>
|
||||||
<DD>$<KBD> xorriso -dev /dev/sr0 \</KBD></DD>
|
<DD>$<KBD> xorriso -dev /dev/sr0 -pathspecs on \</KBD></DD>
|
||||||
<DD><KBD> -rm_r /sounds -- \</KBD></DD>
|
<DD><KBD> -rm_r /sounds -- \</KBD></DD>
|
||||||
<DD><KBD> -mv /pictures/private/horses /horse_show -- \</KBD></DD>
|
<DD><KBD> -mv /pictures/private/horses /horse_show -- \</KBD></DD>
|
||||||
<DD><KBD> -map /home/me/prepared_for_dvd/sounds_dummy /sounds \</KBD></DD>
|
<DD><KBD> -add /sounds=/home/me/prepared_for_dvd/sounds_dummy \</KBD></DD>
|
||||||
<DD><KBD> -map /home/me/prepared_for_dvd/movies /movies \</KBD></DD>
|
<DD><KBD> /movies=/home/me/prepared_for_dvd/movies -- \</KBD></DD>
|
||||||
<DD><KBD> -chmod_r go-rwx / -- \</KBD></DD>
|
<DD><KBD> -chmod_r go-rwx / -- \</KBD></DD>
|
||||||
<DD><KBD> -volid SOUNDS_PICS_2008_01_17 \</KBD></DD>
|
<DD><KBD> -volid SOUNDS_PICS_2008_01_17 \</KBD></DD>
|
||||||
<DD><KBD> -commit_eject all</KBD></DD>
|
<DD><KBD> -commit_eject all</KBD></DD>
|
||||||
|
|
||||||
<DT>
|
<DT>
|
||||||
<HR>
|
<HR>
|
||||||
</DT>
|
</DT>
|
||||||
@ -237,11 +230,9 @@ run. It will write eventually pending changes to media, if that has not
|
|||||||
already been done by a previous -commit.</DT>
|
already been done by a previous -commit.</DT>
|
||||||
<DD>$<KBD> xorriso -dialog on</KBD></DD>
|
<DD>$<KBD> xorriso -dialog on</KBD></DD>
|
||||||
<DD><KBD>enter option and arguments :</KBD></DD>
|
<DD><KBD>enter option and arguments :</KBD></DD>
|
||||||
<DD><KBD><B>-dev /dev/sr0</B></KBD></DD>
|
<DD><KBD><B>-dev /dev/sr0 -pathspecs on</B></KBD></DD>
|
||||||
<DD><KBD>enter option and arguments :</KBD></DD>
|
<DD><KBD>enter option and arguments :</KBD></DD>
|
||||||
<DD><KBD><B>-map /home/me/prepared_for_dvd/sounds_dummy /sounds</B></KBD></DD>
|
<DD><KBD><B>-add /sounds=/home/me/prepared_for_dvd/sounds_dummy /movies=/home/me/prepared_for_dvd/movies</B></KBD></DD>
|
||||||
<DD><KBD>enter option and arguments :</KBD></DD>
|
|
||||||
<DD><KBD><B>-map /home/me/prepared_for_dvd/movies /movies</B></KBD></DD>
|
|
||||||
<DD>Available navigation commands: -cd, -ls, -du, -find</DD>
|
<DD>Available navigation commands: -cd, -ls, -du, -find</DD>
|
||||||
<DD><KBD>enter option and arguments :</KBD></DD>
|
<DD><KBD>enter option and arguments :</KBD></DD>
|
||||||
<DD><KBD><B>-commit</B></KBD></DD>
|
<DD><KBD><B>-commit</B></KBD></DD>
|
||||||
@ -253,23 +244,18 @@ already been done by a previous -commit.</DT>
|
|||||||
<HR>
|
<HR>
|
||||||
</DT>
|
</DT>
|
||||||
|
|
||||||
<DT>The following command can be run on blank media to create a
|
<DT>The following command can be run on blank media to create a complete
|
||||||
copy of the mentioned disk directory trees, and it can be run on appendable
|
copy of the mentioned disk directory trees, and it can be run on appendable
|
||||||
media to perform a minimal set of change operations which update the
|
media to perform a minimal set of change operations which update the
|
||||||
old ISO copies to match the new disk trees.
|
old ISO copies to match the new disk trees. On CD-R[W], DVD-R[W] and DVD+R
|
||||||
Older states can be retrieved by help of mount option "session=" from CD-R[W],
|
older states can be retrieved by help of mount option "session=".
|
||||||
by help of "sbsector=" from other media.
|
|
||||||
So this constitutes true incremental backup.
|
So this constitutes true incremental backup.
|
||||||
<BR>
|
On overwriteable media only the newest state is accessible.
|
||||||
The copies will be complete, except all file names ending
|
|
||||||
with ".o" or ".swp" which are excluded by options -not_leaf.
|
|
||||||
</DT>
|
</DT>
|
||||||
<DD>$<KBD> xorriso -dev /dev/sr0 \</KBD></DD>
|
<DD>$<KBD> xorriso -dev /dev/sr0 \</KBD></DD>
|
||||||
<DD><KBD> -volid PROJECTS_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" \</KBD></DD>
|
|
||||||
<DD><KBD> -not_leaf '*.o' -not_leaf '*.swp' \</KBD></DD>
|
|
||||||
<DD><KBD> -update_r /home/thomas/open_source_projects /open_source_projects \</KBD></DD>
|
<DD><KBD> -update_r /home/thomas/open_source_projects /open_source_projects \</KBD></DD>
|
||||||
<DD><KBD> -update_r /home/thomas/personal_mail /personal_mail \</KBD></DD>
|
<DD><KBD> -update_r /home/thomas/personal_mail /personal_mail \</KBD></DD>
|
||||||
<DD><KBD> -commit -toc -eject all</KBD></DD>
|
<DD><KBD> -commit_eject all \</KBD></DD>
|
||||||
|
|
||||||
<DT>
|
<DT>
|
||||||
<HR>
|
<HR>
|
||||||
@ -284,18 +270,6 @@ output will be redirected to stderr in this case.</DT>
|
|||||||
<HR>
|
<HR>
|
||||||
</DT>
|
</DT>
|
||||||
|
|
||||||
<DT>Enable reverse operation of xorriso and copy some files and a tree to disk:
|
|
||||||
<DD>$<KBD> xorriso -indev /dev/sr0 \</KBD></DD>
|
|
||||||
<DD><KBD> -osirrox on \</KBD></DD>
|
|
||||||
<DD><KBD> -cpx /pictures/private/horses*/*buttercup* \</KBD></DD>
|
|
||||||
<DD><KBD> /home/her/buttercup_dir -- \</KBD>
|
|
||||||
<DD><KBD> -extract /sounds /home/her/sounds_from_me</KBD></DD>
|
|
||||||
</DD>
|
|
||||||
|
|
||||||
<DT>
|
|
||||||
<HR>
|
|
||||||
</DT>
|
|
||||||
|
|
||||||
|
|
||||||
<DT>Get overview of the options:</DT>
|
<DT>Get overview of the options:</DT>
|
||||||
<DD>$<KBD> <A HREF="xorriso_help">xorriso -help</A></KBD></DD>
|
<DD>$<KBD> <A HREF="xorriso_help">xorriso -help</A></KBD></DD>
|
||||||
@ -305,8 +279,7 @@ output will be redirected to stderr in this case.</DT>
|
|||||||
</DL>
|
</DL>
|
||||||
|
|
||||||
|
|
||||||
Testers wanted who are willing to risk some double layer DVD media or
|
Testers wanted who are willing to risk some double layer DVD media.
|
||||||
are interested in using BD-R media.
|
|
||||||
|
|
||||||
</P>
|
</P>
|
||||||
|
|
||||||
@ -315,8 +288,8 @@ are interested in using BD-R media.
|
|||||||
<P>
|
<P>
|
||||||
<DL>
|
<DL>
|
||||||
<DT><H3>Download as source code (see README):</H3></DT>
|
<DT><H3>Download as source code (see README):</H3></DT>
|
||||||
<DD><A HREF="xorriso-0.2.0.pl00.tar.gz">xorriso-0.2.0.pl00.tar.gz</A>
|
<DD><A HREF="xorriso-0.1.4.pl00.tar.gz">xorriso-0.1.4.pl00.tar.gz</A>
|
||||||
(1000 KB).
|
(955 KB).
|
||||||
</DD>
|
</DD>
|
||||||
</DL>
|
</DL>
|
||||||
</DD>
|
</DD>
|
||||||
@ -340,23 +313,20 @@ an <A HREF="http://www.opensource.org/">Open Source</A> approved license</DD>
|
|||||||
</P>
|
</P>
|
||||||
|
|
||||||
<HR>
|
<HR>
|
||||||
|
|
||||||
<P>
|
<P>
|
||||||
Bug fixes towards xorriso-0.1.8.pl00:
|
Enhancements towards previous stable version xorriso-0.1.2.pl00:
|
||||||
<UL>
|
<UL>
|
||||||
<LI>
|
<LI>Coordination of -cut_out, -compare and -update</LI>
|
||||||
-chmod unintentionally performed o-x as first operation
|
<LI>New option -split_size, automated splitting of oversized files</LI>
|
||||||
</LI>
|
<LI>Improved performance with reading directory trees</LI>
|
||||||
|
<LI>New option -session_log</LI>
|
||||||
|
<LI>Dynamically linkable with release version 0.6.4 of libisofs</LI>
|
||||||
</UL>
|
</UL>
|
||||||
</P>
|
Bug fixes towards xorriso-0.1.2.pl00:
|
||||||
<P>
|
|
||||||
Enhancements towards previous stable version xorriso-0.1.8.pl00:
|
|
||||||
<UL>
|
<UL>
|
||||||
<LI>New option -extract restores with arguments of -map or -update_r</LI>
|
<LI>-as mkisofs -no-pad was misspelled -nopad</LI>
|
||||||
<LI>
|
<LI>Implicite directory attribute copying with -cut_out was wrong</LI>
|
||||||
New options -cpax, -cp_rx, -cp_rax to restore files and trees from ISO to disk
|
|
||||||
</LI>
|
|
||||||
<LI>New option -paste_in to copy ISO files into parts of disk files</LI>
|
|
||||||
<LI>New options -map_l, -compare_l, -update_l, -extract_l</LI>
|
|
||||||
</UL>
|
</UL>
|
||||||
</P>
|
</P>
|
||||||
|
|
||||||
@ -364,26 +334,23 @@ New options -cpax, -cp_rx, -cp_rax to restore files and trees from ISO to disk
|
|||||||
|
|
||||||
<P>
|
<P>
|
||||||
<DL>
|
<DL>
|
||||||
<DT><H3>Development snapshot, version 0.2.1 :</H3></DT>
|
<DT><H3>Development snapshot, version 0.1.5 :</H3></DT>
|
||||||
<DD>Bug fixes towards xorriso-0.2.0.pl00:
|
<DD>Bug fixes towards xorriso-0.1.4.pl00:
|
||||||
<UL>
|
<UL>
|
||||||
</LI>
|
|
||||||
<LI>- none yet -</LI>
|
<LI>- none yet -</LI>
|
||||||
<!--
|
<!-- <LI>- none yet -</LI> -->
|
||||||
-->
|
|
||||||
</UL>
|
</UL>
|
||||||
</DD>
|
</DD>
|
||||||
<DD>Enhancements towards stable version 0.2.0.pl00:
|
<DD>Enhancements towards stable version 0.1.4.pl00:
|
||||||
<UL>
|
<UL>
|
||||||
<LI>- none yet -</LI>
|
<LI>- none yet -</LI>
|
||||||
<!--
|
<!-- <LI>- none yet -</LI> -->
|
||||||
-->
|
|
||||||
</UL>
|
</UL>
|
||||||
</DD>
|
</DD>
|
||||||
<DD> </DD>
|
<DD> </DD>
|
||||||
<DD><A HREF="README_xorriso_devel">README 0.2.1</A>
|
<DD><A HREF="README_xorriso_devel">README 0.1.5</A>
|
||||||
<DD><A HREF="xorriso_help_devel">xorriso_0.2.1 -help</A></DD>
|
<DD><A HREF="xorriso_help_devel">xorriso_0.1.5 -help</A></DD>
|
||||||
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 0.2.1)</A></DD>
|
<DD><A HREF="man_1_xorriso_devel.html">man xorriso (as of 0.1.5)</A></DD>
|
||||||
<DD> </DD>
|
<DD> </DD>
|
||||||
<DT>If you want to distribute development versions of xorriso, then use
|
<DT>If you want to distribute development versions of xorriso, then use
|
||||||
this tarball which produces static linking between xorriso and the
|
this tarball which produces static linking between xorriso and the
|
||||||
@ -393,8 +360,8 @@ libburnia libraries.
|
|||||||
installation see README)
|
installation see README)
|
||||||
</DD>
|
</DD>
|
||||||
<DD>
|
<DD>
|
||||||
<A HREF="xorriso-0.2.1.tar.gz">xorriso-0.2.1.tar.gz</A>
|
<A HREF="xorriso-0.1.5.tar.gz">xorriso-0.1.5.tar.gz</A>
|
||||||
(1000 KB).
|
(960 KB).
|
||||||
</DD>
|
</DD>
|
||||||
<DT>A dynamically linked development version of xorriso can be obtained
|
<DT>A dynamically linked development version of xorriso can be obtained
|
||||||
from repositories of
|
from repositories of
|
||||||
@ -416,12 +383,13 @@ versions for dynamic linking. Only release versions are safe for that.
|
|||||||
</KBD></DD>
|
</KBD></DD>
|
||||||
<DD>Install: <KBD><B>cd libisoburn ; ./bootstrap ; ./configure --prefix /usr ; make ; make install</B>
|
<DD>Install: <KBD><B>cd libisoburn ; ./bootstrap ; ./configure --prefix /usr ; make ; make install</B>
|
||||||
</KBD></DD>
|
</KBD></DD>
|
||||||
<DT>Build of SVN versions needs <A HREF="http://sources.redhat.com/autobook/">
|
<DD>Build of SVN versions needs <A HREF="http://sources.redhat.com/autobook/">
|
||||||
autotools</A> of at least version 1.7 installed.
|
autotools</A> of at least version 1.7 installed.
|
||||||
But after the run of <KBD>./bootstrap</KBD>, only
|
But after the run of <KBD>./bootstrap</KBD>, only
|
||||||
vanilla tools like make and gcc are needed.
|
vanilla tools like make and gcc are needed.</DD>
|
||||||
</DT>
|
</DD>
|
||||||
<DD> </DD>
|
<DD> </DD>
|
||||||
|
|
||||||
</DL>
|
</DL>
|
||||||
</P>
|
</P>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
#ifndef Xorriso_private_includeD
|
#ifndef Xorriso_private_includeD
|
||||||
#define Xorriso_private_includeD yes
|
#define Xorriso_private_includeD yes
|
||||||
|
|
||||||
#define Xorriso_program_versioN "0.2.0"
|
#define Xorriso_program_versioN "0.1.4"
|
||||||
|
|
||||||
/** The source code release timestamp */
|
/** The source code release timestamp */
|
||||||
#include "xorriso_timestamp.h"
|
#include "xorriso_timestamp.h"
|
||||||
@ -45,10 +45,7 @@
|
|||||||
/* <<< ??? */
|
/* <<< ??? */
|
||||||
typedef int (*Cleanup_app_handler_T)();
|
typedef int (*Cleanup_app_handler_T)();
|
||||||
|
|
||||||
struct LinkiteM; /* Trace of hops during symbolic link resolution */
|
struct LinkiteM;
|
||||||
struct ExclusionS; /* List of -not_* conditions */
|
|
||||||
struct PermiteM; /* Stack of temporarily altered access permissions */
|
|
||||||
|
|
||||||
|
|
||||||
/* maximum number of history lines to be reported with -status:long_history */
|
/* maximum number of history lines to be reported with -status:long_history */
|
||||||
#define Xorriso_status_history_maX 100
|
#define Xorriso_status_history_maX 100
|
||||||
@ -113,25 +110,6 @@ struct XorrisO { /* the global context of xorriso */
|
|||||||
|
|
||||||
/* >>> put libburn/isoburn aspects here */
|
/* >>> put libburn/isoburn aspects here */
|
||||||
|
|
||||||
int toc_emulation_flag; /* bit0= bit3 for isoburn_drive_aquire()
|
|
||||||
scan -ROM profiles for ISO sessions
|
|
||||||
*/
|
|
||||||
|
|
||||||
int image_start_mode; /* From what address to load the ISO image
|
|
||||||
bit0-15= addressing mode
|
|
||||||
0= automatic lba as deduced from media
|
|
||||||
1= value is session number
|
|
||||||
2= value is track number
|
|
||||||
3= value is lba
|
|
||||||
bit30= interference with normal msc1 processing
|
|
||||||
is enabled. Without this bit,
|
|
||||||
isoburn_set_msc1() will not be called.
|
|
||||||
bit31= image loading has happened,
|
|
||||||
setting is kept for rollback only.
|
|
||||||
Always apply as 0=auto.
|
|
||||||
*/
|
|
||||||
char image_start_value[81]; /* value according image_start_mode */
|
|
||||||
|
|
||||||
char indev[SfileadrL];
|
char indev[SfileadrL];
|
||||||
void *in_drive_handle; /* interpreted only by xorrisoburn.c */
|
void *in_drive_handle; /* interpreted only by xorrisoburn.c */
|
||||||
void *in_volset_handle; /* interpreted only by xorrisoburn.c */
|
void *in_volset_handle; /* interpreted only by xorrisoburn.c */
|
||||||
@ -151,7 +129,6 @@ struct XorrisO { /* the global context of xorriso */
|
|||||||
int speed; /* in libburn units : 1000 bytes/second , 0 = Max, -1 = Min */
|
int speed; /* in libburn units : 1000 bytes/second , 0 = Max, -1 = Min */
|
||||||
int fs; /* fifo size in 2048 byte chunks : at most 1 GB */
|
int fs; /* fifo size in 2048 byte chunks : at most 1 GB */
|
||||||
int padding; /* number of bytes to add after ISO 9660 image */
|
int padding; /* number of bytes to add after ISO 9660 image */
|
||||||
int do_stream_recording;
|
|
||||||
|
|
||||||
int keep_boot_image;
|
int keep_boot_image;
|
||||||
int patch_isolinux_image;
|
int patch_isolinux_image;
|
||||||
@ -160,14 +137,6 @@ struct XorrisO { /* the global context of xorriso */
|
|||||||
/* XORRISO options */
|
/* XORRISO options */
|
||||||
int allow_graft_points;
|
int allow_graft_points;
|
||||||
|
|
||||||
int allow_restore; /* 0= disallowed, 1=allowed, 2=device files allowed */
|
|
||||||
int do_concat_split; /* 1= restore complete split file directories as
|
|
||||||
regular files
|
|
||||||
*/
|
|
||||||
int do_auto_chmod; /* 1= eventually temporarily open access permissions
|
|
||||||
of self-owned directories during restore
|
|
||||||
*/
|
|
||||||
|
|
||||||
int dialog;
|
int dialog;
|
||||||
|
|
||||||
|
|
||||||
@ -195,14 +164,6 @@ struct XorrisO { /* the global context of xorriso */
|
|||||||
|
|
||||||
int temp_mem_limit;
|
int temp_mem_limit;
|
||||||
|
|
||||||
struct ExclusionS *disk_exclusions;
|
|
||||||
int disk_excl_mode; /* bit0= on (else off)
|
|
||||||
bit1= parameter too (else rekursion only)
|
|
||||||
bit2= whole subtree banned (else only exact path)
|
|
||||||
bit3= when comparing ignore excluded files rather
|
|
||||||
than to treat them as truely missing on disk
|
|
||||||
*/
|
|
||||||
|
|
||||||
int use_stdin; /* use raw stdin even if readline support is compiled */
|
int use_stdin; /* use raw stdin even if readline support is compiled */
|
||||||
int result_page_length;
|
int result_page_length;
|
||||||
int result_page_width;
|
int result_page_width;
|
||||||
@ -223,8 +184,6 @@ struct XorrisO { /* the global context of xorriso */
|
|||||||
int errfile_mode; /* bit0= marked */
|
int errfile_mode; /* bit0= marked */
|
||||||
FILE *errfile_fp;
|
FILE *errfile_fp;
|
||||||
|
|
||||||
int img_read_error_mode; /* 0=best_effort , 1=failure , 2=fatal */
|
|
||||||
|
|
||||||
char return_with_text[20];
|
char return_with_text[20];
|
||||||
int return_with_severity;
|
int return_with_severity;
|
||||||
int return_with_value;
|
int return_with_value;
|
||||||
@ -262,14 +221,11 @@ struct XorrisO { /* the global context of xorriso */
|
|||||||
/* optional global counters for brain reduced callback functions */
|
/* optional global counters for brain reduced callback functions */
|
||||||
off_t pacifier_count;
|
off_t pacifier_count;
|
||||||
off_t pacifier_total;
|
off_t pacifier_total;
|
||||||
off_t pacifier_byte_count; /* auxiliary counter for data bytes */
|
|
||||||
|
|
||||||
void *pacifier_fifo;
|
void *pacifier_fifo;
|
||||||
|
|
||||||
int find_compare_result; /* 1=everything matches , 0=mismatch , -1=error */
|
int find_compare_result; /* 1=everything matches , 0=mismatch , -1=error */
|
||||||
|
|
||||||
struct PermiteM *perm_stack; /* Temporarily altered dir access permissions */
|
|
||||||
|
|
||||||
/* result (stdout, R: ) */
|
/* result (stdout, R: ) */
|
||||||
char result_line[5*SfileadrL];
|
char result_line[5*SfileadrL];
|
||||||
int result_line_counter;
|
int result_line_counter;
|
||||||
@ -397,44 +353,6 @@ int Xorriso_update_interpreter(struct XorrisO *xorriso, void *boss_iter,
|
|||||||
int compare_result, char *disk_path,
|
int compare_result, char *disk_path,
|
||||||
char *iso_rr_path, int flag);
|
char *iso_rr_path, int flag);
|
||||||
|
|
||||||
int Xorriso_path_is_excluded(struct XorrisO *xorriso, char *path, int flag);
|
|
||||||
|
|
||||||
/* @param flag bit0= long format
|
|
||||||
bit1= do not print count of nodes
|
|
||||||
bit2= du format
|
|
||||||
bit3= print directories as themselves (ls -d)
|
|
||||||
*/
|
|
||||||
int Xorriso_lsx_filev(struct XorrisO *xorriso, char *wd,
|
|
||||||
int filec, char **filev, off_t boss_mem, int flag);
|
|
||||||
|
|
||||||
/*
|
|
||||||
@param flag >>> bit0= remove whole sub tree: rm -r
|
|
||||||
bit1= remove empty directory: rmdir
|
|
||||||
bit2= recursion: do not reassure in mode 2 "tree"
|
|
||||||
bit3= this is for overwriting and not for plain removal
|
|
||||||
bit4= count deleted files in xorriso->pacifier_count
|
|
||||||
bit5= with bit0 only remove directory content, not the directory
|
|
||||||
@return <=0 = error
|
|
||||||
1 = removed leaf file object
|
|
||||||
2 = removed directory or tree
|
|
||||||
3 = did not remove on user revocation
|
|
||||||
*/
|
|
||||||
int Xorriso_rmx(struct XorrisO *xorriso, off_t boss_mem, char *path, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
int Xorriso_make_tmp_path(struct XorrisO *xorriso, char *orig_path,
|
|
||||||
char *tmp_path, int *fd, int flag);
|
|
||||||
|
|
||||||
/* @param flag bit0= path is a directory
|
|
||||||
bit2= recursion: do not reassure in mode 2 "tree"
|
|
||||||
bit3= this is for overwriting and not for plain removal
|
|
||||||
*/
|
|
||||||
int Xorriso_reassure_restore(struct XorrisO *xorriso, char *path, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
int Xorriso_auto_chmod(struct XorrisO *xorriso, char *disk_path, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
int Sfile_str(char target[SfileadrL], char *source, int flag);
|
int Sfile_str(char target[SfileadrL], char *source, int flag);
|
||||||
|
|
||||||
double Sfile_microtime(int flag);
|
double Sfile_microtime(int flag);
|
||||||
@ -451,26 +369,6 @@ int Sfile_destroy_argv(int *argc, char ***argv, int flag);
|
|||||||
*/
|
*/
|
||||||
int Sfile_count_components(char *path, int flag);
|
int Sfile_count_components(char *path, int flag);
|
||||||
|
|
||||||
/*
|
|
||||||
@param flag
|
|
||||||
bit0= return -1 if file is missing
|
|
||||||
bit1= return a hardlink with siblings as type 5
|
|
||||||
bit2= evaluate eventual link target rather than the link object itself
|
|
||||||
bit3= return a socket or a char device as types 7 or 8 rather than 0
|
|
||||||
@return
|
|
||||||
0=unknown
|
|
||||||
1=regular
|
|
||||||
2=directory
|
|
||||||
3=symbolic link
|
|
||||||
4=named pipe
|
|
||||||
5=multiple hardlink (with bit1)
|
|
||||||
6=block device
|
|
||||||
7=socket (with bit3)
|
|
||||||
8=character device (with bit3)
|
|
||||||
*/
|
|
||||||
int Sfile_type(char *filename, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
char *Text_shellsafe(char *in_text, char *out_text, int flag);
|
char *Text_shellsafe(char *in_text, char *out_text, int flag);
|
||||||
|
|
||||||
@ -554,42 +452,6 @@ int Splitpart__parse(char *name, int *partno, int *total_parts,
|
|||||||
int Splitpart__compose(char *adr, int partno, int total_parts,
|
int Splitpart__compose(char *adr, int partno, int total_parts,
|
||||||
off_t offset, off_t bytes, off_t total_bytes, int flag);
|
off_t offset, off_t bytes, off_t total_bytes, int flag);
|
||||||
|
|
||||||
int Splitparts_sort(struct SplitparT *o, int count, int flag);
|
|
||||||
|
|
||||||
struct LstrinG {
|
|
||||||
char *text;
|
|
||||||
struct LstrinG *prev,*next;
|
|
||||||
};
|
|
||||||
|
|
||||||
int Lstring_destroy(struct LstrinG **lstring, int flag);
|
|
||||||
|
|
||||||
int Lstring_destroy_all(struct LstrinG **lstring, int flag);
|
|
||||||
|
|
||||||
/*
|
|
||||||
@param flag Bitfield for control purposes
|
|
||||||
bit0= insert before link rather than after it
|
|
||||||
bit1= do not copy data (e.g. because *data is invalid)
|
|
||||||
*/
|
|
||||||
int Lstring_new_binary(struct LstrinG **lstring, char *data, int data_len,
|
|
||||||
struct LstrinG *link, int flag);
|
|
||||||
|
|
||||||
/*
|
|
||||||
@param flag Bitfield for control purposes
|
|
||||||
bit0= insert before link rather than after it
|
|
||||||
*/
|
|
||||||
int Lstring_new(struct LstrinG **lstring, char *text, struct LstrinG *link,
|
|
||||||
int flag);
|
|
||||||
|
|
||||||
int Lstring_append_binary(struct LstrinG **entry, char *data, int data_len,
|
|
||||||
int flag);
|
|
||||||
|
|
||||||
|
|
||||||
int Permstack_push(struct PermiteM **o, char *disk_path, struct stat *stbuf,
|
|
||||||
int flag);
|
|
||||||
|
|
||||||
int Permstack_pop(struct PermiteM **o, struct PermiteM *stopper,
|
|
||||||
struct XorrisO *xorriso, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* Xorriso_private_includeD */
|
#endif /* Xorriso_private_includeD */
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2008.06.22.090001"
|
#define Xorriso_timestamP "2008.04.28.120001"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -20,8 +20,8 @@ struct FindjoB;
|
|||||||
/* The minimum version of libisoburn to be used with this version of xorriso
|
/* The minimum version of libisoburn to be used with this version of xorriso
|
||||||
*/
|
*/
|
||||||
#define xorriso_libisoburn_req_major 0
|
#define xorriso_libisoburn_req_major 0
|
||||||
#define xorriso_libisoburn_req_minor 2
|
#define xorriso_libisoburn_req_minor 1
|
||||||
#define xorriso_libisoburn_req_micro 0
|
#define xorriso_libisoburn_req_micro 4
|
||||||
|
|
||||||
int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag);
|
int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
@ -62,29 +62,10 @@ int Xorriso_show_devices(struct XorrisO *xorriso, int flag);
|
|||||||
int Xorriso_tell_media_space(struct XorrisO *xorriso,
|
int Xorriso_tell_media_space(struct XorrisO *xorriso,
|
||||||
int *media_space, int *free_space, int flag);
|
int *media_space, int *free_space, int flag);
|
||||||
|
|
||||||
/* @param flag bit0=fast , bit1=deformat
|
|
||||||
@return 0=failure, did not touch media , -1=failure, altered media
|
|
||||||
1=success, altered media , 2=success, did not touch media
|
|
||||||
*/
|
|
||||||
int Xorriso_blank_media(struct XorrisO *xorriso, int flag);
|
int Xorriso_blank_media(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
/* @param flag bit0= try to achieve faster formatting
|
|
||||||
@return 0=failure, did not touch media , -1=failure, altered media
|
|
||||||
1=success, altered media , 2=success, did not touch media
|
|
||||||
*/
|
|
||||||
int Xorriso_format_media(struct XorrisO *xorriso, int flag);
|
int Xorriso_format_media(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
/* @return <=0 error, 1 success
|
|
||||||
*/
|
|
||||||
int Xorriso_list_formats(struct XorrisO *xorriso, int flag);
|
|
||||||
|
|
||||||
/* @param flag bit2= formatting rather than blanking
|
|
||||||
@return 0=failure, did not touch media , -1=failure, altered media
|
|
||||||
1=success, altered media , 2=success, did not touch media
|
|
||||||
*/
|
|
||||||
int Xorriso_blank_as_needed(struct XorrisO *xorriso, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/* @param boss_iter Opaque internal handle. Use NULL outside xorrisoburn.c :
|
/* @param boss_iter Opaque internal handle. Use NULL outside xorrisoburn.c :
|
||||||
If not NULL then this is an iterator suitable for
|
If not NULL then this is an iterator suitable for
|
||||||
iso_dir_iter_remove() which is then to be used instead
|
iso_dir_iter_remove() which is then to be used instead
|
||||||
@ -177,9 +158,7 @@ int Xorriso_set_abort_severity(struct XorrisO *xorriso, int flag);
|
|||||||
|
|
||||||
int Xorriso_report_lib_versions(struct XorrisO *xorriso, int flag);
|
int Xorriso_report_lib_versions(struct XorrisO *xorriso, int flag);
|
||||||
|
|
||||||
/* @return 0= stbuf content is valid ,
|
/* @return 0= stbuf content is valid , -1 = path not found */
|
||||||
-1 = path not found , -2 = severe error occured
|
|
||||||
*/
|
|
||||||
int Xorriso_iso_lstat(struct XorrisO *xorriso, char *path, struct stat *stbuf,
|
int Xorriso_iso_lstat(struct XorrisO *xorriso, char *path, struct stat *stbuf,
|
||||||
int flag);
|
int flag);
|
||||||
|
|
||||||
@ -200,10 +179,8 @@ int Xorriso_get_profile(struct XorrisO *xorriso, int *profile_number,
|
|||||||
int Xorriso_set_publisher(struct XorrisO *xorriso, char *name, int flag);
|
int Xorriso_set_publisher(struct XorrisO *xorriso, char *name, int flag);
|
||||||
|
|
||||||
|
|
||||||
/* @param flag bit0= node_pt is a valid ISO object handle, ignore pathname
|
|
||||||
*/
|
|
||||||
int Xorriso_iso_file_open(struct XorrisO *xorriso, char *pathname,
|
int Xorriso_iso_file_open(struct XorrisO *xorriso, char *pathname,
|
||||||
void *node_pt, void **stream, int flag);
|
void **stream, int flag);
|
||||||
|
|
||||||
int Xorriso_iso_file_read(struct XorrisO *xorriso, void *stream, char *buf,
|
int Xorriso_iso_file_read(struct XorrisO *xorriso, void *stream, char *buf,
|
||||||
int count, int flag);
|
int count, int flag);
|
||||||
@ -218,9 +195,6 @@ int Xorriso_copy_properties(struct XorrisO *xorriso,
|
|||||||
int Xorriso_cut_out(struct XorrisO *xorriso, char *disk_path,
|
int Xorriso_cut_out(struct XorrisO *xorriso, char *disk_path,
|
||||||
off_t startbyte, off_t bytecount, char *iso_rr_path, int flag);
|
off_t startbyte, off_t bytecount, char *iso_rr_path, int flag);
|
||||||
|
|
||||||
int Xorriso_paste_in(struct XorrisO *xorriso, char *disk_path,
|
|
||||||
off_t startbyte, off_t bytecount, char *iso_rr_path, int flag);
|
|
||||||
|
|
||||||
struct SplitparT;
|
struct SplitparT;
|
||||||
|
|
||||||
/* @param flag bit0= in_node is valid, do not resolve iso_adr
|
/* @param flag bit0= in_node is valid, do not resolve iso_adr
|
||||||
@ -230,34 +204,5 @@ int Xorriso_identify_split(struct XorrisO *xorriso, char *iso_adr,
|
|||||||
struct SplitparT **parts, int *count,
|
struct SplitparT **parts, int *count,
|
||||||
struct stat *total_stbuf, int flag);
|
struct stat *total_stbuf, int flag);
|
||||||
|
|
||||||
/* @param flag bit0= node is valid, do not resolve path
|
|
||||||
bit1= insist in complete collection of part files
|
|
||||||
*/
|
|
||||||
int Xorriso_is_split(struct XorrisO *xorriso, char *path, void *node,
|
|
||||||
int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/* @param flag
|
|
||||||
>>> bit0= mkdir: graft in as empty directory, not as copy from iso
|
|
||||||
bit1= do not report copied files
|
|
||||||
bit2= -follow, -not_*: this is not a command parameter
|
|
||||||
bit3= use offset and cut_size for -paste_in
|
|
||||||
bit4= return 3 on rejection by exclusion or user
|
|
||||||
bit5= if directory then do not add sub tree
|
|
||||||
bit6= this is a copy action: do not fake times and ownership
|
|
||||||
@return <=0 = error , 1 = added leaf file object , 2 = added directory ,
|
|
||||||
3 = rejected
|
|
||||||
*/
|
|
||||||
int Xorriso_restore(struct XorrisO *xorriso,
|
|
||||||
char *img_path, char *disk_path,
|
|
||||||
off_t offset, off_t cut_size, int flag);
|
|
||||||
|
|
||||||
|
|
||||||
/* @param flag bit0= in_node is valid, do not resolve img_path
|
|
||||||
*/
|
|
||||||
int Xorriso_restore_is_identical(struct XorrisO *xorriso, void *in_node,
|
|
||||||
char *img_path, char *disk_path,
|
|
||||||
char type_text[5], int flag);
|
|
||||||
|
|
||||||
#endif /* Xorrisoburn_includeD */
|
#endif /* Xorrisoburn_includeD */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user