Move forward in getting better ISO-9660 reading by eliminating "Mode 1/2"

specification in API.
This commit is contained in:
rocky
2005-02-17 07:03:36 +00:00
parent 800f675288
commit da62695b60
14 changed files with 73 additions and 65 deletions

View File

@@ -1,5 +1,5 @@
/* /*
$Id: mmc.h,v 1.10 2005/02/17 04:57:21 rocky Exp $ $Id: mmc.h,v 1.11 2005/02/17 07:03:36 rocky Exp $
Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -610,11 +610,13 @@ mmc_read_cd ( const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn,
M2RAW_SECTOR_SIZE. M2RAW_SECTOR_SIZE.
@param i_lsn sector to read @param i_lsn sector to read
@param i_blocksize
*/ */
driver_return_code_t mmc_read_data_sector ( CdIo_t *p_cdio, void *p_buf, driver_return_code_t mmc_read_data_sectors ( CdIo_t *p_cdio, void *p_buf,
lsn_t i_lsn, lsn_t i_lsn,
uint16_t i_blocksize ); uint16_t i_blocksize,
uint32_t i_blocks );
/*! issue a MMC read mode2 sectors. - depricated. /*! issue a MMC read mode2 sectors. - depricated.
*/ */

View File

@@ -1,5 +1,5 @@
/* -*- c -*- /* -*- c -*-
$Id: read.h,v 1.4 2005/02/17 04:57:21 rocky Exp $ $Id: read.h,v 1.5 2005/02/17 07:03:37 rocky Exp $
Copyright (C) 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2005 Rocky Bernstein <rocky@panix.com>
@@ -98,10 +98,10 @@ extern "C" {
@param i_blocksize size of block. Should be either CDIO_CD_FRAMESIZE, @param i_blocksize size of block. Should be either CDIO_CD_FRAMESIZE,
M2RAW_SECTOR_SIZE, or M2F2_SECTOR_SIZE. See comment above under p_buf. M2RAW_SECTOR_SIZE, or M2F2_SECTOR_SIZE. See comment above under p_buf.
*/ */
driver_return_code_t cdio_read_data_sector (const CdIo_t *p_cdio, driver_return_code_t cdio_read_data_sectors ( const CdIo_t *p_cdio,
void *p_buf, lsn_t i_lsn, void *p_buf, lsn_t i_lsn,
uint16_t i_blocksize uint16_t i_blocksize,
); uint32_t i_blocks );
/*! /*!
Reads a mode 1 sector Reads a mode 1 sector

View File

@@ -1,5 +1,5 @@
/* /*
$Id: _cdio_linux.c,v 1.25 2005/02/17 04:57:21 rocky Exp $ $Id: _cdio_linux.c,v 1.26 2005/02/17 07:03:37 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, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2002, 2003, 2004, 2005 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.25 2005/02/17 04:57:21 rocky Exp $"; static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.26 2005/02/17 07:03:37 rocky Exp $";
#include <string.h> #include <string.h>
@@ -1189,7 +1189,7 @@ cdio_open_am_linux (const char *psz_orig_source, const char *access_mode)
.lseek = cdio_generic_lseek, .lseek = cdio_generic_lseek,
.read = cdio_generic_read, .read = cdio_generic_read,
.read_audio_sectors = _read_audio_sectors_linux, .read_audio_sectors = _read_audio_sectors_linux,
.read_data_sector = read_data_sector_mmc, .read_data_sectors = read_data_sectors_mmc,
.read_mode1_sector = _read_mode1_sector_linux, .read_mode1_sector = _read_mode1_sector_linux,
.read_mode1_sectors = _read_mode1_sectors_linux, .read_mode1_sectors = _read_mode1_sectors_linux,
.read_mode2_sector = _read_mode2_sector_linux, .read_mode2_sector = _read_mode2_sector_linux,

View File

@@ -1,5 +1,5 @@
/* /*
$Id: cdio_private.h,v 1.15 2005/02/17 04:57:21 rocky Exp $ $Id: cdio_private.h,v 1.16 2005/02/17 07:03:37 rocky Exp $
Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -254,9 +254,10 @@ extern "C" {
@param i_blocksize size of block. Should be either CDIO_CD_FRAMESIZE, @param i_blocksize size of block. Should be either CDIO_CD_FRAMESIZE,
M2RAW_SECTOR_SIZE, or M2F2_SECTOR_SIZE. See comment above under p_buf. M2RAW_SECTOR_SIZE, or M2F2_SECTOR_SIZE. See comment above under p_buf.
*/ */
driver_return_code_t (*read_data_sector) (void *p_env, void *p_buf, driver_return_code_t (*read_data_sectors) (void *p_env, void *p_buf,
lsn_t i_lsn, lsn_t i_lsn,
uint16_t i_blocksize); uint16_t i_blocksize,
uint32_t i_blocks);
/*! /*!
Reads a single mode2 sector from cd device into buf starting Reads a single mode2 sector from cd device into buf starting

View File

@@ -1,5 +1,5 @@
/* /*
$Id: bincue.c,v 1.14 2005/02/17 04:57:21 rocky Exp $ $Id: bincue.c,v 1.15 2005/02/17 07:03:37 rocky Exp $
Copyright (C) 2002, 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2002, 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org> Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
@@ -26,7 +26,7 @@
(*.cue). (*.cue).
*/ */
static const char _rcsid[] = "$Id: bincue.c,v 1.14 2005/02/17 04:57:21 rocky Exp $"; static const char _rcsid[] = "$Id: bincue.c,v 1.15 2005/02/17 07:03:37 rocky Exp $";
#include "image.h" #include "image.h"
#include "cdio_assert.h" #include "cdio_assert.h"
@@ -1159,7 +1159,7 @@ cdio_open_cue (const char *psz_cue_name)
_funcs.lseek = _lseek_bincue; _funcs.lseek = _lseek_bincue;
_funcs.read = _read_bincue; _funcs.read = _read_bincue;
_funcs.read_audio_sectors = _read_audio_sectors_bincue; _funcs.read_audio_sectors = _read_audio_sectors_bincue;
_funcs.read_data_sector = read_data_sector_image; _funcs.read_data_sectors = read_data_sectors_image;
_funcs.read_mode1_sector = _read_mode1_sector_bincue; _funcs.read_mode1_sector = _read_mode1_sector_bincue;
_funcs.read_mode1_sectors = _read_mode1_sectors_bincue; _funcs.read_mode1_sectors = _read_mode1_sectors_bincue;
_funcs.read_mode2_sector = _read_mode2_sector_bincue; _funcs.read_mode2_sector = _read_mode2_sector_bincue;

View File

@@ -1,5 +1,5 @@
/* /*
$Id: cdrdao.c,v 1.15 2005/02/17 04:57:21 rocky Exp $ $Id: cdrdao.c,v 1.16 2005/02/17 07:03:37 rocky Exp $
Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com>
toc reading routine adapted from cuetools toc reading routine adapted from cuetools
@@ -25,7 +25,7 @@
(*.cue). (*.cue).
*/ */
static const char _rcsid[] = "$Id: cdrdao.c,v 1.15 2005/02/17 04:57:21 rocky Exp $"; static const char _rcsid[] = "$Id: cdrdao.c,v 1.16 2005/02/17 07:03:37 rocky Exp $";
#include "image.h" #include "image.h"
#include "cdio_assert.h" #include "cdio_assert.h"
@@ -1286,7 +1286,7 @@ cdio_open_cdrdao (const char *psz_cue_name)
_funcs.lseek = _lseek_cdrdao; _funcs.lseek = _lseek_cdrdao;
_funcs.read = _read_cdrdao; _funcs.read = _read_cdrdao;
_funcs.read_audio_sectors = _read_audio_sectors_cdrdao; _funcs.read_audio_sectors = _read_audio_sectors_cdrdao;
_funcs.read_data_sector = read_data_sector_image; _funcs.read_data_sectors = read_data_sectors_image;
_funcs.read_mode1_sector = _read_mode1_sector_cdrdao; _funcs.read_mode1_sector = _read_mode1_sector_cdrdao;
_funcs.read_mode1_sectors = _read_mode1_sectors_cdrdao; _funcs.read_mode1_sectors = _read_mode1_sectors_cdrdao;
_funcs.read_mode2_sector = _read_mode2_sector_cdrdao; _funcs.read_mode2_sector = _read_mode2_sector_cdrdao;

View File

@@ -1,5 +1,5 @@
/* /*
$Id: nrg.c,v 1.14 2005/02/17 04:57:21 rocky Exp $ $Id: nrg.c,v 1.15 2005/02/17 07:03:37 rocky Exp $
Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
Copyright (C) 2001, 2003 Herbert Valerio Riedel <hvr@gnu.org> Copyright (C) 2001, 2003 Herbert Valerio Riedel <hvr@gnu.org>
@@ -46,7 +46,7 @@
#include "_cdio_stdio.h" #include "_cdio_stdio.h"
#include "nrg.h" #include "nrg.h"
static const char _rcsid[] = "$Id: nrg.c,v 1.14 2005/02/17 04:57:21 rocky Exp $"; static const char _rcsid[] = "$Id: nrg.c,v 1.15 2005/02/17 07:03:37 rocky Exp $";
/* reader */ /* reader */
@@ -1239,7 +1239,7 @@ cdio_open_nrg (const char *psz_source)
_funcs.lseek = _lseek_nrg; _funcs.lseek = _lseek_nrg;
_funcs.read = _read_nrg; _funcs.read = _read_nrg;
_funcs.read_audio_sectors = _read_audio_sectors_nrg; _funcs.read_audio_sectors = _read_audio_sectors_nrg;
_funcs.read_data_sector = read_data_sector_image; _funcs.read_data_sectors = read_data_sectors_image;
_funcs.read_mode1_sector = _read_mode1_sector_nrg; _funcs.read_mode1_sector = _read_mode1_sector_nrg;
_funcs.read_mode1_sectors = _read_mode1_sectors_nrg; _funcs.read_mode1_sectors = _read_mode1_sectors_nrg;
_funcs.read_mode2_sector = _read_mode2_sector_nrg; _funcs.read_mode2_sector = _read_mode2_sector_nrg;

View File

@@ -1,5 +1,5 @@
/* /*
$Id: image_common.c,v 1.11 2005/02/17 04:57:21 rocky Exp $ $Id: image_common.c,v 1.12 2005/02/17 07:03:37 rocky Exp $
Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -264,8 +264,9 @@ get_track_preemphasis_image(const void *p_user_data, track_t i_track)
p_buf. p_buf.
*/ */
driver_return_code_t driver_return_code_t
read_data_sector_image ( void *p_user_data, void *p_buf, read_data_sectors_image ( void *p_user_data, void *p_buf,
lsn_t i_lsn, uint16_t i_blocksize ) lsn_t i_lsn, uint16_t i_blocksize,
uint32_t i_blocks )
{ {
const _img_private_t *p_env = p_user_data; const _img_private_t *p_env = p_user_data;
@@ -281,11 +282,11 @@ read_data_sector_image ( void *p_user_data, void *p_buf,
case TRACK_FORMAT_AUDIO: case TRACK_FORMAT_AUDIO:
case TRACK_FORMAT_ERROR: case TRACK_FORMAT_ERROR:
return DRIVER_OP_ERROR; return DRIVER_OP_ERROR;
case TRACK_FORMAT_CDI:
case TRACK_FORMAT_DATA: case TRACK_FORMAT_DATA:
return cdio_read_mode1_sector (p_cdio, p_buf, i_lsn, false); return cdio_read_mode1_sectors (p_cdio, p_buf, i_lsn, false, i_blocks);
case TRACK_FORMAT_CDI:
case TRACK_FORMAT_XA: case TRACK_FORMAT_XA:
return cdio_read_mode2_sector (p_cdio, p_buf, i_lsn, false); return cdio_read_mode2_sectors (p_cdio, p_buf, i_lsn, false, i_blocks);
} }
} }
return DRIVER_OP_ERROR; return DRIVER_OP_ERROR;

View File

@@ -1,5 +1,5 @@
/* /*
$Id: image_common.h,v 1.9 2005/02/17 04:57:21 rocky Exp $ $Id: image_common.h,v 1.10 2005/02/17 07:03:37 rocky Exp $
Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -166,10 +166,14 @@ track_flag_t get_track_preemphasis_image(const void *p_user_data,
@param i_blocksize size of block. Should be either ISO_BLOCKSIZE @param i_blocksize size of block. Should be either ISO_BLOCKSIZE
M2RAW_SECTOR_SIZE, or M2F2_SECTOR_SIZE. See comment above under M2RAW_SECTOR_SIZE, or M2F2_SECTOR_SIZE. See comment above under
p_buf. p_buf.
@param i_blocks number of blocks to read.
*/ */
driver_return_code_t driver_return_code_t
read_data_sector_image ( void *p_user_data, void *p_buf, read_data_sectors_image ( void *p_user_data, void *p_buf,
lsn_t i_lsn, uint16_t i_blocksize ); lsn_t i_lsn, uint16_t i_blocksize,
uint32_t i_blocks );
/*! /*!
Set the arg "key" with "value" in the source device. Set the arg "key" with "value" in the source device.

View File

@@ -165,6 +165,7 @@ mmc_mode_sense
mmc_mode_sense_10 mmc_mode_sense_10
mmc_mode_sense_6 mmc_mode_sense_6
mmc_read_cd mmc_read_cd
mmc_read_data_sectors
mmc_read_sectors mmc_read_sectors
mmc_run_cmd mmc_run_cmd
mmc_set_blocksize mmc_set_blocksize

View File

@@ -1,6 +1,6 @@
/* Common Multimedia Command (MMC) routines. /* Common Multimedia Command (MMC) routines.
$Id: mmc.c,v 1.13 2005/02/17 04:57:21 rocky Exp $ $Id: mmc.c,v 1.14 2005/02/17 07:03:37 rocky Exp $
Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -113,11 +113,13 @@ get_mcn_mmc (const void *p_user_data)
Can read only up to 25 blocks. Can read only up to 25 blocks.
*/ */
driver_return_code_t driver_return_code_t
read_data_sector_mmc ( void *p_user_data, void *p_buf, read_data_sectors_mmc ( void *p_user_data, void *p_buf,
lba_t i_lba, uint16_t i_blocksize ) lsn_t i_lsn, uint16_t i_blocksize,
uint32_t i_blocks )
{ {
const generic_img_private_t *p_env = p_user_data; const generic_img_private_t *p_env = p_user_data;
return mmc_read_data_sector( p_env->cdio, p_buf, i_lba, i_blocksize ); return mmc_read_data_sectors( p_env->cdio, p_buf, i_lsn, i_blocksize,
i_blocks );
} }
/* Set read blocksize (via MMC) */ /* Set read blocksize (via MMC) */
@@ -1051,8 +1053,9 @@ mmc_read_cd ( const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn,
/*! Read sectors using SCSI-MMC GPCMD_READ_CD. /*! Read sectors using SCSI-MMC GPCMD_READ_CD.
*/ */
driver_return_code_t driver_return_code_t
mmc_read_data_sector ( CdIo_t *p_cdio, void *p_buf, mmc_read_data_sectors ( CdIo_t *p_cdio, void *p_buf,
lsn_t i_lsn, uint16_t i_blocksize ) lsn_t i_lsn, uint16_t i_blocksize,
uint32_t i_blocks )
{ {
return mmc_read_cd(p_cdio, return mmc_read_cd(p_cdio,
p_buf, /* place to store data */ p_buf, /* place to store data */
@@ -1066,7 +1069,7 @@ mmc_read_data_sector ( CdIo_t *p_cdio, void *p_buf,
false, /* return C2 Error information */ false, /* return C2 Error information */
0, /* suchannel selection bits */ 0, /* suchannel selection bits */
ISO_BLOCKSIZE, /* blocksize*/ ISO_BLOCKSIZE, /* blocksize*/
1 /* Number of blocks. */); i_blocks /* Number of blocks. */);
} }

View File

@@ -1,6 +1,6 @@
/* private MMC helper routines. /* private MMC helper routines.
$Id: mmc_private.h,v 1.5 2005/02/17 04:57:21 rocky Exp $ $Id: mmc_private.h,v 1.6 2005/02/17 07:03:37 rocky Exp $
Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -77,9 +77,10 @@ char *get_mcn_mmc (const void *p_user_data);
M2RAW_SECTOR_SIZE, or M2F2_SECTOR_SIZE. See comment above under p_buf. M2RAW_SECTOR_SIZE, or M2F2_SECTOR_SIZE. See comment above under p_buf.
*/ */
driver_return_code_t read_data_sector_mmc ( void *p_user_data, driver_return_code_t read_data_sectors_mmc ( void *p_user_data,
void *p_buf, lsn_t i_lsn, void *p_buf, lsn_t i_lsn,
uint16_t i_blocksize ); uint16_t i_blocksize,
uint32_t i_blocks );
char *get_mcn_mmc (const void *p_user_data); char *get_mcn_mmc (const void *p_user_data);
/* Set read blocksize (via MMC) */ /* Set read blocksize (via MMC) */

View File

@@ -1,5 +1,5 @@
/* /*
$Id: read.c,v 1.5 2005/02/17 04:57:21 rocky Exp $ $Id: read.c,v 1.6 2005/02/17 07:03:37 rocky Exp $
Copyright (C) 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2005 Rocky Bernstein <rocky@panix.com>
@@ -126,18 +126,19 @@ cdio_read_audio_sectors (const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn,
return p_cdio->op.read_audio_sectors (p_cdio->env, p_buf, i_lsn, i_blocks); return p_cdio->op.read_audio_sectors (p_cdio->env, p_buf, i_lsn, i_blocks);
return DRIVER_OP_UNSUPPORTED; return DRIVER_OP_UNSUPPORTED;
} }
/*! /*!
Reads an audio sector from cd device into data starting Reads an audio sector from cd device into data starting
from lsn. Returns DRIVER_OP_SUCCESS if no error. from lsn. Returns DRIVER_OP_SUCCESS if no error.
*/ */
driver_return_code_t driver_return_code_t
cdio_read_data_sector (const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn, cdio_read_data_sectors (const CdIo_t *p_cdio, void *p_buf, lsn_t i_lsn,
uint16_t i_blocksize) uint16_t i_blocksize, uint32_t i_blocks)
{ {
check_lsn(i_lsn); check_lsn(i_lsn);
if (p_cdio->op.read_data_sector) if (p_cdio->op.read_data_sectors)
return p_cdio->op.read_data_sector (p_cdio->env, p_buf, i_lsn, return p_cdio->op.read_data_sectors (p_cdio->env, p_buf, i_lsn,
i_blocksize); i_blocksize, i_blocks);
return DRIVER_OP_UNSUPPORTED; return DRIVER_OP_UNSUPPORTED;
} }

View File

@@ -1,5 +1,5 @@
/* /*
$Id: iso9660_fs.c,v 1.15 2005/02/17 04:57:21 rocky Exp $ $Id: iso9660_fs.c,v 1.16 2005/02/17 07:03:37 rocky Exp $
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org> Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -52,7 +52,7 @@
#include <stdio.h> #include <stdio.h>
static const char _rcsid[] = "$Id: iso9660_fs.c,v 1.15 2005/02/17 04:57:21 rocky Exp $"; static const char _rcsid[] = "$Id: iso9660_fs.c,v 1.16 2005/02/17 07:03:37 rocky Exp $";
/* Implementation of iso9660_t type */ /* Implementation of iso9660_t type */
struct _iso9660_s { struct _iso9660_s {
@@ -674,7 +674,7 @@ iso9660_fs_read_pvd(const CdIo_t *p_cdio, /*out*/ iso9660_pvd_t *p_pvd)
/* A bit of a hack, we'll assume track 1 contains ISO_PVD_SECTOR.*/ /* A bit of a hack, we'll assume track 1 contains ISO_PVD_SECTOR.*/
char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, }; char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, };
driver_return_code_t driver_return = driver_return_code_t driver_return =
cdio_read_data_sector (p_cdio, buf, ISO_PVD_SECTOR, ISO_BLOCKSIZE); cdio_read_data_sectors (p_cdio, buf, ISO_PVD_SECTOR, ISO_BLOCKSIZE, 1);
if (DRIVER_OP_SUCCESS != driver_return) { if (DRIVER_OP_SUCCESS != driver_return) {
cdio_warn ("error reading PVD sector (%d) error %d", ISO_PVD_SECTOR, cdio_warn ("error reading PVD sector (%d) error %d", ISO_PVD_SECTOR,
@@ -709,8 +709,7 @@ iso9660_fs_read_superblock (CdIo_t *p_cdio,
iso9660_pvd_t *p_pvd = &(p_env->pvd); iso9660_pvd_t *p_pvd = &(p_env->pvd);
iso9660_svd_t *p_svd = &(p_env->svd); iso9660_svd_t *p_svd = &(p_env->svd);
char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, }; char buf[CDIO_CD_FRAMESIZE_RAW] = { 0, };
driver_return_code_t driver_return = driver_return_code_t driver_return;
cdio_read_data_sector (p_cdio, buf, ISO_PVD_SECTOR, ISO_BLOCKSIZE);
if ( !iso9660_fs_read_pvd(p_cdio, p_pvd) ) if ( !iso9660_fs_read_pvd(p_cdio, p_pvd) )
return false; return false;
@@ -718,7 +717,8 @@ iso9660_fs_read_superblock (CdIo_t *p_cdio,
p_env->i_joliet_level = 0; p_env->i_joliet_level = 0;
driver_return = driver_return =
cdio_read_data_sector (p_cdio, buf, ISO_PVD_SECTOR+1, ISO_BLOCKSIZE); cdio_read_data_sectors ( p_cdio, buf, ISO_PVD_SECTOR+1, ISO_BLOCKSIZE,
1 );
if (DRIVER_OP_SUCCESS == driver_return) { if (DRIVER_OP_SUCCESS == driver_return) {
/* The size of a PVD or SVD is smaller than a sector. So we /* The size of a PVD or SVD is smaller than a sector. So we
@@ -1340,15 +1340,9 @@ iso9660_fs_readdir (CdIo_t *p_cdio, const char psz_path[], bool b_mode2)
_dirbuf = calloc(1, p_stat->secsize * ISO_BLOCKSIZE); _dirbuf = calloc(1, p_stat->secsize * ISO_BLOCKSIZE);
if (b_mode2) { if (cdio_read_data_sectors (p_cdio, _dirbuf, p_stat->lsn, false,
if (cdio_read_mode2_sectors (p_cdio, _dirbuf, p_stat->lsn, false, p_stat->secsize))
p_stat->secsize))
cdio_assert_not_reached (); cdio_assert_not_reached ();
} else {
if (cdio_read_mode1_sectors (p_cdio, _dirbuf, p_stat->lsn, false,
p_stat->secsize))
cdio_assert_not_reached ();
}
while (offset < (p_stat->secsize * ISO_BLOCKSIZE)) while (offset < (p_stat->secsize * ISO_BLOCKSIZE))
{ {