Move some of the "generic" routines using MMC into SCSI-MMC. Think is a

little bit clearer and cleaner.
This commit is contained in:
rocky
2005-01-21 02:59:32 +00:00
parent ae7667d336
commit 688c30e66a
11 changed files with 121 additions and 100 deletions

View File

@@ -1,5 +1,5 @@
/* /*
$Id: freebsd.c,v 1.7 2005/01/20 14:58:22 rocky Exp $ $Id: freebsd.c,v 1.8 2005/01/21 02:59:32 rocky Exp $
Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 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: freebsd.c,v 1.7 2005/01/20 14:58:22 rocky Exp $"; static const char _rcsid[] = "$Id: freebsd.c,v 1.8 2005/01/21 02:59:32 rocky Exp $";
#include "freebsd.h" #include "freebsd.h"
@@ -576,7 +576,7 @@ cdio_open_am_freebsd (const char *psz_orig_source_name,
.eject_media = _eject_media_freebsd, .eject_media = _eject_media_freebsd,
.free = _free_freebsd, .free = _free_freebsd,
.get_arg = _get_arg_freebsd, .get_arg = _get_arg_freebsd,
.get_blocksize = get_blocksize_generic, .get_blocksize = get_blocksize_mmc,
.get_cdtext = get_cdtext_generic, .get_cdtext = get_cdtext_generic,
.get_default_device = cdio_get_default_device_freebsd, .get_default_device = cdio_get_default_device_freebsd,
.get_devices = cdio_get_devices_freebsd, .get_devices = cdio_get_devices_freebsd,

View File

@@ -1,5 +1,5 @@
/* /*
$Id: win32.c,v 1.7 2005/01/20 01:00:52 rocky Exp $ $Id: win32.c,v 1.8 2005/01/21 02:59:32 rocky Exp $
Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -26,7 +26,7 @@
# include "config.h" # include "config.h"
#endif #endif
static const char _rcsid[] = "$Id: win32.c,v 1.7 2005/01/20 01:00:52 rocky Exp $"; static const char _rcsid[] = "$Id: win32.c,v 1.8 2005/01/21 02:59:32 rocky Exp $";
#include <cdio/cdio.h> #include <cdio/cdio.h>
#include <cdio/sector.h> #include <cdio/sector.h>
@@ -759,8 +759,8 @@ cdio_open_am_win32 (const char *psz_orig_source, const char *psz_access_mode)
_funcs.read_toc = &read_toc_win32; _funcs.read_toc = &read_toc_win32;
_funcs.run_scsi_mmc_cmd = &run_scsi_cmd_win32; _funcs.run_scsi_mmc_cmd = &run_scsi_cmd_win32;
_funcs.set_arg = set_arg_win32; _funcs.set_arg = set_arg_win32;
_funcs.set_blocksize = set_blocksize_generic; _funcs.set_blocksize = set_blocksize_mmc;
_funcs.set_speed = set_speed_generic; _funcs.set_speed = set_speed_mmc;
_funcs.stat_size = stat_size_win32; _funcs.stat_size = stat_size_win32;
_data = _cdio_malloc (sizeof (_img_private_t)); _data = _cdio_malloc (sizeof (_img_private_t));

View File

@@ -1,5 +1,5 @@
/* /*
$Id: _cdio_aix.c,v 1.3 2005/01/17 17:20:09 rocky Exp $ $Id: _cdio_aix.c,v 1.4 2005/01/21 02:59:32 rocky Exp $
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com> Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
@@ -37,7 +37,7 @@
#ifdef HAVE_AIX_CDROM #ifdef HAVE_AIX_CDROM
static const char _rcsid[] = "$Id: _cdio_aix.c,v 1.3 2005/01/17 17:20:09 rocky Exp $"; static const char _rcsid[] = "$Id: _cdio_aix.c,v 1.4 2005/01/21 02:59:32 rocky Exp $";
#ifdef HAVE_GLOB_H #ifdef HAVE_GLOB_H
#include <glob.h> #include <glob.h>
@@ -949,10 +949,10 @@ cdio_open_am_aix (const char *psz_orig_source, const char *access_mode)
_funcs.get_default_device = cdio_get_default_device_aix; _funcs.get_default_device = cdio_get_default_device_aix;
_funcs.get_devices = cdio_get_devices_aix; _funcs.get_devices = cdio_get_devices_aix;
_funcs.get_discmode = get_discmode_aix; _funcs.get_discmode = get_discmode_aix;
_funcs.get_drive_cap = scsi_mmc_get_drive_cap_generic; _funcs.get_drive_cap = get_drive_cap_mmc;
_funcs.get_first_track_num= get_first_track_num_generic; _funcs.get_first_track_num= get_first_track_num_generic;
_funcs.get_hwinfo = NULL; _funcs.get_hwinfo = NULL;
_funcs.get_mcn = scsi_mmc_get_mcn_generic, _funcs.get_mcn = get_mcn_mmc,
_funcs.get_num_tracks = get_num_tracks_generic; _funcs.get_num_tracks = get_num_tracks_generic;
_funcs.get_track_format = get_track_format_aix; _funcs.get_track_format = get_track_format_aix;
_funcs.get_track_green = _cdio_get_track_green; _funcs.get_track_green = _cdio_get_track_green;
@@ -1023,3 +1023,12 @@ cdio_have_aix (void)
return false; return false;
#endif /* HAVE_AIX_CDROM */ #endif /* HAVE_AIX_CDROM */
} }
/*
* Local variables:
* c-file-style: "gnu"
* tab-width: 8
* indent-tabs-mode: nil
* End:
*/

View File

@@ -1,5 +1,5 @@
/* /*
$Id: _cdio_bsdi.c,v 1.4 2005/01/19 09:42:32 rocky Exp $ $Id: _cdio_bsdi.c,v 1.5 2005/01/21 02:59:32 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_bsdi.c,v 1.4 2005/01/19 09:42:32 rocky Exp $"; static const char _rcsid[] = "$Id: _cdio_bsdi.c,v 1.5 2005/01/21 02:59:32 rocky Exp $";
#include <cdio/logging.h> #include <cdio/logging.h>
#include <cdio/sector.h> #include <cdio/sector.h>
@@ -766,7 +766,7 @@ cdio_open_bsdi (const char *psz_orig_source)
.get_cdtext = get_cdtext_generic, .get_cdtext = get_cdtext_generic,
.get_default_device = cdio_get_default_device_bsdi, .get_default_device = cdio_get_default_device_bsdi,
.get_devices = cdio_get_devices_bsdi, .get_devices = cdio_get_devices_bsdi,
.get_drive_cap = scsi_mmc_get_drive_cap_generic, .get_drive_cap = get_drive_cap_mmc,
.get_discmode = get_discmode_generic, .get_discmode = get_discmode_generic,
.get_first_track_num= get_first_track_num_generic, .get_first_track_num= get_first_track_num_generic,
.get_hwinfo = NULL, .get_hwinfo = NULL,

View File

@@ -1,5 +1,5 @@
/* /*
$Id: _cdio_generic.c,v 1.9 2005/01/20 05:07:00 rocky Exp $ $Id: _cdio_generic.c,v 1.10 2005/01/21 02:59:32 rocky Exp $
Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -25,7 +25,7 @@
# include "config.h" # include "config.h"
#endif #endif
static const char _rcsid[] = "$Id: _cdio_generic.c,v 1.9 2005/01/20 05:07:00 rocky Exp $"; static const char _rcsid[] = "$Id: _cdio_generic.c,v 1.10 2005/01/21 02:59:32 rocky Exp $";
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
@@ -279,15 +279,6 @@ get_cdtext_generic (void *p_user_data, track_t i_track)
} }
/* Set read blocksize (via MMC) */
int
get_blocksize_generic (void *p_user_data)
{
generic_img_private_t *p_env = p_user_data;
if (!p_env) return DRIVER_OP_UNINIT;
return scsi_mmc_get_blocksize(p_env->cdio);
}
/*! /*!
Get disc type associated with cd object. Get disc type associated with cd object.
*/ */
@@ -497,25 +488,6 @@ set_track_flags(track_flags_t *p_track_flag, uint8_t i_flag)
? 4 : 2; ? 4 : 2;
} }
/* Set read blocksize (via MMC) */
driver_return_code_t
set_blocksize_generic (void *p_user_data, int i_blocksize)
{
generic_img_private_t *p_env = p_user_data;
if (!p_env) return DRIVER_OP_UNINIT;
return scsi_mmc_set_blocksize(p_env->cdio, i_blocksize);
}
/* Set CD-ROM drive speed (via MMC) */
driver_return_code_t
set_speed_generic (void *p_user_data, int i_speed)
{
generic_img_private_t *p_env = p_user_data;
if (!p_env) return DRIVER_OP_UNINIT;
return scsi_mmc_set_speed( p_env->cdio, i_speed );
}
/* /*
* Local variables: * Local variables:

View File

@@ -1,5 +1,5 @@
/* /*
$Id: _cdio_linux.c,v 1.14 2005/01/20 05:07:00 rocky Exp $ $Id: _cdio_linux.c,v 1.15 2005/01/21 02:59:32 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.14 2005/01/20 05:07:00 rocky Exp $"; static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.15 2005/01/21 02:59:32 rocky Exp $";
#include <string.h> #include <string.h>
@@ -1136,7 +1136,7 @@ cdio_open_am_linux (const char *psz_orig_source, const char *access_mode)
.eject_media = eject_media_linux, .eject_media = eject_media_linux,
.free = cdio_generic_free, .free = cdio_generic_free,
.get_arg = get_arg_linux, .get_arg = get_arg_linux,
.get_blocksize = get_blocksize_generic, .get_blocksize = get_blocksize_mmc,
.get_cdtext = get_cdtext_generic, .get_cdtext = get_cdtext_generic,
.get_default_device = cdio_get_default_device_linux, .get_default_device = cdio_get_default_device_linux,
.get_devices = cdio_get_devices_linux, .get_devices = cdio_get_devices_linux,
@@ -1144,7 +1144,7 @@ cdio_open_am_linux (const char *psz_orig_source, const char *access_mode)
#if USE_LINUX_CAP #if USE_LINUX_CAP
.get_drive_cap = get_drive_cap_linux, .get_drive_cap = get_drive_cap_linux,
#else #else
.get_drive_cap = scsi_mmc_get_drive_cap_generic, .get_drive_cap = get_drive_cap_mmc,
#endif #endif
.get_first_track_num = get_first_track_num_generic, .get_first_track_num = get_first_track_num_generic,
.get_hwinfo = NULL, .get_hwinfo = NULL,
@@ -1167,7 +1167,7 @@ cdio_open_am_linux (const char *psz_orig_source, const char *access_mode)
.read_toc = read_toc_linux, .read_toc = read_toc_linux,
.run_scsi_mmc_cmd = run_scsi_cmd_linux, .run_scsi_mmc_cmd = run_scsi_cmd_linux,
.set_arg = set_arg_linux, .set_arg = set_arg_linux,
.set_blocksize = set_blocksize_generic, .set_blocksize = set_blocksize_mmc,
.set_speed = set_speed_linux, .set_speed = set_speed_linux,
.stat_size = stat_size_linux .stat_size = stat_size_linux
}; };
@@ -1225,3 +1225,12 @@ cdio_have_linux (void)
return false; return false;
#endif /* HAVE_LINUX_CDROM */ #endif /* HAVE_LINUX_CDROM */
} }
/*
* Local variables:
* c-file-style: "gnu"
* tab-width: 8
* indent-tabs-mode: nil
* End:
*/

View File

@@ -1,5 +1,5 @@
/* /*
$Id: _cdio_sunos.c,v 1.11 2005/01/20 05:07:00 rocky Exp $ $Id: _cdio_sunos.c,v 1.12 2005/01/21 02:59:32 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>
@@ -38,7 +38,7 @@
#ifdef HAVE_SOLARIS_CDROM #ifdef HAVE_SOLARIS_CDROM
static const char _rcsid[] = "$Id: _cdio_sunos.c,v 1.11 2005/01/20 05:07:00 rocky Exp $"; static const char _rcsid[] = "$Id: _cdio_sunos.c,v 1.12 2005/01/21 02:59:32 rocky Exp $";
#ifdef HAVE_GLOB_H #ifdef HAVE_GLOB_H
#include <glob.h> #include <glob.h>
@@ -866,15 +866,15 @@ cdio_open_am_solaris (const char *psz_orig_source, const char *access_mode)
_funcs.eject_media = eject_media_solaris; _funcs.eject_media = eject_media_solaris;
_funcs.free = cdio_generic_free; _funcs.free = cdio_generic_free;
_funcs.get_arg = get_arg_solaris; _funcs.get_arg = get_arg_solaris;
_funcs.get_blocksize = get_blocksize_generic, _funcs.get_blocksize = get_blocksize_mmc,
_funcs.get_cdtext = get_cdtext_generic; _funcs.get_cdtext = get_cdtext_generic;
_funcs.get_default_device = cdio_get_default_device_solaris; _funcs.get_default_device = cdio_get_default_device_solaris;
_funcs.get_devices = cdio_get_devices_solaris; _funcs.get_devices = cdio_get_devices_solaris;
_funcs.get_discmode = get_discmode_solaris; _funcs.get_discmode = get_discmode_solaris;
_funcs.get_drive_cap = scsi_mmc_get_drive_cap_generic; _funcs.get_drive_cap = get_drive_cap_mmc;
_funcs.get_first_track_num = get_first_track_num_generic; _funcs.get_first_track_num = get_first_track_num_generic;
_funcs.get_hwinfo = NULL; _funcs.get_hwinfo = NULL;
_funcs.get_mcn = scsi_mmc_get_mcn_generic, _funcs.get_mcn = get_mcn_mmc,
_funcs.get_num_tracks = get_num_tracks_generic; _funcs.get_num_tracks = get_num_tracks_generic;
_funcs.get_track_channels = get_track_channels_generic, _funcs.get_track_channels = get_track_channels_generic,
_funcs.get_track_copy_permit = get_track_copy_permit_generic, _funcs.get_track_copy_permit = get_track_copy_permit_generic,
@@ -894,7 +894,7 @@ cdio_open_am_solaris (const char *psz_orig_source, const char *access_mode)
_funcs.run_scsi_mmc_cmd = run_scsi_cmd_solaris; _funcs.run_scsi_mmc_cmd = run_scsi_cmd_solaris;
_funcs.stat_size = _cdio_stat_size; _funcs.stat_size = _cdio_stat_size;
_funcs.set_arg = _set_arg_solaris; _funcs.set_arg = _set_arg_solaris;
_funcs.set_blocksize = set_blocksize_generic; _funcs.set_blocksize = set_blocksize_mmc;
_funcs.set_speed = set_speed_solaris; _funcs.set_speed = set_speed_solaris;
_funcs.stat_size = _cdio_stat_size; _funcs.stat_size = _cdio_stat_size;

View File

@@ -1,5 +1,5 @@
/* /*
$Id: cdio_private.h,v 1.8 2005/01/20 05:07:00 rocky Exp $ $Id: cdio_private.h,v 1.9 2005/01/21 02:59:32 rocky Exp $
Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -125,7 +125,7 @@ extern "C" {
Get the CD-ROM hardware info via a SCSI MMC INQUIRY command. Get the CD-ROM hardware info via a SCSI MMC INQUIRY command.
False is returned if we had an error getting the information. False is returned if we had an error getting the information.
*/ */
bool (*get_hwinfo) ( const CdIo *p_cdio, bool (*get_hwinfo) ( const CdIo_t *p_cdio,
/* out*/ cdio_hwinfo_t *p_hw_info ); /* out*/ cdio_hwinfo_t *p_hw_info );
/*! /*!

View File

@@ -1,5 +1,5 @@
/* /*
$Id: generic.h,v 1.9 2005/01/20 05:07:00 rocky Exp $ $Id: generic.h,v 1.10 2005/01/21 02:59:32 rocky Exp $
Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -157,12 +157,6 @@ extern "C" {
*/ */
const cdtext_t *get_cdtext_generic (void *p_user_data, track_t i_track); const cdtext_t *get_cdtext_generic (void *p_user_data, track_t i_track);
/*!
Get the block size for subsequest read requests, via a SCSI MMC
MODE_SENSE 6 command.
*/
int get_blocksize_generic (void *p_user_data);
/*! /*!
Return the number of of the first track. Return the number of of the first track.
CDIO_INVALID_TRACK is returned on error. CDIO_INVALID_TRACK is returned on error.
@@ -204,13 +198,6 @@ extern "C" {
track_flag_t get_track_preemphasis_generic(const void *p_user_data, track_flag_t get_track_preemphasis_generic(const void *p_user_data,
track_t i_track); track_t i_track);
/* Set read blocksize (via MMC) */
driver_return_code_t set_blocksize_generic (void *p_user_data,
int i_blocksize);
/* Set CD-ROM drive speed (via MMC) */
driver_return_code_t set_speed_generic (void *p_user_data, int i_speed);
void set_cdtext_field_generic(void *user_data, track_t i_track, void set_cdtext_field_generic(void *user_data, track_t i_track,
track_t i_first_track, track_t i_first_track,
cdtext_field_t e_field, const char *psz_value); cdtext_field_t e_field, const char *psz_value);

View File

@@ -1,6 +1,6 @@
/* Common SCSI Multimedia Command (MMC) routines. /* Common SCSI Multimedia Command (MMC) routines.
$Id: scsi_mmc.c,v 1.7 2005/01/20 00:36:38 rocky Exp $ $Id: scsi_mmc.c,v 1.8 2005/01/21 02:59:32 rocky Exp $
Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com> Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com>
@@ -465,18 +465,6 @@ scsi_mmc_get_drive_cap (const CdIo_t *p_cdio,
p_read_cap, p_write_cap, p_misc_cap); p_read_cap, p_write_cap, p_misc_cap);
} }
void
scsi_mmc_get_drive_cap_generic (const void *p_user_data,
/*out*/ cdio_drive_read_cap_t *p_read_cap,
/*out*/ cdio_drive_write_cap_t *p_write_cap,
/*out*/ cdio_drive_misc_cap_t *p_misc_cap)
{
const generic_img_private_t *p_env = p_user_data;
scsi_mmc_get_drive_cap( p_env->cdio,
p_read_cap, p_write_cap, p_misc_cap );
}
/*! /*!
Get the DVD type associated with cd object. Get the DVD type associated with cd object.
*/ */
@@ -631,13 +619,6 @@ scsi_mmc_get_mcn ( const CdIo_t *p_cdio )
p_cdio->op.run_scsi_mmc_cmd ); p_cdio->op.run_scsi_mmc_cmd );
} }
char *
scsi_mmc_get_mcn_generic (const void *p_user_data)
{
const generic_img_private_t *p_env = p_user_data;
return scsi_mmc_get_mcn( p_env->cdio );
}
/* /*
Read cdtext information for a CdIo_t object . Read cdtext information for a CdIo_t object .
@@ -709,3 +690,56 @@ scsi_mmc_init_cdtext_private ( void *p_user_data,
} }
} }
/* Set read blocksize (via MMC) */
int
get_blocksize_mmc (void *p_user_data)
{
generic_img_private_t *p_env = p_user_data;
if (!p_env) return DRIVER_OP_UNINIT;
return scsi_mmc_get_blocksize(p_env->cdio);
}
void
get_drive_cap_mmc (const void *p_user_data,
/*out*/ cdio_drive_read_cap_t *p_read_cap,
/*out*/ cdio_drive_write_cap_t *p_write_cap,
/*out*/ cdio_drive_misc_cap_t *p_misc_cap)
{
const generic_img_private_t *p_env = p_user_data;
scsi_mmc_get_drive_cap( p_env->cdio,
p_read_cap, p_write_cap, p_misc_cap );
}
char *
get_mcn_mmc (const void *p_user_data)
{
const generic_img_private_t *p_env = p_user_data;
return scsi_mmc_get_mcn( p_env->cdio );
}
/* Set read blocksize (via MMC) */
driver_return_code_t
set_blocksize_mmc (void *p_user_data, int i_blocksize)
{
generic_img_private_t *p_env = p_user_data;
if (!p_env) return DRIVER_OP_UNINIT;
return scsi_mmc_set_blocksize(p_env->cdio, i_blocksize);
}
/* Set CD-ROM drive speed (via MMC) */
driver_return_code_t
set_speed_mmc (void *p_user_data, int i_speed)
{
generic_img_private_t *p_env = p_user_data;
if (!p_env) return DRIVER_OP_UNINIT;
return scsi_mmc_set_speed( p_env->cdio, i_speed );
}
/*
* Local variables:
* c-file-style: "gnu"
* tab-width: 8
* indent-tabs-mode: nil
* End:
*/

View File

@@ -1,6 +1,6 @@
/* private MMC helper routines. /* private MMC helper routines.
$Id: scsi_mmc_private.h,v 1.1 2004/12/18 17:29:32 rocky Exp $ $Id: scsi_mmc_private.h,v 1.2 2005/01/21 02:59:32 rocky Exp $
Copyright (C) 2004 Rocky Bernstein <rocky@panix.com> Copyright (C) 2004 Rocky Bernstein <rocky@panix.com>
@@ -62,8 +62,6 @@ char *scsi_mmc_get_mcn_private ( void *p_env,
const scsi_mmc_run_cmd_fn_t run_scsi_mmc_cmd const scsi_mmc_run_cmd_fn_t run_scsi_mmc_cmd
); );
char *scsi_mmc_get_mcn_generic (const void *p_user_data);
bool scsi_mmc_init_cdtext_private ( void *user_data, const bool scsi_mmc_init_cdtext_private ( void *user_data, const
scsi_mmc_run_cmd_fn_t run_scsi_mmc_cmd, scsi_mmc_run_cmd_fn_t run_scsi_mmc_cmd,
set_cdtext_field_fn_t set_cdtext_field_fn set_cdtext_field_fn_t set_cdtext_field_fn
@@ -92,14 +90,26 @@ scsi_mmc_get_drive_cap_private (const void *p_env,
/*out*/ cdio_drive_read_cap_t *p_read_cap, /*out*/ cdio_drive_read_cap_t *p_read_cap,
/*out*/ cdio_drive_write_cap_t *p_write_cap, /*out*/ cdio_drive_write_cap_t *p_write_cap,
/*out*/ cdio_drive_misc_cap_t *p_misc_cap); /*out*/ cdio_drive_misc_cap_t *p_misc_cap);
void
scsi_mmc_get_drive_cap_generic (const void *p_user_data,
/*out*/ cdio_drive_read_cap_t *p_read_cap,
/*out*/ cdio_drive_write_cap_t *p_write_cap,
/*out*/ cdio_drive_misc_cap_t *p_misc_cap);
int int
scsi_mmc_set_blocksize_private ( const void *p_env, scsi_mmc_set_blocksize_private ( const void *p_env,
const scsi_mmc_run_cmd_fn_t run_scsi_mmc_cmd, const scsi_mmc_run_cmd_fn_t run_scsi_mmc_cmd,
unsigned int i_bsize); unsigned int i_bsize);
/*!
Get the block size for subsequest read requests, via a SCSI MMC
MODE_SENSE 6 command.
*/
int get_blocksize_mmc (void *p_user_data);
void get_drive_cap_mmc (const void *p_user_data,
/*out*/ cdio_drive_read_cap_t *p_read_cap,
/*out*/ cdio_drive_write_cap_t *p_write_cap,
/*out*/ cdio_drive_misc_cap_t *p_misc_cap);
char *get_mcn_mmc (const void *p_user_data);
/* Set read blocksize (via MMC) */
driver_return_code_t set_blocksize_mmc (void *p_user_data, int i_blocksize);
/* Set CD-ROM drive speed (via MMC) */
driver_return_code_t set_speed_mmc (void *p_user_data, int i_speed);