summaryrefslogtreecommitdiff
path: root/audio/cdparanoia/patches/patch-cf
diff options
context:
space:
mode:
Diffstat (limited to 'audio/cdparanoia/patches/patch-cf')
-rw-r--r--audio/cdparanoia/patches/patch-cf57
1 files changed, 30 insertions, 27 deletions
diff --git a/audio/cdparanoia/patches/patch-cf b/audio/cdparanoia/patches/patch-cf
index 314917061b7..c7d6dd3033a 100644
--- a/audio/cdparanoia/patches/patch-cf
+++ b/audio/cdparanoia/patches/patch-cf
@@ -1,7 +1,7 @@
-$NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
+$NetBSD: patch-cf,v 1.13 2013/12/12 16:41:32 jperkin Exp $
---- interface/scan_devices.c.orig 2008-08-26 12:55:22 +0300
-+++ interface/scan_devices.c 2009-08-26 09:50:54 +0300
+--- interface/scan_devices.c.orig 2008-08-26 09:55:22.000000000 +0000
++++ interface/scan_devices.c
@@ -1,6 +1,8 @@
/******************************************************************
* CopyPolicy: GNU Lesser General Public License 2.1 applies
@@ -20,7 +20,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
#define MAX_DEV_LEN 20 /* Safe because strings only come from below */
/* must be absolute paths! */
static char *scsi_cdrom_prefixes[]={
-@@ -52,11 +56,30 @@ static char *cdrom_devices[]={
+@@ -52,11 +56,33 @@ static char *cdrom_devices[]={
"/dev/cm206cd",
"/dev/gscd",
"/dev/optcd",NULL};
@@ -36,12 +36,15 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
+ "/dev/rcd?d",
+ "/dev/cd?c",
+ "/dev/cd?d", NULL};
++#elif defined(__sun)
++static char *cdrom_devices[] = {
++ "/dev/dsk/c?t?d?s2", NULL};
+#endif
/* Functions here look for a cdrom drive; full init of a drive type
happens in interface.c */
-+#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || (defined(__APPLE__) && defined(__MACH__))
++#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || (defined(__APPLE__) && defined(__MACH__)) || defined(__sun)
cdrom_drive *cdda_find_a_cdrom(int messagedest,char **messages){
+#if defined(__APPLE__) && defined(__MACH__)
+ cdrom_drive *d = calloc(1, sizeof(cdrom_drive));
@@ -51,7 +54,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
/* Brute force... */
int i=0;
-@@ -78,10 +101,12 @@ cdrom_drive *cdda_find_a_cdrom(int messa
+@@ -78,10 +104,12 @@ cdrom_drive *cdda_find_a_cdrom(int messa
if((d=cdda_identify(buffer,messagedest,messages)))
return(d);
idmessage(messagedest,messages,"",NULL);
@@ -64,7 +67,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
}
}else{
/* Name. Go for it. */
-@@ -93,11 +118,13 @@ cdrom_drive *cdda_find_a_cdrom(int messa
+@@ -93,11 +121,13 @@ cdrom_drive *cdda_find_a_cdrom(int messa
i++;
}
idmessage(messagedest,messages,
@@ -80,7 +83,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
cdrom_drive *cdda_identify(const char *device, int messagedest,char **messages){
struct stat st;
cdrom_drive *d=NULL;
-@@ -119,8 +146,14 @@ cdrom_drive *cdda_identify(const char *d
+@@ -119,8 +149,14 @@ cdrom_drive *cdda_identify(const char *d
/* an IDE device may have scsi-ide support, SG_IO support and cooked
support. Prefer the SCSI variants, they give the most control */
@@ -95,7 +98,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
#ifdef CDDA_TEST
if(!d)d=cdda_identify_test(device,messagedest,messages);
-@@ -148,6 +181,7 @@ char *test_resolve_symlink(const char *f
+@@ -148,6 +184,7 @@ char *test_resolve_symlink(const char *f
cdrom_drive *cdda_identify_cooked(const char *dev, int messagedest,
char **messages){
@@ -103,7 +106,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
cdrom_drive *d=NULL;
struct stat st;
int fd=-1, i;
-@@ -272,8 +306,60 @@ cdrom_drive *cdda_identify_cooked(const
+@@ -272,8 +309,60 @@ cdrom_drive *cdda_identify_cooked(const
}
idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description);
return(d);
@@ -164,7 +167,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
struct sg_id {
long l1; /* target | lun << 8 | channel << 16 | low_ino << 24 */
long l2; /* Unique id */
-@@ -288,12 +374,18 @@ typedef struct scsiid{
+@@ -288,12 +377,18 @@ typedef struct scsiid{
/* Even *this* isn't as simple as it bloody well should be :-P */
/* SG has an easy interface, but SCSI overall does not */
static int get_scsi_id(int fd, scsiid *id){
@@ -183,7 +186,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
if(ioctl(fd,SCSI_IOCTL_GET_IDLUN,&argid))return(-1);
id->bus=argid.l2; /* for now */
id->id=argid.l1&0xff;
-@@ -301,6 +393,13 @@ static int get_scsi_id(int fd, scsiid *i
+@@ -301,6 +396,13 @@ static int get_scsi_id(int fd, scsiid *i
if(ioctl(fd,SCSI_IOCTL_GET_BUS_NUMBER,&busarg)==0)
id->bus=busarg;
@@ -197,7 +200,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
return(0);
}
-@@ -400,6 +499,7 @@ matchfail:
+@@ -400,6 +502,7 @@ matchfail:
if(dev!=-1)close(dev);
return(NULL);
}
@@ -205,7 +208,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
void strscat(char *a,char *b,int n){
int i;
-@@ -411,6 +511,7 @@ void strscat(char *a,char *b,int n){
+@@ -411,6 +514,7 @@ void strscat(char *a,char *b,int n){
strcat(a," ");
}
@@ -213,7 +216,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
/* At this point, we're going to punt compatability before SG2, and
allow only SG2 and SG3 */
static int verify_SG_version(cdrom_drive *d,int messagedest,
-@@ -488,7 +589,9 @@ int check_sgio(const char *device, int m
+@@ -488,7 +592,9 @@ int check_sgio(const char *device, int m
close(fd);
return 0;
}
@@ -223,7 +226,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
/* scanning is always done by specifying a device name in
specialized_device; generic_device is only filled when the generic device
force option is used, and in that case, use of SG (not SGIO) should indeed be
-@@ -527,11 +630,13 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -527,11 +633,13 @@ cdrom_drive *cdda_identify_scsi(const ch
return(NULL);
}
@@ -237,7 +240,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
}
if(specialized_device){
-@@ -553,6 +658,7 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -553,6 +661,7 @@ cdrom_drive *cdda_identify_scsi(const ch
if(specialized_device==NULL)goto cdda_identify_scsi_fail;
}
@@ -245,7 +248,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
/* sgio is always preferred if it's there, unless user has forced the generic scsi device name */
if(use_sgio){
if(check_sgio(specialized_device,messagedest,messages)){
-@@ -562,18 +668,24 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -562,18 +671,24 @@ cdrom_drive *cdda_identify_scsi(const ch
use_sgio=0;
}
}
@@ -270,7 +273,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
if(generic_device){
specialized_device=
scsi_match(generic_device,scsi_cdrom_prefixes,
-@@ -589,6 +701,12 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -589,6 +704,12 @@ cdrom_drive *cdda_identify_scsi(const ch
if(!generic_device)
goto cdda_identify_scsi_fail;
}
@@ -283,7 +286,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
}
}
-@@ -639,6 +757,7 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -639,6 +760,7 @@ cdrom_drive *cdda_identify_scsi(const ch
type=(int)(i_st.st_rdev>>8);
if(!use_sgio){
@@ -291,7 +294,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
if(type==SCSI_CDROM_MAJOR){
if (!S_ISBLK(i_st.st_mode)) {
idmessage(messagedest,messages,"\t\tSCSI CDROM device %s not a "
-@@ -650,10 +769,12 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -650,10 +772,12 @@ cdrom_drive *cdda_identify_scsi(const ch
"major number",specialized_device);
goto cdda_identify_scsi_fail;
}
@@ -304,7 +307,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
if((int)(g_st.st_rdev>>8)==SCSI_GENERIC_MAJOR){
if (!S_ISCHR(g_st.st_mode)) {
idmessage(messagedest,messages,"\t\tGeneric SCSI device %s not a "
-@@ -665,6 +786,7 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -665,6 +789,7 @@ cdrom_drive *cdda_identify_scsi(const ch
"major number",generic_device);
goto cdda_identify_scsi_fail;
}
@@ -312,7 +315,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
}
d=calloc(1,sizeof(cdrom_drive));
-@@ -685,6 +807,7 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -685,6 +810,7 @@ cdrom_drive *cdda_identify_scsi(const ch
d->private->sg_buffer=(unsigned char *)(d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
g_fd=d->cdda_fd=dup(d->ioctl_fd);
}else{
@@ -320,7 +323,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
version=verify_SG_version(d,messagedest,messages);
switch(version){
case -1:case 0:case 1:
-@@ -694,6 +817,9 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -694,6 +820,9 @@ cdrom_drive *cdda_identify_scsi(const ch
d->interface=GENERIC_SCSI;
break;
}
@@ -330,7 +333,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
/* malloc our big buffer for scsi commands */
d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
-@@ -740,6 +866,15 @@ cdrom_drive *cdda_identify_scsi(const ch
+@@ -740,6 +869,15 @@ cdrom_drive *cdda_identify_scsi(const ch
}
/* It would seem some TOSHIBA CDROMs gets things wrong */
@@ -346,7 +349,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
if (p &&
!strncmp (p + 8, "TOSHIBA", 7) &&
!strncmp (p + 16, "CD-ROM", 6) &&
-@@ -780,6 +915,88 @@ cdda_identify_scsi_fail:
+@@ -780,6 +918,88 @@ cdda_identify_scsi_fail:
}
return(NULL);
}
@@ -435,7 +438,7 @@ $NetBSD: patch-cf,v 1.12 2009/08/29 04:54:52 hasso Exp $
#ifdef CDDA_TEST
-@@ -829,3 +1046,4 @@ cdrom_drive *cdda_identify_test(const ch
+@@ -829,3 +1049,4 @@ cdrom_drive *cdda_identify_test(const ch
}
#endif