fewer error exits in drivers. Instead, a failure code is returned.
This commit is contained in:
5
NEWS
5
NEWS
@@ -5,10 +5,11 @@
|
|||||||
- Redo types of lsn and lba to allow negative values. Should model MMC3
|
- Redo types of lsn and lba to allow negative values. Should model MMC3
|
||||||
specs. Add max/min values for lsn.
|
specs. Add max/min values for lsn.
|
||||||
- More complete MMC command set
|
- More complete MMC command set
|
||||||
- FreeBSD drive reading works better (thanks to Heiner)
|
- FreeBSD driver ioctl and CAM reading works better (thanks to Heiner)
|
||||||
- OSX drive reading works better (thanks to Justin F. Hallett)
|
- OSX drive reading works better (thanks to Justin F. Hallett)
|
||||||
- cd-read allows dumping bytes to stdout and hexdumps to a file
|
- cd-read allows dumping bytes to stdout and hexdumps to a file
|
||||||
via options --no-hexdump and --hexdump
|
via options --no-hexdump and --hexdump
|
||||||
|
- fewer error exits in drivers. Instead, a failure code is returned.
|
||||||
- better NRG reading (thanks to Michael Kukat via extractnrg.pl)
|
- better NRG reading (thanks to Michael Kukat via extractnrg.pl)
|
||||||
- better tracking of allocated variables (cd-read, cd-info, FreeBSD)
|
- better tracking of allocated variables (cd-read, cd-info, FreeBSD)
|
||||||
- iso9660: Add interface to read PVD and pick out some of the fields in that.
|
- iso9660: Add interface to read PVD and pick out some of the fields in that.
|
||||||
@@ -122,4 +123,4 @@
|
|||||||
0.1
|
0.1
|
||||||
Routines split off from VCDImager.
|
Routines split off from VCDImager.
|
||||||
|
|
||||||
$Id: NEWS,v 1.46 2004/06/23 02:25:37 rocky Exp $
|
$Id: NEWS,v 1.47 2004/06/25 21:10:36 rocky Exp $
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
$Id: _cdio_bsdi.c,v 1.26 2004/06/03 12:37:54 rocky Exp $
|
$Id: _cdio_bsdi.c,v 1.27 2004/06/25 21:10:43 rocky Exp $
|
||||||
|
|
||||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
# include "config.h"
|
# include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const char _rcsid[] = "$Id: _cdio_bsdi.c,v 1.26 2004/06/03 12:37:54 rocky Exp $";
|
static const char _rcsid[] = "$Id: _cdio_bsdi.c,v 1.27 2004/06/25 21:10:43 rocky Exp $";
|
||||||
|
|
||||||
#include <cdio/sector.h>
|
#include <cdio/sector.h>
|
||||||
#include <cdio/util.h>
|
#include <cdio/util.h>
|
||||||
@@ -122,7 +122,7 @@ static bool
|
|||||||
_cdio_init (_img_private_t *env)
|
_cdio_init (_img_private_t *env)
|
||||||
{
|
{
|
||||||
if (env->gen.init) {
|
if (env->gen.init) {
|
||||||
cdio_error ("init called more than once");
|
cdio_warn ("init called more than once");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,7 +130,7 @@ _cdio_init (_img_private_t *env)
|
|||||||
|
|
||||||
if (env->gen.fd < 0)
|
if (env->gen.fd < 0)
|
||||||
{
|
{
|
||||||
cdio_error ("open (%s): %s", env->source_name, strerror (errno));
|
cdio_warn ("open (%s): %s", env->source_name, strerror (errno));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,7 +173,7 @@ _read_audio_sectors_bsdi (void *user_data, void *data, lsn_t lsn,
|
|||||||
|
|
||||||
switch (env->access_mode) {
|
switch (env->access_mode) {
|
||||||
case _AM_NONE:
|
case _AM_NONE:
|
||||||
cdio_error ("no way to read audio");
|
cdio_warn ("no way to read audio");
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -277,7 +277,7 @@ _read_mode2_sector_bsdi (void *user_data, void *data, lsn_t lsn,
|
|||||||
switch (env->access_mode)
|
switch (env->access_mode)
|
||||||
{
|
{
|
||||||
case _AM_NONE:
|
case _AM_NONE:
|
||||||
cdio_error ("no way to read mode2");
|
cdio_warn ("no way to read mode2");
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -369,7 +369,7 @@ _set_arg_bsdi (void *user_data, const char key[], const char value[])
|
|||||||
if (!strcmp(value, "IOCTL"))
|
if (!strcmp(value, "IOCTL"))
|
||||||
env->access_mode = _AM_IOCTL;
|
env->access_mode = _AM_IOCTL;
|
||||||
else
|
else
|
||||||
cdio_error ("unknown access type: %s. ignored.", value);
|
cdio_warn ("unknown access type: %s. ignored.", value);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return -1;
|
return -1;
|
||||||
@@ -388,7 +388,7 @@ _cdio_read_toc (_img_private_t *env)
|
|||||||
|
|
||||||
/* read TOC header */
|
/* read TOC header */
|
||||||
if ( ioctl(env->gen.fd, CDROMREADTOCHDR, &env->tochdr) == -1 ) {
|
if ( ioctl(env->gen.fd, CDROMREADTOCHDR, &env->tochdr) == -1 ) {
|
||||||
cdio_error("%s: %s\n",
|
cdio_warn("%s: %s\n",
|
||||||
"error in ioctl CDROMREADTOCHDR", strerror(errno));
|
"error in ioctl CDROMREADTOCHDR", strerror(errno));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -398,7 +398,7 @@ _cdio_read_toc (_img_private_t *env)
|
|||||||
env->tocent[i-1].cdte_track = i;
|
env->tocent[i-1].cdte_track = i;
|
||||||
env->tocent[i-1].cdte_format = CDROM_MSF;
|
env->tocent[i-1].cdte_format = CDROM_MSF;
|
||||||
if ( ioctl(env->gen.fd, CDROMREADTOCENTRY, &env->tocent[i-1]) == -1 ) {
|
if ( ioctl(env->gen.fd, CDROMREADTOCENTRY, &env->tocent[i-1]) == -1 ) {
|
||||||
cdio_error("%s %d: %s\n",
|
cdio_warn("%s %d: %s\n",
|
||||||
"error in ioctl CDROMREADTOCENTRY for track",
|
"error in ioctl CDROMREADTOCENTRY for track",
|
||||||
i, strerror(errno));
|
i, strerror(errno));
|
||||||
return false;
|
return false;
|
||||||
@@ -418,7 +418,7 @@ _cdio_read_toc (_img_private_t *env)
|
|||||||
|
|
||||||
if (ioctl(env->gen.fd, CDROMREADTOCENTRY,
|
if (ioctl(env->gen.fd, CDROMREADTOCENTRY,
|
||||||
&env->tocent[TOTAL_TRACKS]) == -1 ) {
|
&env->tocent[TOTAL_TRACKS]) == -1 ) {
|
||||||
cdio_error("%s: %s\n",
|
cdio_warn("%s: %s\n",
|
||||||
"error in ioctl CDROMREADTOCENTRY for lead-out",
|
"error in ioctl CDROMREADTOCENTRY for lead-out",
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
return false;
|
return false;
|
||||||
@@ -453,18 +453,18 @@ _eject_media_bsdi (void *user_data) {
|
|||||||
switch(status) {
|
switch(status) {
|
||||||
case CDS_TRAY_OPEN:
|
case CDS_TRAY_OPEN:
|
||||||
if((ret = ioctl(fd, CDROMCLOSETRAY, 0)) != 0) {
|
if((ret = ioctl(fd, CDROMCLOSETRAY, 0)) != 0) {
|
||||||
cdio_error ("ioctl CDROMCLOSETRAY failed: %s\n", strerror(errno));
|
cdio_warn ("ioctl CDROMCLOSETRAY failed: %s\n", strerror(errno));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CDS_DISC_OK:
|
case CDS_DISC_OK:
|
||||||
if((ret = ioctl(fd, CDROMEJECT, 0)) != 0) {
|
if((ret = ioctl(fd, CDROMEJECT, 0)) != 0) {
|
||||||
cdio_error("ioctl CDROMEJECT failed: %s\n", strerror(errno));
|
cdio_warn("ioctl CDROMEJECT failed: %s\n", strerror(errno));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ret=0;
|
ret=0;
|
||||||
} else {
|
} else {
|
||||||
cdio_error ("CDROM_DRIVE_STATUS failed: %s\n", strerror(errno));
|
cdio_warn ("CDROM_DRIVE_STATUS failed: %s\n", strerror(errno));
|
||||||
ret=1;
|
ret=1;
|
||||||
}
|
}
|
||||||
close(fd);
|
close(fd);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
$Id: _cdio_generic.c,v 1.17 2004/06/19 19:15:15 rocky Exp $
|
$Id: _cdio_generic.c,v 1.18 2004/06/25 21:10:43 rocky Exp $
|
||||||
|
|
||||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
# include "config.h"
|
# include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const char _rcsid[] = "$Id: _cdio_generic.c,v 1.17 2004/06/19 19:15:15 rocky Exp $";
|
static const char _rcsid[] = "$Id: _cdio_generic.c,v 1.18 2004/06/25 21:10:43 rocky Exp $";
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -86,7 +86,7 @@ cdio_generic_init (void *user_data)
|
|||||||
{
|
{
|
||||||
generic_img_private_t *_env = user_data;
|
generic_img_private_t *_env = user_data;
|
||||||
if (_env->init) {
|
if (_env->init) {
|
||||||
cdio_error ("init called more than once");
|
cdio_warn ("init called more than once");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
$Id: _cdio_linux.c,v 1.55 2004/06/06 11:44:51 rocky Exp $
|
$Id: _cdio_linux.c,v 1.56 2004/06/25 21:10:43 rocky Exp $
|
||||||
|
|
||||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
# include "config.h"
|
# include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.55 2004/06/06 11:44:51 rocky Exp $";
|
static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.56 2004/06/25 21:10:43 rocky Exp $";
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@@ -397,7 +397,7 @@ _read_mode1_sector_linux (void *env, void *data, lsn_t lsn,
|
|||||||
switch (_obj->access_mode)
|
switch (_obj->access_mode)
|
||||||
{
|
{
|
||||||
case _AM_NONE:
|
case _AM_NONE:
|
||||||
cdio_error ("no way to read mode1");
|
cdio_warn ("no way to read mode1");
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -492,7 +492,7 @@ _read_mode2_sector_linux (void *user_data, void *data, lsn_t lsn,
|
|||||||
switch (env->access_mode)
|
switch (env->access_mode)
|
||||||
{
|
{
|
||||||
case _AM_NONE:
|
case _AM_NONE:
|
||||||
cdio_error ("no way to read mode2");
|
cdio_warn ("no way to read mode2");
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -627,7 +627,7 @@ _cdio_read_toc (_img_private_t *env)
|
|||||||
|
|
||||||
/* read TOC header */
|
/* read TOC header */
|
||||||
if ( ioctl(env->gen.fd, CDROMREADTOCHDR, &env->tochdr) == -1 ) {
|
if ( ioctl(env->gen.fd, CDROMREADTOCHDR, &env->tochdr) == -1 ) {
|
||||||
cdio_error("%s: %s\n",
|
cdio_warn("%s: %s\n",
|
||||||
"error in ioctl CDROMREADTOCHDR", strerror(errno));
|
"error in ioctl CDROMREADTOCHDR", strerror(errno));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -638,7 +638,7 @@ _cdio_read_toc (_img_private_t *env)
|
|||||||
env->tocent[i-FIRST_TRACK_NUM].cdte_format = CDROM_MSF;
|
env->tocent[i-FIRST_TRACK_NUM].cdte_format = CDROM_MSF;
|
||||||
if ( ioctl(env->gen.fd, CDROMREADTOCENTRY,
|
if ( ioctl(env->gen.fd, CDROMREADTOCENTRY,
|
||||||
&env->tocent[i-FIRST_TRACK_NUM]) == -1 ) {
|
&env->tocent[i-FIRST_TRACK_NUM]) == -1 ) {
|
||||||
cdio_error("%s %d: %s\n",
|
cdio_warn("%s %d: %s\n",
|
||||||
"error in ioctl CDROMREADTOCENTRY for track",
|
"error in ioctl CDROMREADTOCENTRY for track",
|
||||||
i, strerror(errno));
|
i, strerror(errno));
|
||||||
return false;
|
return false;
|
||||||
@@ -658,7 +658,7 @@ _cdio_read_toc (_img_private_t *env)
|
|||||||
|
|
||||||
if (ioctl(env->gen.fd, CDROMREADTOCENTRY,
|
if (ioctl(env->gen.fd, CDROMREADTOCENTRY,
|
||||||
&env->tocent[TOTAL_TRACKS]) == -1 ) {
|
&env->tocent[TOTAL_TRACKS]) == -1 ) {
|
||||||
cdio_error("%s: %s\n",
|
cdio_warn("%s: %s\n",
|
||||||
"error in ioctl CDROMREADTOCENTRY for lead-out",
|
"error in ioctl CDROMREADTOCENTRY for lead-out",
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
return false;
|
return false;
|
||||||
@@ -748,7 +748,7 @@ _eject_media_linux (void *user_data) {
|
|||||||
switch(status) {
|
switch(status) {
|
||||||
case CDS_TRAY_OPEN:
|
case CDS_TRAY_OPEN:
|
||||||
if((ret = ioctl(fd, CDROMCLOSETRAY)) != 0) {
|
if((ret = ioctl(fd, CDROMCLOSETRAY)) != 0) {
|
||||||
cdio_error ("ioctl CDROMCLOSETRAY failed: %s\n", strerror(errno));
|
cdio_warn ("ioctl CDROMCLOSETRAY failed: %s\n", strerror(errno));
|
||||||
ret = 1;
|
ret = 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -758,17 +758,17 @@ _eject_media_linux (void *user_data) {
|
|||||||
/* Try ejecting the MMC way... */
|
/* Try ejecting the MMC way... */
|
||||||
ret = _eject_media_mmc(fd);
|
ret = _eject_media_mmc(fd);
|
||||||
if (0 != ret) {
|
if (0 != ret) {
|
||||||
cdio_error("ioctl CDROMEJECT failed: %s\n", strerror(eject_error));
|
cdio_warn("ioctl CDROMEJECT failed: %s\n", strerror(eject_error));
|
||||||
ret = 1;
|
ret = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
cdio_error ("Unknown CD-ROM (%d)\n", status);
|
cdio_warn ("Unknown CD-ROM (%d)\n", status);
|
||||||
ret = 1;
|
ret = 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
cdio_error ("CDROM_DRIVE_STATUS failed: %s\n", strerror(errno));
|
cdio_warn ("CDROM_DRIVE_STATUS failed: %s\n", strerror(errno));
|
||||||
ret=1;
|
ret=1;
|
||||||
}
|
}
|
||||||
close(fd);
|
close(fd);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
$Id: _cdio_sunos.c,v 1.39 2004/06/13 20:38:58 rocky Exp $
|
$Id: _cdio_sunos.c,v 1.40 2004/06/25 21:10:44 rocky Exp $
|
||||||
|
|
||||||
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
#ifdef HAVE_SOLARIS_CDROM
|
#ifdef HAVE_SOLARIS_CDROM
|
||||||
|
|
||||||
static const char _rcsid[] = "$Id: _cdio_sunos.c,v 1.39 2004/06/13 20:38:58 rocky Exp $";
|
static const char _rcsid[] = "$Id: _cdio_sunos.c,v 1.40 2004/06/25 21:10:44 rocky Exp $";
|
||||||
|
|
||||||
#ifdef HAVE_GLOB_H
|
#ifdef HAVE_GLOB_H
|
||||||
#include <glob.h>
|
#include <glob.h>
|
||||||
@@ -371,7 +371,7 @@ _cdio_read_toc (_img_private_t *env)
|
|||||||
|
|
||||||
/* read TOC header */
|
/* read TOC header */
|
||||||
if ( ioctl(env->gen.fd, CDROMREADTOCHDR, &env->tochdr) == -1 ) {
|
if ( ioctl(env->gen.fd, CDROMREADTOCHDR, &env->tochdr) == -1 ) {
|
||||||
cdio_error("%s: %s\n",
|
cdio_warn("%s: %s\n",
|
||||||
"error in ioctl CDROMREADTOCHDR", strerror(errno));
|
"error in ioctl CDROMREADTOCHDR", strerror(errno));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -381,7 +381,7 @@ _cdio_read_toc (_img_private_t *env)
|
|||||||
env->tocent[i-1].cdte_track = i;
|
env->tocent[i-1].cdte_track = i;
|
||||||
env->tocent[i-1].cdte_format = CDROM_MSF;
|
env->tocent[i-1].cdte_format = CDROM_MSF;
|
||||||
if ( ioctl(env->gen.fd, CDROMREADTOCENTRY, &env->tocent[i-1]) == -1 ) {
|
if ( ioctl(env->gen.fd, CDROMREADTOCENTRY, &env->tocent[i-1]) == -1 ) {
|
||||||
cdio_error("%s %d: %s\n",
|
cdio_warn("%s %d: %s\n",
|
||||||
"error in ioctl CDROMREADTOCENTRY for track",
|
"error in ioctl CDROMREADTOCENTRY for track",
|
||||||
i, strerror(errno));
|
i, strerror(errno));
|
||||||
return false;
|
return false;
|
||||||
@@ -394,7 +394,7 @@ _cdio_read_toc (_img_private_t *env)
|
|||||||
|
|
||||||
if (ioctl(env->gen.fd, CDROMREADTOCENTRY,
|
if (ioctl(env->gen.fd, CDROMREADTOCENTRY,
|
||||||
&env->tocent[env->tochdr.cdth_trk1]) == -1 ) {
|
&env->tocent[env->tochdr.cdth_trk1]) == -1 ) {
|
||||||
cdio_error("%s: %s\n",
|
cdio_warn("%s: %s\n",
|
||||||
"error in ioctl CDROMREADTOCENTRY for lead-out",
|
"error in ioctl CDROMREADTOCENTRY for lead-out",
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
return false;
|
return false;
|
||||||
@@ -419,7 +419,7 @@ _cdio_eject_media (void *user_data) {
|
|||||||
if (env->gen.fd > -1) {
|
if (env->gen.fd > -1) {
|
||||||
if ((ret = ioctl(env->gen.fd, CDROMEJECT)) != 0) {
|
if ((ret = ioctl(env->gen.fd, CDROMEJECT)) != 0) {
|
||||||
cdio_generic_free((void *) env);
|
cdio_generic_free((void *) env);
|
||||||
cdio_error ("CDROMEJECT failed: %s\n", strerror(errno));
|
cdio_warn ("CDROMEJECT failed: %s\n", strerror(errno));
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
@@ -436,7 +436,7 @@ _cdio_malloc_and_zero(size_t size) {
|
|||||||
if( !size ) size++;
|
if( !size ) size++;
|
||||||
|
|
||||||
if((ptr = malloc(size)) == NULL) {
|
if((ptr = malloc(size)) == NULL) {
|
||||||
cdio_error("malloc() failed: %s", strerror(errno));
|
cdio_warn("malloc() failed: %s", strerror(errno));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user