Fixed spelling errors found by fossies.org with codespell
This commit is contained in:
parent
1c235e807e
commit
ba9b69b1df
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2019.10.27.142135"
|
#define Cdrskin_timestamP "2019.10.28.155736"
|
||||||
|
@ -419,7 +419,7 @@ void burn_disc_erase(struct burn_drive *drive, int fast)
|
|||||||
|
|
||||||
/* ts A70103 moved up from burn_disc_erase_sync() */
|
/* ts A70103 moved up from burn_disc_erase_sync() */
|
||||||
/* ts A60825 : allow on parole to blank appendable CDs */
|
/* ts A60825 : allow on parole to blank appendable CDs */
|
||||||
/* ts A70131 : allow blanking of overwriteable DVD-RW (profile 0x13) */
|
/* ts A70131 : allow blanking of overwritable DVD-RW (profile 0x13) */
|
||||||
/* ts A70216 : allow blanking of CD-RW or DVD-RW in any regular state
|
/* ts A70216 : allow blanking of CD-RW or DVD-RW in any regular state
|
||||||
and of any kind of full media */
|
and of any kind of full media */
|
||||||
/* ts A70909 : the willingness to burn any BURN_DISC_FULL media is
|
/* ts A70909 : the willingness to burn any BURN_DISC_FULL media is
|
||||||
|
@ -77,7 +77,7 @@ int burn_create_new_pack(int pack_type, int track_no, int double_byte,
|
|||||||
|
|
||||||
|
|
||||||
/* Plain implementation of polynomial division on a Galois field, where
|
/* Plain implementation of polynomial division on a Galois field, where
|
||||||
addition and subtraction both are binary exor. Euclidian algorithm.
|
addition and subtraction both are binary exor. Euclidean algorithm.
|
||||||
Divisor is x^16 + x^12 + x^5 + 1 = 0x11021.
|
Divisor is x^16 + x^12 + x^5 + 1 = 0x11021.
|
||||||
*/
|
*/
|
||||||
static int crc_11021(unsigned char *data, int count, int flag)
|
static int crc_11021(unsigned char *data, int count, int flag)
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
-DDDLPA_C_STANDALONE -o ddlpa ddlpa.c
|
-DDDLPA_C_STANDALONE -o ddlpa ddlpa.c
|
||||||
|
|
||||||
The system macros enable 64-bit off_t and open(2) flag O_LARGEFILE, which
|
The system macros enable 64-bit off_t and open(2) flag O_LARGEFILE, which
|
||||||
are not absolutely necessary but explicitely take into respect that
|
are not absolutely necessary but explicitly take into respect that
|
||||||
our devices can offer more than 2 GB of addressable data.
|
our devices can offer more than 2 GB of addressable data.
|
||||||
|
|
||||||
Run test program:
|
Run test program:
|
||||||
|
@ -191,7 +191,7 @@ int burn_drive_is_released(struct burn_drive *d)
|
|||||||
/* ts A60906 */
|
/* ts A60906 */
|
||||||
/** Inquires drive status in respect to degree of app usage.
|
/** Inquires drive status in respect to degree of app usage.
|
||||||
@param return -2 = drive is forgotten
|
@param return -2 = drive is forgotten
|
||||||
-1 = drive is closed (i.e. released explicitely)
|
-1 = drive is closed (i.e. released explicitly)
|
||||||
0 = drive is open, not grabbed (after scan, before 1st grab)
|
0 = drive is open, not grabbed (after scan, before 1st grab)
|
||||||
1 = drive is grabbed but BURN_DRIVE_IDLE
|
1 = drive is grabbed but BURN_DRIVE_IDLE
|
||||||
2 = drive is grabbed, synchronous read/write interrupted
|
2 = drive is grabbed, synchronous read/write interrupted
|
||||||
@ -287,7 +287,7 @@ int burn_drive_inquire_media(struct burn_drive *d)
|
|||||||
|
|
||||||
/* ts A61020 : d->status was set to BURN_DISC_BLANK as pure guess */
|
/* ts A61020 : d->status was set to BURN_DISC_BLANK as pure guess */
|
||||||
|
|
||||||
/* ts A71128 : run read_disc_info() for any recognizeable profile */
|
/* ts A71128 : run read_disc_info() for any recognizable profile */
|
||||||
if (d->current_profile > 0 || d->current_is_guessed_profile ||
|
if (d->current_profile > 0 || d->current_is_guessed_profile ||
|
||||||
(d->mdata->p2a_valid > 0 &&
|
(d->mdata->p2a_valid > 0 &&
|
||||||
(d->mdata->cdr_write || d->mdata->cdrw_write ||
|
(d->mdata->cdr_write || d->mdata->cdrw_write ||
|
||||||
@ -1327,7 +1327,7 @@ static int drive_getcaps(struct burn_drive *d, struct burn_drive_info *out)
|
|||||||
|
|
||||||
/* ts A91112 */
|
/* ts A91112 */
|
||||||
/* Set default block types. The call d->probe_write_modes() is quite
|
/* Set default block types. The call d->probe_write_modes() is quite
|
||||||
obtrusive. It may be performed explicitely by new API call
|
obtrusive. It may be performed explicitly by new API call
|
||||||
burn_drive_probe_cd_write_modes().
|
burn_drive_probe_cd_write_modes().
|
||||||
*/
|
*/
|
||||||
if (out->write_dvdram || out->write_dvdr ||
|
if (out->write_dvdram || out->write_dvdr ||
|
||||||
@ -1426,7 +1426,7 @@ int burn_drive_scan_sync(struct burn_drive_info *drives[],
|
|||||||
|
|
||||||
*n_drives = 0;
|
*n_drives = 0;
|
||||||
|
|
||||||
/* ts A70907 : wether to scan from scratch or to extend */
|
/* ts A70907 : whether to scan from scratch or to extend */
|
||||||
for (i = 0; i < (int) sizeof(scanned); i++)
|
for (i = 0; i < (int) sizeof(scanned); i++)
|
||||||
scanned[i] = 0;
|
scanned[i] = 0;
|
||||||
if (flag & 1) {
|
if (flag & 1) {
|
||||||
@ -1567,7 +1567,7 @@ void burn_drive_info_free(struct burn_drive_info drive_infos[])
|
|||||||
/* ts A70903 : THIS IS WRONG ! (disabled now)
|
/* ts A70903 : THIS IS WRONG ! (disabled now)
|
||||||
It endangers multi drive usage.
|
It endangers multi drive usage.
|
||||||
This call is not entitled to delete all drives, only the
|
This call is not entitled to delete all drives, only the
|
||||||
ones of the array which it receives a parmeter.
|
ones of the array which it receives a parameter.
|
||||||
|
|
||||||
Problem: It was unclear how many items are listed in drive_infos
|
Problem: It was unclear how many items are listed in drive_infos
|
||||||
Solution: Added a end marker element to any burn_drive_info array
|
Solution: Added a end marker element to any burn_drive_info array
|
||||||
@ -1915,7 +1915,7 @@ int burn_drive_scan_and_grab(struct burn_drive_info *drive_infos[], char* adr,
|
|||||||
unsigned int n_drives;
|
unsigned int n_drives;
|
||||||
int ret, i;
|
int ret, i;
|
||||||
|
|
||||||
/* check wether drive address is already registered */
|
/* check whether drive address is already registered */
|
||||||
for (i = 0; i <= drivetop; i++)
|
for (i = 0; i <= drivetop; i++)
|
||||||
if (drive_array[i].global_index >= 0)
|
if (drive_array[i].global_index >= 0)
|
||||||
if (strcmp(drive_array[i].devname, adr) == 0)
|
if (strcmp(drive_array[i].devname, adr) == 0)
|
||||||
@ -2020,7 +2020,7 @@ int burn_drive_get_adr(struct burn_drive_info *drive_info, char adr[])
|
|||||||
|
|
||||||
|
|
||||||
/* ts A60922 ticket 33 */
|
/* ts A60922 ticket 33 */
|
||||||
/** Evaluate wether the given address would be enumerated by libburn */
|
/** Evaluate whether the given address would be enumerated by libburn */
|
||||||
int burn_drive_is_enumerable_adr(char *adr)
|
int burn_drive_is_enumerable_adr(char *adr)
|
||||||
{
|
{
|
||||||
return sg_is_enumerable_adr(adr);
|
return sg_is_enumerable_adr(adr);
|
||||||
@ -3049,7 +3049,7 @@ int burn_disc_get_multi_caps(struct burn_drive *d, enum burn_write_types wt,
|
|||||||
d->current_profile == 0x1a ||
|
d->current_profile == 0x1a ||
|
||||||
d->current_profile == 0x43
|
d->current_profile == 0x43
|
||||||
) {
|
) {
|
||||||
/* DVD-RAM, overwriteable DVD-RW, DVD+RW, BD-RE */
|
/* DVD-RAM, overwritable DVD-RW, DVD+RW, BD-RE */
|
||||||
o->start_adr = 1;
|
o->start_adr = 1;
|
||||||
ret = burn_disc_get_formats(d, &status, &size, &dummy,
|
ret = burn_disc_get_formats(d, &status, &size, &dummy,
|
||||||
&num_formats);
|
&num_formats);
|
||||||
@ -3308,7 +3308,7 @@ int burn_drive_equals_adr(struct burn_drive *d1, char *adr2_in, int role2)
|
|||||||
/* one dir existing, one not */
|
/* one dir existing, one not */
|
||||||
|
|
||||||
/* Both directories exist. The basenames are equal.
|
/* Both directories exist. The basenames are equal.
|
||||||
So the adresses are equal if the directories are
|
So the addresses are equal if the directories are
|
||||||
equal.*/
|
equal.*/
|
||||||
}
|
}
|
||||||
if (stbuf1.st_ino == stbuf2.st_ino &&
|
if (stbuf1.st_ino == stbuf2.st_ino &&
|
||||||
@ -3432,7 +3432,7 @@ int burn_disc_get_media_id(struct burn_drive *d,
|
|||||||
bit3= disc_app_code valid
|
bit3= disc_app_code valid
|
||||||
bit4= Disc is unrestricted (URU bit)
|
bit4= Disc is unrestricted (URU bit)
|
||||||
bit5= Disc is nominally erasable (Erasable bit)
|
bit5= Disc is nominally erasable (Erasable bit)
|
||||||
This will be set with overwriteable media which
|
This will be set with overwritable media which
|
||||||
libburn normally considers to be unerasable blank.
|
libburn normally considers to be unerasable blank.
|
||||||
*/
|
*/
|
||||||
int burn_disc_get_cd_info(struct burn_drive *d, char disc_type[80],
|
int burn_disc_get_cd_info(struct burn_drive *d, char disc_type[80],
|
||||||
|
@ -75,11 +75,11 @@
|
|||||||
>>> See correctness reservation below.
|
>>> See correctness reservation below.
|
||||||
|
|
||||||
Algebra on Galois fields is the same as on Rational Numbers.
|
Algebra on Galois fields is the same as on Rational Numbers.
|
||||||
But arithmetics is defined by operations on polynomials rather than the
|
But arithmetics on its polynomials differ from usual integer arithmetics
|
||||||
usual integer arithmetics on binary numbers.
|
on binary numbers.
|
||||||
Addition and subtraction are identical with the binary exor operator.
|
Addition and subtraction are identical with the binary exor operator.
|
||||||
Multiplication and division would demand polynomial division, e.g. by the
|
Multiplication and division would demand polynomial division, e.g. by the
|
||||||
euclidian algorithm. The computing path over logarithms and powers follows
|
euclidean algorithm. The computing path over logarithms and powers follows
|
||||||
algebra and reduces the arithmetic task to table lookups, additions
|
algebra and reduces the arithmetic task to table lookups, additions
|
||||||
modulo 255, and exor operations. Note that the logarithms are natural
|
modulo 255, and exor operations. Note that the logarithms are natural
|
||||||
numbers, not polynomials. They get added or subtracted by the usual addition
|
numbers, not polynomials. They get added or subtracted by the usual addition
|
||||||
|
@ -43,7 +43,7 @@ an unreadable disc */
|
|||||||
|
|
||||||
|
|
||||||
/* This is a generic OS oriented function wrapper which compensates
|
/* This is a generic OS oriented function wrapper which compensates
|
||||||
shortcommings of read() in respect to a guaranteed amount of return data.
|
shortcomings of read() in respect to a guaranteed amount of return data.
|
||||||
See man 2 read , paragraph "RETURN VALUE".
|
See man 2 read , paragraph "RETURN VALUE".
|
||||||
*/
|
*/
|
||||||
static int read_full_buffer(int fd, unsigned char *buffer, int size)
|
static int read_full_buffer(int fd, unsigned char *buffer, int size)
|
||||||
|
@ -52,7 +52,7 @@ double lib_start_time;
|
|||||||
*/
|
*/
|
||||||
int burn_sg_open_o_excl = 1;
|
int burn_sg_open_o_excl = 1;
|
||||||
|
|
||||||
/* ts A70403 : GNU/Linux: wether to use fcntl(,F_SETLK,)
|
/* ts A70403 : GNU/Linux: whether to use fcntl(,F_SETLK,)
|
||||||
after open() of device files */
|
after open() of device files */
|
||||||
int burn_sg_fcntl_f_setlk = 1;
|
int burn_sg_fcntl_f_setlk = 1;
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ int burn_sg_use_family = 0;
|
|||||||
has been thoroughly tested. */
|
has been thoroughly tested. */
|
||||||
int burn_sg_open_o_nonblock = 1;
|
int burn_sg_open_o_nonblock = 1;
|
||||||
|
|
||||||
/* wether to take a busy drive as an error */
|
/* whether to take a busy drive as an error */
|
||||||
/* Caution: this is implemented by a rough hack and eventually leads
|
/* Caution: this is implemented by a rough hack and eventually leads
|
||||||
to unconditional abort of the process */
|
to unconditional abort of the process */
|
||||||
int burn_sg_open_abort_busy = 0;
|
int burn_sg_open_abort_busy = 0;
|
||||||
@ -98,7 +98,7 @@ int burn_builtin_signal_action = 0; /* burn_set_signal_handling() */
|
|||||||
volatile int burn_builtin_triggered_action = 0; /* burn_is_aborting() */
|
volatile int burn_builtin_triggered_action = 0; /* burn_is_aborting() */
|
||||||
|
|
||||||
|
|
||||||
/* ts A70223 : wether implemented untested profiles are supported */
|
/* ts A70223 : whether implemented untested profiles are supported */
|
||||||
int burn_support_untested_profiles = 0;
|
int burn_support_untested_profiles = 0;
|
||||||
|
|
||||||
/* ts A91111 :
|
/* ts A91111 :
|
||||||
@ -112,7 +112,7 @@ int burn_sg_log_scsi = 0;
|
|||||||
|
|
||||||
/* ts B10312 :
|
/* ts B10312 :
|
||||||
Whether to map random-access readonly files to drive role 4.
|
Whether to map random-access readonly files to drive role 4.
|
||||||
Else it is role 2 overwriteable drive
|
Else it is role 2 overwritable drive
|
||||||
*/
|
*/
|
||||||
int burn_drive_role_4_allowed = 0;
|
int burn_drive_role_4_allowed = 0;
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ extern int burn_running;
|
|||||||
|
|
||||||
extern double lib_start_time;
|
extern double lib_start_time;
|
||||||
|
|
||||||
/** Indicator for burn_drive_get_status() wether a signal hit parts of the
|
/** Indicator for burn_drive_get_status() whether a signal hit parts of the
|
||||||
thread team.
|
thread team.
|
||||||
0= all works well ,
|
0= all works well ,
|
||||||
1 to 5 = waiting for eventual signal on control thread
|
1 to 5 = waiting for eventual signal on control thread
|
||||||
|
@ -144,7 +144,7 @@ enum burn_write_types
|
|||||||
With sequential DVD-R[W]: Incremental Streaming
|
With sequential DVD-R[W]: Incremental Streaming
|
||||||
With DVD+R and BD-R: Track of open size
|
With DVD+R and BD-R: Track of open size
|
||||||
With DVD-RAM, DVD+RW, BD-RE: Random Writeable (used sequentially)
|
With DVD-RAM, DVD+RW, BD-RE: Random Writeable (used sequentially)
|
||||||
With overwriteable DVD-RW: Rigid Restricted Overwrite
|
With overwritable DVD-RW: Rigid Restricted Overwrite
|
||||||
*/
|
*/
|
||||||
BURN_WRITE_TAO,
|
BURN_WRITE_TAO,
|
||||||
|
|
||||||
@ -235,7 +235,7 @@ enum burn_disc_status
|
|||||||
CD-R, CD-RW, DVD-R, DVD-RW, DVD+R, BD-R
|
CD-R, CD-RW, DVD-R, DVD-RW, DVD+R, BD-R
|
||||||
Blanked multi-session media (i.e. treated by burn_disc_erase())
|
Blanked multi-session media (i.e. treated by burn_disc_erase())
|
||||||
CD-RW, DVD-RW
|
CD-RW, DVD-RW
|
||||||
Overwriteable media with or without valid data
|
Overwritable media with or without valid data
|
||||||
DVD-RAM, DVD+RW, formatted DVD-RW, BD-RE
|
DVD-RAM, DVD+RW, formatted DVD-RW, BD-RE
|
||||||
*/
|
*/
|
||||||
BURN_DISC_BLANK,
|
BURN_DISC_BLANK,
|
||||||
@ -675,7 +675,7 @@ struct burn_progress {
|
|||||||
int track;
|
int track;
|
||||||
/** The total number of indices */
|
/** The total number of indices */
|
||||||
int indices;
|
int indices;
|
||||||
/** Curent index. */
|
/** Current index. */
|
||||||
int index;
|
int index;
|
||||||
/** The starting logical block address */
|
/** The starting logical block address */
|
||||||
int start_sector;
|
int start_sector;
|
||||||
@ -1328,7 +1328,7 @@ int burn_drive_get_bd_r_pow(struct burn_drive *drive);
|
|||||||
/* ts A61020 */
|
/* ts A61020 */
|
||||||
/** Returns start and end lba of the media which is currently inserted
|
/** Returns start and end lba of the media which is currently inserted
|
||||||
in the given drive. The drive has to be grabbed to have hope for reply.
|
in the given drive. The drive has to be grabbed to have hope for reply.
|
||||||
Shortcomming (not a feature): unless burn_disc_read_atip() was called
|
Shortcoming (not a feature): unless burn_disc_read_atip() was called
|
||||||
only blank media will return valid info.
|
only blank media will return valid info.
|
||||||
@param drive The drive to query.
|
@param drive The drive to query.
|
||||||
@param start_lba Returns the start lba value
|
@param start_lba Returns the start lba value
|
||||||
@ -1386,7 +1386,7 @@ char *burn_guess_cd_manufacturer(int m_li, int s_li, int f_li,
|
|||||||
This seems to be broken with my drives. The bit is
|
This seems to be broken with my drives. The bit is
|
||||||
0 and the validity bit for disc_app_code is 0 too.
|
0 and the validity bit for disc_app_code is 0 too.
|
||||||
bit5= Disc is nominally erasable (Erasable bit)
|
bit5= Disc is nominally erasable (Erasable bit)
|
||||||
This will be set with overwriteable media which
|
This will be set with overwritable media which
|
||||||
libburn normally considers to be unerasable blank.
|
libburn normally considers to be unerasable blank.
|
||||||
@return 1 success, <= 0 an error occurred
|
@return 1 success, <= 0 an error occurred
|
||||||
@since 0.7.2
|
@since 0.7.2
|
||||||
@ -1819,7 +1819,7 @@ void burn_disc_read(struct burn_drive *drive, const struct burn_read_opts *o);
|
|||||||
with drive and media. This function is called by burn_disc_write() but
|
with drive and media. This function is called by burn_disc_write() but
|
||||||
an application might be interested in this check in advance.
|
an application might be interested in this check in advance.
|
||||||
@param o The options for the writing operation.
|
@param o The options for the writing operation.
|
||||||
@param disc The descrition of the disc to be created
|
@param disc The description of the disc to be created
|
||||||
@param reasons Eventually returns a list of rejection reason statements
|
@param reasons Eventually returns a list of rejection reason statements
|
||||||
@param silent 1= do not issue error messages , 0= report problems
|
@param silent 1= do not issue error messages , 0= report problems
|
||||||
@return 1 ok, -1= no recordable media detected, 0= other failure
|
@return 1 ok, -1= no recordable media detected, 0= other failure
|
||||||
@ -3334,7 +3334,7 @@ void burn_write_opts_set_obs_pad(struct burn_write_opts *opts, int pad);
|
|||||||
be consumed by the receiving storage device. This forcing keeps the memory
|
be consumed by the receiving storage device. This forcing keeps the memory
|
||||||
from being clogged with lots of pending data for slow devices.
|
from being clogged with lots of pending data for slow devices.
|
||||||
@param opts The write opts to change
|
@param opts The write opts to change
|
||||||
@param rythm Number of 2KB output blocks after which fsync(2) is
|
@param rhythm Number of 2KB output blocks after which fsync(2) is
|
||||||
performed.
|
performed.
|
||||||
-1 means no fsync()
|
-1 means no fsync()
|
||||||
0 means default
|
0 means default
|
||||||
@ -3343,7 +3343,7 @@ void burn_write_opts_set_obs_pad(struct burn_write_opts *opts, int pad);
|
|||||||
Default is currently 8192 = 16 MB.
|
Default is currently 8192 = 16 MB.
|
||||||
@since 0.7.4
|
@since 0.7.4
|
||||||
*/
|
*/
|
||||||
void burn_write_opts_set_stdio_fsync(struct burn_write_opts *opts, int rythm);
|
void burn_write_opts_set_stdio_fsync(struct burn_write_opts *opts, int rhythm);
|
||||||
|
|
||||||
|
|
||||||
/** Sets whether to read in raw mode or not
|
/** Sets whether to read in raw mode or not
|
||||||
@ -3628,12 +3628,12 @@ struct burn_multi_caps {
|
|||||||
/** Profile number which was current when the reply was generated */
|
/** Profile number which was current when the reply was generated */
|
||||||
int current_profile;
|
int current_profile;
|
||||||
|
|
||||||
/** Wether the current profile indicates CD media. 1=yes, 0=no */
|
/** Whether the current profile indicates CD media. 1=yes, 0=no */
|
||||||
int current_is_cd_profile;
|
int current_is_cd_profile;
|
||||||
|
|
||||||
/* ts A70528 */
|
/* ts A70528 */
|
||||||
/* @since 0.3.8 */
|
/* @since 0.3.8 */
|
||||||
/** Wether the current profile is able to perform simulated write */
|
/** Whether the current profile is able to perform simulated write */
|
||||||
int might_simulate;
|
int might_simulate;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -3765,7 +3765,7 @@ void burn_version(int *major, int *minor, int *micro);
|
|||||||
/** Usage discussion:
|
/** Usage discussion:
|
||||||
|
|
||||||
Some developers of the libburnia project have differing
|
Some developers of the libburnia project have differing
|
||||||
opinions how to ensure the compatibility of libaries
|
opinions how to ensure the compatibility of libraries
|
||||||
and applications.
|
and applications.
|
||||||
|
|
||||||
It is about whether to use at compile time and at runtime
|
It is about whether to use at compile time and at runtime
|
||||||
@ -4015,7 +4015,7 @@ int burn_is_aborting(int flag);
|
|||||||
/** Write data in random access mode.
|
/** Write data in random access mode.
|
||||||
The drive must be grabbed successfully before calling this function which
|
The drive must be grabbed successfully before calling this function which
|
||||||
circumvents usual libburn session processing and rather writes data without
|
circumvents usual libburn session processing and rather writes data without
|
||||||
preparations or finalizing. This will work only with overwriteable media
|
preparations or finalizing. This will work only with overwritable media
|
||||||
which are also suitable for burn_write_opts_set_start_byte(). The same
|
which are also suitable for burn_write_opts_set_start_byte(). The same
|
||||||
address alignment restrictions as with this function apply. I.e. for DVD
|
address alignment restrictions as with this function apply. I.e. for DVD
|
||||||
it is best to align to 32 KiB blocks (= 16 LBA units). The amount of data
|
it is best to align to 32 KiB blocks (= 16 LBA units). The amount of data
|
||||||
@ -4295,7 +4295,7 @@ int burn_drive_equals_adr(struct burn_drive *d1, char *adr2, int drive_role2);
|
|||||||
struct libdax_audioxtr;
|
struct libdax_audioxtr;
|
||||||
|
|
||||||
|
|
||||||
/** Open an audio file, check wether suitable, create extractor object.
|
/** Open an audio file, check whether suitable, create extractor object.
|
||||||
@param xtr Opaque handle to extractor. Gets attached extractor object.
|
@param xtr Opaque handle to extractor. Gets attached extractor object.
|
||||||
@param path Address of the audio file to extract. "-" is stdin (but might
|
@param path Address of the audio file to extract. "-" is stdin (but might
|
||||||
be not suitable for all futurely supported formats).
|
be not suitable for all futurely supported formats).
|
||||||
@ -4393,7 +4393,7 @@ BURN_END_DECLS
|
|||||||
/* The following experiments may be interesting in future:
|
/* The following experiments may be interesting in future:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Perform OPC explicitely.
|
/* Perform OPC explicitly.
|
||||||
# define Libburn_pioneer_dvr_216d_with_opC 1
|
# define Libburn_pioneer_dvr_216d_with_opC 1
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -158,7 +158,7 @@ static int libdax_audioxtr_identify_wav(struct libdax_audioxtr *o, int flag)
|
|||||||
char buf[16];
|
char buf[16];
|
||||||
unsigned char *ubuf;
|
unsigned char *ubuf;
|
||||||
|
|
||||||
/* check wether this is a MS WAVE file .wav */
|
/* check whether this is a MS WAVE file .wav */
|
||||||
/* info used: http://ccrma.stanford.edu/courses/422/projects/WaveFormat/
|
/* info used: http://ccrma.stanford.edu/courses/422/projects/WaveFormat/
|
||||||
https://en.wikipedia.org/wiki/WAV
|
https://en.wikipedia.org/wiki/WAV
|
||||||
see summary in: doc/waveformat.txt
|
see summary in: doc/waveformat.txt
|
||||||
@ -247,7 +247,7 @@ static int libdax_audioxtr_identify_au(struct libdax_audioxtr *o, int flag)
|
|||||||
int ret,encoding;
|
int ret,encoding;
|
||||||
char buf[24];
|
char buf[24];
|
||||||
|
|
||||||
/* Check wether this is a Sun Audio, .au file */
|
/* Check whether this is a Sun Audio, .au file */
|
||||||
/* info used: http://ccrma.stanford.edu/courses/422/projects/WaveFormat/ */
|
/* info used: http://ccrma.stanford.edu/courses/422/projects/WaveFormat/ */
|
||||||
|
|
||||||
if(o->fd!=0) {
|
if(o->fd!=0) {
|
||||||
|
@ -38,7 +38,7 @@ struct libdax_audioxtr;
|
|||||||
/* Calls from applications (to be forwarded by libdax/libburn) */
|
/* Calls from applications (to be forwarded by libdax/libburn) */
|
||||||
|
|
||||||
|
|
||||||
/** Open an audio file, check wether suitable, create extractor object.
|
/** Open an audio file, check whether suitable, create extractor object.
|
||||||
@param xtr Opaque handle to extractor. Gets attached extractor object.
|
@param xtr Opaque handle to extractor. Gets attached extractor object.
|
||||||
@param path Address of the audio file to extract. "-" is stdin (but might
|
@param path Address of the audio file to extract. "-" is stdin (but might
|
||||||
be not suitable for all futurely supported formats).
|
be not suitable for all futurely supported formats).
|
||||||
|
@ -425,7 +425,7 @@ Range "elmom" : 0x00010000 to 0x0001ffff
|
|||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
Range "scdbackup" : 0x00020000 to 0x0002ffff
|
Range "scdbackup" : 0x00020000 to 0x0002ffff
|
||||||
|
|
||||||
Acessing and defending drives:
|
Accessing and defending drives:
|
||||||
|
|
||||||
0x00020001 (SORRY,LOW) = Cannot open busy device
|
0x00020001 (SORRY,LOW) = Cannot open busy device
|
||||||
0x00020002 (SORRY,HIGH) = Encountered error when closing drive
|
0x00020002 (SORRY,HIGH) = Encountered error when closing drive
|
||||||
@ -555,7 +555,7 @@ Range "scdbackup" : 0x00020000 to 0x0002ffff
|
|||||||
0x0002016e (DEBUG,HIGH) = MODE SENSE page 2A too short
|
0x0002016e (DEBUG,HIGH) = MODE SENSE page 2A too short
|
||||||
0x0002016f (DEBUG,HIGH) = Unable to grab scanned drive
|
0x0002016f (DEBUG,HIGH) = Unable to grab scanned drive
|
||||||
0x00020170 (NOTE,HIGH) = Closing open session before writing new one
|
0x00020170 (NOTE,HIGH) = Closing open session before writing new one
|
||||||
0x00020171 (NOTE,HIGH) = Closing BD-R with accidentaly open session
|
0x00020171 (NOTE,HIGH) = Closing BD-R with accidentally open session
|
||||||
0x00020172 (SORRY,HIGH) = Read start address larger than number of readable blocks
|
0x00020172 (SORRY,HIGH) = Read start address larger than number of readable blocks
|
||||||
0x00020173 (FAILURE,HIGH) = Drive tells NWA smaller than last written address
|
0x00020173 (FAILURE,HIGH) = Drive tells NWA smaller than last written address
|
||||||
0x00020174 (SORRY,HIGH) = Fifo alignment does not allow desired read size
|
0x00020174 (SORRY,HIGH) = Fifo alignment does not allow desired read size
|
||||||
@ -580,7 +580,7 @@ Range "scdbackup" : 0x00020000 to 0x0002ffff
|
|||||||
0x00020187 (NOTE,HIGH) = Track not marked as damaged. No action taken.
|
0x00020187 (NOTE,HIGH) = Track not marked as damaged. No action taken.
|
||||||
0x00020188 (FAILURE,HIGH) = Cannot close damaged track on given media type
|
0x00020188 (FAILURE,HIGH) = Cannot close damaged track on given media type
|
||||||
0x00020189 (FATAL,HIGH) = Drive is already grabbed by libburn
|
0x00020189 (FATAL,HIGH) = Drive is already grabbed by libburn
|
||||||
0x0002018a (SORRY,HIGH) = Timeout exceeded. Retry cancled.
|
0x0002018a (SORRY,HIGH) = Timeout exceeded. Retry canceled.
|
||||||
0x0002018b (FAILURE,HIGH) = Too many CD-TEXT packs
|
0x0002018b (FAILURE,HIGH) = Too many CD-TEXT packs
|
||||||
0x0002018c (FAILURE,HIGH) = CD-TEXT pack type out of range
|
0x0002018c (FAILURE,HIGH) = CD-TEXT pack type out of range
|
||||||
0x0002018d (FAILURE,HIGH) = CD-TEXT block number out of range
|
0x0002018d (FAILURE,HIGH) = CD-TEXT block number out of range
|
||||||
@ -646,11 +646,11 @@ Range "vreixo" : 0x00030000 to 0x0003ffff
|
|||||||
0x0003ffbc (FAILURE,HIGH) = Image already bootable
|
0x0003ffbc (FAILURE,HIGH) = Image already bootable
|
||||||
0x0003ffbb (FAILURE,HIGH) = Trying to use an invalid file as boot image
|
0x0003ffbb (FAILURE,HIGH) = Trying to use an invalid file as boot image
|
||||||
0x0003ff80 (FAILURE,HIGH) = Error on file operation
|
0x0003ff80 (FAILURE,HIGH) = Error on file operation
|
||||||
0x0003ff7f (FAILURE,HIGH) = Trying to open an already openned file
|
0x0003ff7f (FAILURE,HIGH) = Trying to open an already opened file
|
||||||
0x0003ff7e (FAILURE,HIGH) = Access to file is not allowed
|
0x0003ff7e (FAILURE,HIGH) = Access to file is not allowed
|
||||||
0x0003ff7d (FAILURE,HIGH) = Incorrect path to file
|
0x0003ff7d (FAILURE,HIGH) = Incorrect path to file
|
||||||
0x0003ff7c (FAILURE,HIGH) = The file does not exist in the filesystem
|
0x0003ff7c (FAILURE,HIGH) = The file does not exist in the filesystem
|
||||||
0x0003ff7b (FAILURE,HIGH) = Trying to read or close a file not openned
|
0x0003ff7b (FAILURE,HIGH) = Trying to read or close a file not opened
|
||||||
0x0003ff7a (FAILURE,HIGH) = Directory used where no dir is expected
|
0x0003ff7a (FAILURE,HIGH) = Directory used where no dir is expected
|
||||||
0x0003ff79 (FAILURE,HIGH) = File read error
|
0x0003ff79 (FAILURE,HIGH) = File read error
|
||||||
0x0003ff78 (FAILURE,HIGH) = Not dir used where a dir is expected
|
0x0003ff78 (FAILURE,HIGH) = Not dir used where a dir is expected
|
||||||
@ -701,7 +701,7 @@ X 0x00030203 (HINT,MEDIUM) = Unsupported El-Torito feature
|
|||||||
X 0x00030204 (SORRY,HIGH) = Invalid file to be an El-Torito image
|
X 0x00030204 (SORRY,HIGH) = Invalid file to be an El-Torito image
|
||||||
X 0x00030205 (WARNING,MEDIUM)= Cannot properly patch isolinux image
|
X 0x00030205 (WARNING,MEDIUM)= Cannot properly patch isolinux image
|
||||||
X 0x00030206 (WARNING,MEDIUM)= Copying El-Torito from a previous image without
|
X 0x00030206 (WARNING,MEDIUM)= Copying El-Torito from a previous image without
|
||||||
X enought info about it
|
X enough info about it
|
||||||
X 0x00030301 (NOTE,MEDIUM) = Unsupported file type for Joliet tree
|
X 0x00030301 (NOTE,MEDIUM) = Unsupported file type for Joliet tree
|
||||||
|
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ extern struct libdax_msgs *libdax_messenger;
|
|||||||
Error messages of class DEBUG appear because of inability to
|
Error messages of class DEBUG appear because of inability to
|
||||||
read TOC or track info. Nevertheless, the written images verify.
|
read TOC or track info. Nevertheless, the written images verify.
|
||||||
ts A61220 : Burned to a virgin DVD+RW by help of new mmc_format_unit()
|
ts A61220 : Burned to a virgin DVD+RW by help of new mmc_format_unit()
|
||||||
(did not test wether it would work without). Burned to a
|
(did not test whether it would work without). Burned to a
|
||||||
not completely formatted DVD+RW. (Had worked before without
|
not completely formatted DVD+RW. (Had worked before without
|
||||||
mmc_format_unit() but i did not exceed the formatted range
|
mmc_format_unit() but i did not exceed the formatted range
|
||||||
as reported by dvd+rw-mediainfo.)
|
as reported by dvd+rw-mediainfo.)
|
||||||
@ -502,7 +502,7 @@ int mmc_get_nwa(struct burn_drive *d, int trackno, int *lba, int *nwa)
|
|||||||
sprintf(msg, "Upcoming track: ");
|
sprintf(msg, "Upcoming track: ");
|
||||||
if (d->current_profile == 0x1a || d->current_profile == 0x13 ||
|
if (d->current_profile == 0x1a || d->current_profile == 0x13 ||
|
||||||
d->current_profile == 0x12 || d->current_profile == 0x43) {
|
d->current_profile == 0x12 || d->current_profile == 0x43) {
|
||||||
/* overwriteable */
|
/* overwritable */
|
||||||
*lba = *nwa = num = 0;
|
*lba = *nwa = num = 0;
|
||||||
|
|
||||||
} else if (data[5] & 32) { /* ts B10534 : MMC-5 6.27.3.7 Damage Bit */
|
} else if (data[5] & 32) { /* ts B10534 : MMC-5 6.27.3.7 Damage Bit */
|
||||||
@ -1581,7 +1581,7 @@ static int mmc_read_toc_al(struct burn_drive *d, int *alloc_len)
|
|||||||
|
|
||||||
/* ts A61020 : this snaps on non-blank DVD media */
|
/* ts A61020 : this snaps on non-blank DVD media */
|
||||||
/* ts A61106 : also snaps on CD with unclosed track/session */
|
/* ts A61106 : also snaps on CD with unclosed track/session */
|
||||||
/* Very unsure wether this old measure is ok.
|
/* Very unsure whether this old measure is ok.
|
||||||
Obviously higher levels do not care about this.
|
Obviously higher levels do not care about this.
|
||||||
outdated info: DVD+RW burns go on after passing through here.
|
outdated info: DVD+RW burns go on after passing through here.
|
||||||
|
|
||||||
@ -3660,7 +3660,7 @@ ex:;
|
|||||||
/* ts A61219 : learned much from dvd+rw-tools-7.0: plus_rw_format()
|
/* ts A61219 : learned much from dvd+rw-tools-7.0: plus_rw_format()
|
||||||
and mmc5r03c.pdf, 6.5 FORMAT UNIT */
|
and mmc5r03c.pdf, 6.5 FORMAT UNIT */
|
||||||
/*
|
/*
|
||||||
@param size The size (in bytes) to be sent with the FORMAT comand
|
@param size The size (in bytes) to be sent with the FORMAT command
|
||||||
@param flag bit1+2: size mode
|
@param flag bit1+2: size mode
|
||||||
0 = use parameter size as far as it makes sense
|
0 = use parameter size as far as it makes sense
|
||||||
1 = insist in size 0 even if there is a better default known
|
1 = insist in size 0 even if there is a better default known
|
||||||
@ -3715,7 +3715,7 @@ int mmc_format_unit(struct burn_drive *d, off_t size, int flag)
|
|||||||
num_of_blocks = size / 2048;
|
num_of_blocks = size / 2048;
|
||||||
mmc_int_to_four_char(c->page->data + 4, num_of_blocks);
|
mmc_int_to_four_char(c->page->data + 4, num_of_blocks);
|
||||||
|
|
||||||
if (flag & 128) { /* explicitely chosen format descriptor */
|
if (flag & 128) { /* explicitly chosen format descriptor */
|
||||||
/* use case: the app knows what to do */
|
/* use case: the app knows what to do */
|
||||||
|
|
||||||
ret = mmc_read_format_capacities(d, -1);
|
ret = mmc_read_format_capacities(d, -1);
|
||||||
|
@ -536,16 +536,16 @@ void burn_write_opts_set_obs_pad(struct burn_write_opts *opts, int pad)
|
|||||||
|
|
||||||
|
|
||||||
/* ts A91115: API */
|
/* ts A91115: API */
|
||||||
void burn_write_opts_set_stdio_fsync(struct burn_write_opts *opts, int rythm)
|
void burn_write_opts_set_stdio_fsync(struct burn_write_opts *opts, int rhythm)
|
||||||
{
|
{
|
||||||
if (rythm == -1)
|
if (rhythm == -1)
|
||||||
opts->stdio_fsync_size = -1; /* never */
|
opts->stdio_fsync_size = -1; /* never */
|
||||||
else if (rythm == 0)
|
else if (rhythm == 0)
|
||||||
opts->stdio_fsync_size = Libburn_stdio_fsync_limiT;
|
opts->stdio_fsync_size = Libburn_stdio_fsync_limiT;
|
||||||
else if (rythm == 1)
|
else if (rhythm == 1)
|
||||||
opts->stdio_fsync_size = 0; /* only at end of writing */
|
opts->stdio_fsync_size = 0; /* only at end of writing */
|
||||||
else if (rythm >= 32)
|
else if (rhythm >= 32)
|
||||||
opts->stdio_fsync_size = rythm;
|
opts->stdio_fsync_size = rhythm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -49,11 +49,11 @@ struct burn_write_opts
|
|||||||
/* ts A61222 : Start address for media which offer a choice */
|
/* ts A61222 : Start address for media which offer a choice */
|
||||||
off_t start_byte;
|
off_t start_byte;
|
||||||
|
|
||||||
/* ts A70213 : Wether to fill up the available space on media */
|
/* ts A70213 : Whether to fill up the available space on media */
|
||||||
int fill_up_media;
|
int fill_up_media;
|
||||||
|
|
||||||
/* ts A70303 : Wether to override conformance checks:
|
/* ts A70303 : Whether to override conformance checks:
|
||||||
- the check wether CD write+block type is supported by the drive
|
- the check whether CD write+block type is supported by the drive
|
||||||
*/
|
*/
|
||||||
int force_is_set;
|
int force_is_set;
|
||||||
|
|
||||||
|
@ -286,7 +286,7 @@ void burn_packet_process(struct burn_drive *d, unsigned char *data,
|
|||||||
*//* write(o->datafd, data, 2352); */
|
*//* write(o->datafd, data, 2352); */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* so yeah, when you uncomment these, make them write zeros insted of crap
|
/* so yeah, when you uncomment these, make them write zeros instead of crap
|
||||||
static void write_empty_sector(int fd)
|
static void write_empty_sector(int fd)
|
||||||
{
|
{
|
||||||
static char sec[2352], initialized = 0;
|
static char sec[2352], initialized = 0;
|
||||||
|
@ -923,7 +923,7 @@ void process_q(struct burn_drive *d, unsigned char *q)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
||||||
/* ts A61009 : if reactivated then witout Assert */
|
/* ts A61009 : if reactivated then without Assert */
|
||||||
a ssert(0);
|
a ssert(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -144,7 +144,7 @@ int scsi_enumerate_drives(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Tells wether libburn has the given drive in use or exclusively reserved.
|
/** Tells whether libburn has the given drive in use or exclusively reserved.
|
||||||
If it is "open" then libburn will eventually call sg_release() on it when
|
If it is "open" then libburn will eventually call sg_release() on it when
|
||||||
it is time to give up usage and reservation.
|
it is time to give up usage and reservation.
|
||||||
*/
|
*/
|
||||||
@ -180,7 +180,7 @@ int sg_release(struct burn_drive *d)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Sends a SCSI command to the drive, receives reply and evaluates wether
|
/** Sends a SCSI command to the drive, receives reply and evaluates whether
|
||||||
the command succeeded or shall be retried or finally failed.
|
the command succeeded or shall be retried or finally failed.
|
||||||
Returned SCSI errors shall not lead to a return value indicating failure.
|
Returned SCSI errors shall not lead to a return value indicating failure.
|
||||||
The callers get notified by c->error. An SCSI failure which leads not to
|
The callers get notified by c->error. An SCSI failure which leads not to
|
||||||
@ -213,7 +213,7 @@ int sg_obtain_scsi_adr(char *path, int *bus_no, int *host_no, int *channel_no,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Tells wether a text is a persistent address as listed by the enumeration
|
/** Tells whether a text is a persistent address as listed by the enumeration
|
||||||
functions.
|
functions.
|
||||||
*/
|
*/
|
||||||
int sg_is_enumerable_adr(char *adr)
|
int sg_is_enumerable_adr(char *adr)
|
||||||
|
@ -47,8 +47,8 @@ sg_initialize() performs global initialization of the SCSI transport
|
|||||||
facilities. Checks for compatibility of supporting
|
facilities. Checks for compatibility of supporting
|
||||||
software components.
|
software components.
|
||||||
|
|
||||||
sg_shutdown() performs global finalizations and releases golbally
|
sg_shutdown() performs global finalizations and releases globally
|
||||||
aquired resources.
|
acquired resources.
|
||||||
|
|
||||||
sg_give_next_adr() iterates over the set of potentially useful drive
|
sg_give_next_adr() iterates over the set of potentially useful drive
|
||||||
address strings.
|
address strings.
|
||||||
@ -57,10 +57,10 @@ scsi_enumerate_drives() brings all available, not-whitelist-banned, and
|
|||||||
accessible drives into libburn's list of drives.
|
accessible drives into libburn's list of drives.
|
||||||
|
|
||||||
sg_dispose_drive() finalizes adapter specifics of struct burn_drive
|
sg_dispose_drive() finalizes adapter specifics of struct burn_drive
|
||||||
on destruction. Releases resources which were aquired
|
on destruction. Releases resources which were acquired
|
||||||
underneath scsi_enumerate_drives().
|
underneath scsi_enumerate_drives().
|
||||||
|
|
||||||
sg_drive_is_open() tells wether libburn has the given drive in use.
|
sg_drive_is_open() tells whether libburn has the given drive in use.
|
||||||
|
|
||||||
sg_grab() opens the drive for SCSI commands and ensures
|
sg_grab() opens the drive for SCSI commands and ensures
|
||||||
undisturbed access.
|
undisturbed access.
|
||||||
@ -68,7 +68,7 @@ sg_grab() opens the drive for SCSI commands and ensures
|
|||||||
sg_release() closes a drive opened by sg_grab()
|
sg_release() closes a drive opened by sg_grab()
|
||||||
|
|
||||||
sg_issue_command() sends a SCSI command to the drive, receives reply,
|
sg_issue_command() sends a SCSI command to the drive, receives reply,
|
||||||
and evaluates wether the command succeeded or shall
|
and evaluates whether the command succeeded or shall
|
||||||
be retried or finally failed.
|
be retried or finally failed.
|
||||||
|
|
||||||
sg_obtain_scsi_adr() tries to obtain SCSI address parameters.
|
sg_obtain_scsi_adr() tries to obtain SCSI address parameters.
|
||||||
@ -307,7 +307,7 @@ int sg_initialize(char msg[1024], int flag)
|
|||||||
|
|
||||||
|
|
||||||
/** Performs global finalization of the SCSI transport adapter and eventually
|
/** Performs global finalization of the SCSI transport adapter and eventually
|
||||||
needed operating system facilities. Releases globally aquired resources.
|
needed operating system facilities. Releases globally acquired resources.
|
||||||
@param flag unused yet, submit 0
|
@param flag unused yet, submit 0
|
||||||
@return 1 = success, <=0 = failure
|
@return 1 = success, <=0 = failure
|
||||||
*/
|
*/
|
||||||
@ -444,7 +444,7 @@ int scsi_enumerate_drives(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Tells wether libburn has the given drive in use or exclusively reserved.
|
/** Tells whether libburn has the given drive in use or exclusively reserved.
|
||||||
If it is "open" then libburn will eventually call sg_release() on it when
|
If it is "open" then libburn will eventually call sg_release() on it when
|
||||||
it is time to give up usage and reservation.
|
it is time to give up usage and reservation.
|
||||||
*/
|
*/
|
||||||
@ -485,7 +485,7 @@ int sg_grab(struct burn_drive *d)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** PORTING: Is mainly about the call to sg_close_drive() and wether it
|
/** PORTING: Is mainly about the call to sg_close_drive() and whether it
|
||||||
implements the demanded functionality.
|
implements the demanded functionality.
|
||||||
*/
|
*/
|
||||||
/** Gives up the drive for SCSI commands and releases eventual access locks.
|
/** Gives up the drive for SCSI commands and releases eventual access locks.
|
||||||
@ -500,7 +500,7 @@ int sg_release(struct burn_drive *d)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Sends a SCSI command to the drive, receives reply and evaluates wether
|
/** Sends a SCSI command to the drive, receives reply and evaluates whether
|
||||||
the command succeeded or shall be retried or finally failed.
|
the command succeeded or shall be retried or finally failed.
|
||||||
Returned SCSI errors shall not lead to a return value indicating failure.
|
Returned SCSI errors shall not lead to a return value indicating failure.
|
||||||
The callers get notified by c->error. An SCSI failure which leads not to
|
The callers get notified by c->error. An SCSI failure which leads not to
|
||||||
@ -647,7 +647,7 @@ int sg_obtain_scsi_adr(char *path, int *bus_no, int *host_no, int *channel_no,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Tells wether a text is a persistent address as listed by the enumeration
|
/** Tells whether a text is a persistent address as listed by the enumeration
|
||||||
functions.
|
functions.
|
||||||
*/
|
*/
|
||||||
int sg_is_enumerable_adr(char* adr)
|
int sg_is_enumerable_adr(char* adr)
|
||||||
|
@ -44,7 +44,7 @@ sg_initialize() performs global initialization of the SCSI transport
|
|||||||
facilities. Checks for compatibility of supporting
|
facilities. Checks for compatibility of supporting
|
||||||
software components.
|
software components.
|
||||||
|
|
||||||
sg_shutdown() performs global finalizations and releases golbally
|
sg_shutdown() performs global finalizations and releases globally
|
||||||
acquired resources.
|
acquired resources.
|
||||||
|
|
||||||
sg_give_next_adr() iterates over the set of potentially useful drive
|
sg_give_next_adr() iterates over the set of potentially useful drive
|
||||||
@ -57,7 +57,7 @@ sg_dispose_drive() finalizes adapter specifics of struct burn_drive
|
|||||||
on destruction. Releases resources which were acquired
|
on destruction. Releases resources which were acquired
|
||||||
underneath scsi_enumerate_drives().
|
underneath scsi_enumerate_drives().
|
||||||
|
|
||||||
sg_drive_is_open() tells wether libburn has the given drive in use.
|
sg_drive_is_open() tells whether libburn has the given drive in use.
|
||||||
|
|
||||||
sg_grab() opens the drive for SCSI commands and ensures
|
sg_grab() opens the drive for SCSI commands and ensures
|
||||||
undisturbed access.
|
undisturbed access.
|
||||||
@ -65,7 +65,7 @@ sg_grab() opens the drive for SCSI commands and ensures
|
|||||||
sg_release() closes a drive opened by sg_grab()
|
sg_release() closes a drive opened by sg_grab()
|
||||||
|
|
||||||
sg_issue_command() sends a SCSI command to the drive, receives reply,
|
sg_issue_command() sends a SCSI command to the drive, receives reply,
|
||||||
and evaluates wether the command succeeded or shall
|
and evaluates whether the command succeeded or shall
|
||||||
be retried or finally failed.
|
be retried or finally failed.
|
||||||
|
|
||||||
sg_obtain_scsi_adr() tries to obtain SCSI address parameters.
|
sg_obtain_scsi_adr() tries to obtain SCSI address parameters.
|
||||||
@ -609,7 +609,7 @@ int sg_release(struct burn_drive *d)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Sends a SCSI command to the drive, receives reply and evaluates wether
|
/** Sends a SCSI command to the drive, receives reply and evaluates whether
|
||||||
the command succeeded or shall be retried or finally failed.
|
the command succeeded or shall be retried or finally failed.
|
||||||
Returned SCSI errors shall not lead to a return value indicating failure.
|
Returned SCSI errors shall not lead to a return value indicating failure.
|
||||||
The callers get notified by c->error. An SCSI failure which leads not to
|
The callers get notified by c->error. An SCSI failure which leads not to
|
||||||
@ -768,7 +768,7 @@ int sg_obtain_scsi_adr(char *path, int *bus_no, int *host_no, int *channel_no,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Tells wether a text is a persistent address as listed by the enumeration
|
/** Tells whether a text is a persistent address as listed by the enumeration
|
||||||
functions.
|
functions.
|
||||||
*/
|
*/
|
||||||
int sg_is_enumerable_adr(char* adr)
|
int sg_is_enumerable_adr(char* adr)
|
||||||
|
@ -50,7 +50,7 @@ sg_initialize() performs global initialization of the SCSI transport
|
|||||||
facilities. Checks for compatibility of supporting
|
facilities. Checks for compatibility of supporting
|
||||||
software components.
|
software components.
|
||||||
|
|
||||||
sg_shutdown() performs global finalizations and releases golbally
|
sg_shutdown() performs global finalizations and releases globally
|
||||||
acquired resources.
|
acquired resources.
|
||||||
|
|
||||||
sg_give_next_adr() iterates over the set of potentially useful drive
|
sg_give_next_adr() iterates over the set of potentially useful drive
|
||||||
@ -63,7 +63,7 @@ sg_dispose_drive() finalizes adapter specifics of struct burn_drive
|
|||||||
on destruction. Releases resources which were acquired
|
on destruction. Releases resources which were acquired
|
||||||
underneath scsi_enumerate_drives().
|
underneath scsi_enumerate_drives().
|
||||||
|
|
||||||
sg_drive_is_open() tells wether libburn has the given drive in use.
|
sg_drive_is_open() tells whether libburn has the given drive in use.
|
||||||
|
|
||||||
sg_grab() opens the drive for SCSI commands and ensures
|
sg_grab() opens the drive for SCSI commands and ensures
|
||||||
undisturbed access.
|
undisturbed access.
|
||||||
@ -71,7 +71,7 @@ sg_grab() opens the drive for SCSI commands and ensures
|
|||||||
sg_release() closes a drive opened by sg_grab()
|
sg_release() closes a drive opened by sg_grab()
|
||||||
|
|
||||||
sg_issue_command() sends a SCSI command to the drive, receives reply,
|
sg_issue_command() sends a SCSI command to the drive, receives reply,
|
||||||
and evaluates wether the command succeeded or shall
|
and evaluates whether the command succeeded or shall
|
||||||
be retried or finally failed.
|
be retried or finally failed.
|
||||||
|
|
||||||
sg_obtain_scsi_adr() tries to obtain SCSI address parameters.
|
sg_obtain_scsi_adr() tries to obtain SCSI address parameters.
|
||||||
@ -216,7 +216,7 @@ static char linux_ata_device_family[80] = {"/dev/hd%c"};
|
|||||||
|
|
||||||
/* Set this to 1 in order to get on stderr messages from ata_enumerate()
|
/* Set this to 1 in order to get on stderr messages from ata_enumerate()
|
||||||
*/
|
*/
|
||||||
static int linux_ata_enumerate_verbous = 0;
|
static int linux_ata_enumerate_verbose = 0;
|
||||||
|
|
||||||
|
|
||||||
/** PORTING : ------ libburn portable headers and definitions ----- */
|
/** PORTING : ------ libburn portable headers and definitions ----- */
|
||||||
@ -287,7 +287,7 @@ int mmc_function_spy(struct burn_drive *d, char * text);
|
|||||||
/* ------------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------------ */
|
||||||
|
|
||||||
/* ts A70413 */
|
/* ts A70413 */
|
||||||
/* This finds out wether the software is running on kernel >= 2.6
|
/* This finds out whether the software is running on kernel >= 2.6
|
||||||
*/
|
*/
|
||||||
static void sg_evaluate_kernel(void)
|
static void sg_evaluate_kernel(void)
|
||||||
{
|
{
|
||||||
@ -305,7 +305,7 @@ static void sg_evaluate_kernel(void)
|
|||||||
|
|
||||||
|
|
||||||
/* ts A70314 */
|
/* ts A70314 */
|
||||||
/* This installs the device file family if one was chosen explicitely
|
/* This installs the device file family if one was chosen explicitly
|
||||||
by burn_preset_device_open()
|
by burn_preset_device_open()
|
||||||
*/
|
*/
|
||||||
static void sg_select_device_family(void)
|
static void sg_select_device_family(void)
|
||||||
@ -650,7 +650,7 @@ ex:;
|
|||||||
So libburn will by default use open(O_EXCL) first and afterwards
|
So libburn will by default use open(O_EXCL) first and afterwards
|
||||||
as second assertion will use fcntl(F_SETLK). One lock more should not harm.
|
as second assertion will use fcntl(F_SETLK). One lock more should not harm.
|
||||||
*/
|
*/
|
||||||
static int sg_fcntl_lock(int *fd, char *fd_name, int l_type, int verbous)
|
static int sg_fcntl_lock(int *fd, char *fd_name, int l_type, int verbose)
|
||||||
{
|
{
|
||||||
struct flock lockthing;
|
struct flock lockthing;
|
||||||
char msg[81];
|
char msg[81];
|
||||||
@ -671,7 +671,7 @@ static int sg_fcntl_lock(int *fd, char *fd_name, int l_type, int verbous)
|
|||||||
|
|
||||||
ret = fcntl(*fd, F_SETLK, &lockthing);
|
ret = fcntl(*fd, F_SETLK, &lockthing);
|
||||||
if (ret == -1) {
|
if (ret == -1) {
|
||||||
if (verbous) {
|
if (verbose) {
|
||||||
sprintf(msg, "Device busy. Failed to fcntl-lock '%s'",
|
sprintf(msg, "Device busy. Failed to fcntl-lock '%s'",
|
||||||
fd_name);
|
fd_name);
|
||||||
libdax_msgs_submit(libdax_messenger, -1, 0x00020008,
|
libdax_msgs_submit(libdax_messenger, -1, 0x00020008,
|
||||||
@ -919,7 +919,7 @@ static int is_ata_drive(char *fname, int fd_in)
|
|||||||
else
|
else
|
||||||
fd = sg_open_drive_fd(fname, 1);
|
fd = sg_open_drive_fd(fname, 1);
|
||||||
if (fd == -1) {
|
if (fd == -1) {
|
||||||
if (linux_ata_enumerate_verbous)
|
if (linux_ata_enumerate_verbose)
|
||||||
fprintf(stderr,"open failed, errno=%d '%s'\n",
|
fprintf(stderr,"open failed, errno=%d '%s'\n",
|
||||||
errno, strerror(errno));
|
errno, strerror(errno));
|
||||||
return 0;
|
return 0;
|
||||||
@ -930,7 +930,7 @@ static int is_ata_drive(char *fname, int fd_in)
|
|||||||
|
|
||||||
/* not atapi */
|
/* not atapi */
|
||||||
if (!(tm.config & 0x8000) || (tm.config & 0x4000)) {
|
if (!(tm.config & 0x8000) || (tm.config & 0x4000)) {
|
||||||
if (linux_ata_enumerate_verbous)
|
if (linux_ata_enumerate_verbose)
|
||||||
fprintf(stderr, "not marked as ATAPI\n");
|
fprintf(stderr, "not marked as ATAPI\n");
|
||||||
if (fd_in < 0)
|
if (fd_in < 0)
|
||||||
sg_close_drive_fd(fname, -1, &fd, 0);
|
sg_close_drive_fd(fname, -1, &fd, 0);
|
||||||
@ -940,7 +940,7 @@ static int is_ata_drive(char *fname, int fd_in)
|
|||||||
/* if SG_IO fails on an atapi device, we should stop trying to
|
/* if SG_IO fails on an atapi device, we should stop trying to
|
||||||
use hd* devices */
|
use hd* devices */
|
||||||
if (sgio_test(fd) == -1) {
|
if (sgio_test(fd) == -1) {
|
||||||
if (linux_ata_enumerate_verbous)
|
if (linux_ata_enumerate_verbose)
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"FATAL: sgio_test() failed: errno=%d '%s'\n",
|
"FATAL: sgio_test() failed: errno=%d '%s'\n",
|
||||||
errno, strerror(errno));
|
errno, strerror(errno));
|
||||||
@ -951,7 +951,7 @@ static int is_ata_drive(char *fname, int fd_in)
|
|||||||
if (fd_in >= 0)
|
if (fd_in >= 0)
|
||||||
return 1;
|
return 1;
|
||||||
if (sg_close_drive_fd(fname, -1, &fd, 1) <= 0) {
|
if (sg_close_drive_fd(fname, -1, &fd, 1) <= 0) {
|
||||||
if (linux_ata_enumerate_verbous)
|
if (linux_ata_enumerate_verbose)
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"cannot close properly, errno=%d '%s'\n",
|
"cannot close properly, errno=%d '%s'\n",
|
||||||
errno, strerror(errno));
|
errno, strerror(errno));
|
||||||
@ -1097,7 +1097,7 @@ static int sg_open_for_enumeration(char *fname, int flag)
|
|||||||
|
|
||||||
fd = sg_open_drive_fd(fname, 1 + (flag & 1));
|
fd = sg_open_drive_fd(fname, 1 + (flag & 1));
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
if (linux_sg_enumerate_debug || linux_ata_enumerate_verbous)
|
if (linux_sg_enumerate_debug || linux_ata_enumerate_verbose)
|
||||||
fprintf(stderr, "open failed, errno=%d '%s'\n",
|
fprintf(stderr, "open failed, errno=%d '%s'\n",
|
||||||
errno, strerror(errno));
|
errno, strerror(errno));
|
||||||
return -1;
|
return -1;
|
||||||
@ -1113,7 +1113,7 @@ static void ata_enumerate(void)
|
|||||||
int ret, i, fd = -1;
|
int ret, i, fd = -1;
|
||||||
char fname[10];
|
char fname[10];
|
||||||
|
|
||||||
if (linux_ata_enumerate_verbous)
|
if (linux_ata_enumerate_verbose)
|
||||||
fprintf(stderr, "libburn_debug: linux_ata_device_family = %s\n",
|
fprintf(stderr, "libburn_debug: linux_ata_device_family = %s\n",
|
||||||
linux_ata_device_family);
|
linux_ata_device_family);
|
||||||
|
|
||||||
@ -1122,12 +1122,12 @@ static void ata_enumerate(void)
|
|||||||
|
|
||||||
for (i = 0; i < 26; i++) {
|
for (i = 0; i < 26; i++) {
|
||||||
sprintf(fname, linux_ata_device_family, 'a' + i);
|
sprintf(fname, linux_ata_device_family, 'a' + i);
|
||||||
if (linux_ata_enumerate_verbous)
|
if (linux_ata_enumerate_verbose)
|
||||||
fprintf(stderr, "libburn_debug: %s : ", fname);
|
fprintf(stderr, "libburn_debug: %s : ", fname);
|
||||||
|
|
||||||
/* ts A51221 */
|
/* ts A51221 */
|
||||||
if (burn_drive_is_banned(fname)) {
|
if (burn_drive_is_banned(fname)) {
|
||||||
if (linux_ata_enumerate_verbous)
|
if (linux_ata_enumerate_verbose)
|
||||||
fprintf(stderr, "not in whitelist\n");
|
fprintf(stderr, "not in whitelist\n");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1139,7 +1139,7 @@ static void ata_enumerate(void)
|
|||||||
break;
|
break;
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
continue;
|
continue;
|
||||||
if (linux_ata_enumerate_verbous)
|
if (linux_ata_enumerate_verbose)
|
||||||
fprintf(stderr, "accepting as drive without SCSI address\n");
|
fprintf(stderr, "accepting as drive without SCSI address\n");
|
||||||
enumerate_common(fname, fd, -1, -1, -1, -1, -1);
|
enumerate_common(fname, fd, -1, -1, -1, -1, -1);
|
||||||
}
|
}
|
||||||
@ -1667,7 +1667,7 @@ int scsi_enumerate_drives(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Tells wether libburn has the given drive in use or exclusively reserved.
|
/** Tells whether libburn has the given drive in use or exclusively reserved.
|
||||||
If it is "open" then libburn will eventually call sg_release() on it when
|
If it is "open" then libburn will eventually call sg_release() on it when
|
||||||
it is time to give up usage and reservation.
|
it is time to give up usage and reservation.
|
||||||
*/
|
*/
|
||||||
@ -1722,7 +1722,7 @@ int sg_grab(struct burn_drive *d)
|
|||||||
/* ts A60813 - A60822
|
/* ts A60813 - A60822
|
||||||
After enumeration the drive fd is probably still open.
|
After enumeration the drive fd is probably still open.
|
||||||
-1337 is the initial value of burn_drive.fd and the value after
|
-1337 is the initial value of burn_drive.fd and the value after
|
||||||
relase of drive. Unclear why not the official error return
|
release of drive. Unclear why not the official error return
|
||||||
value -1 of open(2) war used. */
|
value -1 of open(2) war used. */
|
||||||
if(! burn_drive_is_open(d)) {
|
if(! burn_drive_is_open(d)) {
|
||||||
char msg[120];
|
char msg[120];
|
||||||
@ -1847,7 +1847,7 @@ drive_is_in_use:;
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** PORTING: Is mainly about the call to sg_close_drive() and wether it
|
/** PORTING: Is mainly about the call to sg_close_drive() and whether it
|
||||||
implements the demanded functionality.
|
implements the demanded functionality.
|
||||||
*/
|
*/
|
||||||
/** Gives up the drive for SCSI commands and releases eventual access locks.
|
/** Gives up the drive for SCSI commands and releases eventual access locks.
|
||||||
@ -2045,7 +2045,7 @@ static void react_on_drive_loss(struct burn_drive *d, struct command *c,
|
|||||||
scsi_log_message(d, fp, "--- SG_IO: Gave up connection to drive", 0);
|
scsi_log_message(d, fp, "--- SG_IO: Gave up connection to drive", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Sends a SCSI command to the drive, receives reply and evaluates wether
|
/** Sends a SCSI command to the drive, receives reply and evaluates whether
|
||||||
the command succeeded or shall be retried or finally failed.
|
the command succeeded or shall be retried or finally failed.
|
||||||
Returned SCSI errors shall not lead to a return value indicating failure.
|
Returned SCSI errors shall not lead to a return value indicating failure.
|
||||||
The callers get notified by c->error. An SCSI failure which leads not to
|
The callers get notified by c->error. An SCSI failure which leads not to
|
||||||
@ -2276,7 +2276,7 @@ static int sg_obtain_scsi_adr_fd(char *path, int fd_in,
|
|||||||
};
|
};
|
||||||
struct my_scsi_idlun idlun;
|
struct my_scsi_idlun idlun;
|
||||||
|
|
||||||
/* valgrind called idlun unitialized because it is blind for ioctl */
|
/* valgrind called idlun uninitialized because it is blind for ioctl */
|
||||||
idlun.x = 0;
|
idlun.x = 0;
|
||||||
idlun.host_unique_id = 0;
|
idlun.host_unique_id = 0;
|
||||||
|
|
||||||
@ -2345,7 +2345,7 @@ int sg_obtain_scsi_adr(char *path, int *bus_no, int *host_no, int *channel_no,
|
|||||||
|
|
||||||
|
|
||||||
/* ts A60922 ticket 33 : called from drive.c */
|
/* ts A60922 ticket 33 : called from drive.c */
|
||||||
/** Tells wether a text is a persistent address as listed by the enumeration
|
/** Tells whether a text is a persistent address as listed by the enumeration
|
||||||
functions.
|
functions.
|
||||||
*/
|
*/
|
||||||
int sg_is_enumerable_adr(char *adr)
|
int sg_is_enumerable_adr(char *adr)
|
||||||
|
@ -51,7 +51,7 @@ sg_initialize() performs global initialization of the SCSI transport
|
|||||||
facilities. Checks for compatibility of supporting
|
facilities. Checks for compatibility of supporting
|
||||||
software components.
|
software components.
|
||||||
|
|
||||||
sg_shutdown() performs global finalizations and releases golbally
|
sg_shutdown() performs global finalizations and releases globally
|
||||||
acquired resources.
|
acquired resources.
|
||||||
|
|
||||||
sg_give_next_adr() iterates over the set of potentially useful drive
|
sg_give_next_adr() iterates over the set of potentially useful drive
|
||||||
@ -64,7 +64,7 @@ sg_dispose_drive() finalizes adapter specifics of struct burn_drive
|
|||||||
on destruction. Releases resources which were acquired
|
on destruction. Releases resources which were acquired
|
||||||
underneath scsi_enumerate_drives().
|
underneath scsi_enumerate_drives().
|
||||||
|
|
||||||
sg_drive_is_open() tells wether libburn has the given drive in use.
|
sg_drive_is_open() tells whether libburn has the given drive in use.
|
||||||
|
|
||||||
sg_grab() opens the drive for SCSI commands and ensures
|
sg_grab() opens the drive for SCSI commands and ensures
|
||||||
undisturbed access.
|
undisturbed access.
|
||||||
@ -72,7 +72,7 @@ sg_grab() opens the drive for SCSI commands and ensures
|
|||||||
sg_release() closes a drive opened by sg_grab()
|
sg_release() closes a drive opened by sg_grab()
|
||||||
|
|
||||||
sg_issue_command() sends a SCSI command to the drive, receives reply,
|
sg_issue_command() sends a SCSI command to the drive, receives reply,
|
||||||
and evaluates wether the command succeeded or shall
|
and evaluates whether the command succeeded or shall
|
||||||
be retried or finally failed.
|
be retried or finally failed.
|
||||||
|
|
||||||
sg_obtain_scsi_adr() tries to obtain SCSI address parameters.
|
sg_obtain_scsi_adr() tries to obtain SCSI address parameters.
|
||||||
@ -525,7 +525,7 @@ int sg_release(struct burn_drive *d)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Sends a SCSI command to the drive, receives reply and evaluates wether
|
/** Sends a SCSI command to the drive, receives reply and evaluates whether
|
||||||
the command succeeded or shall be retried or finally failed.
|
the command succeeded or shall be retried or finally failed.
|
||||||
Returned SCSI errors shall not lead to a return value indicating failure.
|
Returned SCSI errors shall not lead to a return value indicating failure.
|
||||||
The callers get notified by c->error. An SCSI failure which leads not to
|
The callers get notified by c->error. An SCSI failure which leads not to
|
||||||
@ -721,7 +721,7 @@ ex:;
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Tells wether a text is a persistent address as listed by the enumeration
|
/** Tells whether a text is a persistent address as listed by the enumeration
|
||||||
functions.
|
functions.
|
||||||
*/
|
*/
|
||||||
int sg_is_enumerable_adr(char* adr)
|
int sg_is_enumerable_adr(char* adr)
|
||||||
|
@ -44,7 +44,7 @@ sg_initialize() performs global initialization of the SCSI transport
|
|||||||
facilities. Checks for compatibility of supporting
|
facilities. Checks for compatibility of supporting
|
||||||
software components.
|
software components.
|
||||||
|
|
||||||
sg_shutdown() performs global finalizations and releases golbally
|
sg_shutdown() performs global finalizations and releases globally
|
||||||
acquired resources.
|
acquired resources.
|
||||||
|
|
||||||
sg_give_next_adr() iterates over the set of potentially useful drive
|
sg_give_next_adr() iterates over the set of potentially useful drive
|
||||||
@ -57,7 +57,7 @@ sg_dispose_drive() finalizes adapter specifics of struct burn_drive
|
|||||||
on destruction. Releases resources which were acquired
|
on destruction. Releases resources which were acquired
|
||||||
underneath scsi_enumerate_drives().
|
underneath scsi_enumerate_drives().
|
||||||
|
|
||||||
sg_drive_is_open() tells wether libburn has the given drive in use.
|
sg_drive_is_open() tells whether libburn has the given drive in use.
|
||||||
|
|
||||||
sg_grab() opens the drive for SCSI commands and ensures
|
sg_grab() opens the drive for SCSI commands and ensures
|
||||||
undisturbed access.
|
undisturbed access.
|
||||||
@ -65,7 +65,7 @@ sg_grab() opens the drive for SCSI commands and ensures
|
|||||||
sg_release() closes a drive opened by sg_grab()
|
sg_release() closes a drive opened by sg_grab()
|
||||||
|
|
||||||
sg_issue_command() sends a SCSI command to the drive, receives reply,
|
sg_issue_command() sends a SCSI command to the drive, receives reply,
|
||||||
and evaluates wether the command succeeded or shall
|
and evaluates whether the command succeeded or shall
|
||||||
be retried or finally failed.
|
be retried or finally failed.
|
||||||
|
|
||||||
sg_obtain_scsi_adr() tries to obtain SCSI address parameters.
|
sg_obtain_scsi_adr() tries to obtain SCSI address parameters.
|
||||||
@ -690,7 +690,7 @@ int sg_release(struct burn_drive *d)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Sends a SCSI command to the drive, receives reply and evaluates wether
|
/** Sends a SCSI command to the drive, receives reply and evaluates whether
|
||||||
the command succeeded or shall be retried or finally failed.
|
the command succeeded or shall be retried or finally failed.
|
||||||
Returned SCSI errors shall not lead to a return value indicating failure.
|
Returned SCSI errors shall not lead to a return value indicating failure.
|
||||||
The callers get notified by c->error. An SCSI failure which leads not to
|
The callers get notified by c->error. An SCSI failure which leads not to
|
||||||
@ -837,7 +837,7 @@ int sg_obtain_scsi_adr(char *path, int *bus_no, int *host_no, int *channel_no,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Tells wether a text is a persistent address as listed by the enumeration
|
/** Tells whether a text is a persistent address as listed by the enumeration
|
||||||
functions.
|
functions.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -1056,7 +1056,7 @@ void spc_probe_write_modes(struct burn_drive *d)
|
|||||||
struct buffer *buf = NULL;
|
struct buffer *buf = NULL;
|
||||||
int try_write_type = 1;
|
int try_write_type = 1;
|
||||||
int try_block_type = 0;
|
int try_block_type = 0;
|
||||||
int key, asc, ascq, useable_write_type = -1, useable_block_type = -1;
|
int key, asc, ascq, usable_write_type = -1, usable_block_type = -1;
|
||||||
int last_try = 0;
|
int last_try = 0;
|
||||||
struct command *c = NULL;
|
struct command *c = NULL;
|
||||||
|
|
||||||
@ -1071,11 +1071,11 @@ void spc_probe_write_modes(struct burn_drive *d)
|
|||||||
while (try_write_type != 5) {
|
while (try_write_type != 5) {
|
||||||
/* ts A70213 */
|
/* ts A70213 */
|
||||||
if (try_write_type == 4) {
|
if (try_write_type == 4) {
|
||||||
/* Pseudo write type NONE . Set a useable write mode */
|
/* Pseudo write type NONE . Set a usable write mode */
|
||||||
if (useable_write_type == -1)
|
if (usable_write_type == -1)
|
||||||
break;
|
break;
|
||||||
try_write_type = useable_write_type;
|
try_write_type = usable_write_type;
|
||||||
try_block_type = useable_block_type;
|
try_block_type = usable_block_type;
|
||||||
last_try= 1;
|
last_try= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1118,12 +1118,12 @@ void spc_probe_write_modes(struct burn_drive *d)
|
|||||||
1 << try_block_type;
|
1 << try_block_type;
|
||||||
|
|
||||||
/* ts A70213 */
|
/* ts A70213 */
|
||||||
if ((useable_write_type < 0 && try_write_type > 0) ||
|
if ((usable_write_type < 0 && try_write_type > 0) ||
|
||||||
(try_write_type == 1 && try_block_type == 8)) {
|
(try_write_type == 1 && try_block_type == 8)) {
|
||||||
/* Packet is not supported yet.
|
/* Packet is not supported yet.
|
||||||
Prefer TAO MODE_1. */
|
Prefer TAO MODE_1. */
|
||||||
useable_write_type = try_write_type;
|
usable_write_type = try_write_type;
|
||||||
useable_block_type = try_block_type;
|
usable_block_type = try_block_type;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch (try_block_type) {
|
switch (try_block_type) {
|
||||||
|
@ -53,7 +53,7 @@ struct burn_track
|
|||||||
/** 1 means Pad with zeros, 0 means start reading the next track */
|
/** 1 means Pad with zeros, 0 means start reading the next track */
|
||||||
int pad;
|
int pad;
|
||||||
|
|
||||||
/* ts A70213 : wether to expand this track to full available media */
|
/* ts A70213 : whether to expand this track to full available media */
|
||||||
int fill_up_media;
|
int fill_up_media;
|
||||||
|
|
||||||
/* ts A70218 : a track size to use if it is mandarory to have some */
|
/* ts A70218 : a track size to use if it is mandarory to have some */
|
||||||
@ -137,7 +137,7 @@ struct burn_session
|
|||||||
unsigned char cdtext_language[8];
|
unsigned char cdtext_language[8];
|
||||||
|
|
||||||
/* ts B11226 */
|
/* ts B11226 */
|
||||||
unsigned char mediacatalog[14]; /* overrideable by burn_write_opts */
|
unsigned char mediacatalog[14]; /* overridable by burn_write_opts */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct burn_disc
|
struct burn_disc
|
||||||
|
@ -277,7 +277,7 @@ struct burn_drive
|
|||||||
(which could need closing after write) */
|
(which could need closing after write) */
|
||||||
int needs_close_session;
|
int needs_close_session;
|
||||||
/* ts A71003 : whether a random write operation was done and no
|
/* ts A71003 : whether a random write operation was done and no
|
||||||
synchronize chache has happened yet */
|
synchronize cache has happened yet */
|
||||||
int needs_sync_cache;
|
int needs_sync_cache;
|
||||||
|
|
||||||
/* ts A80412 : whether to use WRITE12 with Streaming bit set
|
/* ts A80412 : whether to use WRITE12 with Streaming bit set
|
||||||
|
@ -723,7 +723,7 @@ struct cue_sheet *burn_create_toc_entries(struct burn_write_opts *o,
|
|||||||
runtime += 150;
|
runtime += 150;
|
||||||
} else if (pform != form) {
|
} else if (pform != form) {
|
||||||
|
|
||||||
/* ts A70121 : This seems to be thw wrong test. Correct would
|
/* ts A70121 : This seems to be the wrong test. Correct would
|
||||||
be to compare tar[]->mode or bit2 of ctladr.
|
be to compare tar[]->mode or bit2 of ctladr.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -2097,7 +2097,7 @@ int burn_dvd_write_session(struct burn_write_opts *o,
|
|||||||
is not readable.
|
is not readable.
|
||||||
|
|
||||||
By default the open session gets closed here before the new
|
By default the open session gets closed here before the new
|
||||||
session is written. E.g. after writing a small dummy seesion
|
session is written. E.g. after writing a small dummy session
|
||||||
number 2 one can read session 1 and write session 3 which
|
number 2 one can read session 1 and write session 3 which
|
||||||
points to data of session 1.
|
points to data of session 1.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user