From 3a99718830b16bce1c93432a8e84f740a9e33b37 Mon Sep 17 00:00:00 2001 From: rocky Date: Tue, 18 Jan 2005 01:48:42 +0000 Subject: [PATCH] Add set_speed for Solaris via ioctl and set_blocksize via SCSI-MMC. Update comments in GNU/Linux driver. --- lib/driver/_cdio_linux.c | 8 ++++---- lib/driver/_cdio_sunos.c | 25 +++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/lib/driver/_cdio_linux.c b/lib/driver/_cdio_linux.c index 4a35996c..bb094bb0 100644 --- a/lib/driver/_cdio_linux.c +++ b/lib/driver/_cdio_linux.c @@ -1,5 +1,5 @@ /* - $Id: _cdio_linux.c,v 1.8 2005/01/18 00:57:20 rocky Exp $ + $Id: _cdio_linux.c,v 1.9 2005/01/18 01:48:42 rocky Exp $ Copyright (C) 2001 Herbert Valerio Riedel Copyright (C) 2002, 2003, 2004 Rocky Bernstein @@ -27,7 +27,7 @@ # include "config.h" #endif -static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.8 2005/01/18 00:57:20 rocky Exp $"; +static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.9 2005/01/18 01:48:42 rocky Exp $"; #include @@ -985,7 +985,7 @@ static char checklist2[][40] = { {"?a hd?"}, {"?0 scd?"}, {"?0 sr?"}, {""} }; -/* Set operating speed */ +/* Set read blocksize */ static int set_blocksize_linux (void *p_user_data, int i_blocksize) { @@ -993,7 +993,7 @@ set_blocksize_linux (void *p_user_data, int i_blocksize) return scsi_mmc_set_blocksize(p_env->gen.cdio, i_blocksize); } -/* Set operating speed */ +/* Set CD-ROM drive speed */ static int set_speed_linux (void *p_user_data, int i_speed) { diff --git a/lib/driver/_cdio_sunos.c b/lib/driver/_cdio_sunos.c index ae59aa1a..1d53ff90 100644 --- a/lib/driver/_cdio_sunos.c +++ b/lib/driver/_cdio_sunos.c @@ -1,5 +1,5 @@ /* - $Id: _cdio_sunos.c,v 1.6 2005/01/17 17:20:09 rocky Exp $ + $Id: _cdio_sunos.c,v 1.7 2005/01/18 01:48:42 rocky Exp $ Copyright (C) 2001 Herbert Valerio Riedel Copyright (C) 2002, 2003, 2004, 2005 Rocky Bernstein @@ -38,7 +38,7 @@ #ifdef HAVE_SOLARIS_CDROM -static const char _rcsid[] = "$Id: _cdio_sunos.c,v 1.6 2005/01/17 17:20:09 rocky Exp $"; +static const char _rcsid[] = "$Id: _cdio_sunos.c,v 1.7 2005/01/18 01:48:42 rocky Exp $"; #ifdef HAVE_GLOB_H #include @@ -769,6 +769,24 @@ _cdio_get_track_msf(void *p_user_data, track_t i_track, msf_t *msf) } } +/* Set read blocksize */ +static int +set_blocksize_solaris (void *p_user_data, int i_blocksize) +{ + const _img_private_t *p_env = p_user_data; + return scsi_mmc_set_blocksize(p_env->gen.cdio, i_blocksize); +} + +/* Set operating speed */ +static int +set_speed_solaris (void *p_user_data, int i_speed) +{ + const _img_private_t *p_env = p_user_data; + + if (!p_env) return -1; + return ioctl(p_env->gen.fd, CDROMSDRVSPEED, i_speed); +} + #else /*! Return a string containing the default VCD device if none is specified. @@ -886,6 +904,9 @@ cdio_open_am_solaris (const char *psz_orig_source, const char *access_mode) _funcs.run_scsi_mmc_cmd = run_scsi_cmd_solaris; _funcs.stat_size = _cdio_stat_size; _funcs.set_arg = _set_arg_solaris; + _funcs.set_blocksize = set_blocksize_solaris; + _funcs.set_speed = set_speed_solaris; + _funcs.stat_size = _cdio_stat_size; _data = _cdio_malloc (sizeof (_img_private_t));