[Debburn-changes] r571 - cdrkit/trunk/libusal

Eduard Bloch blade at alioth.debian.org
Thu Dec 7 11:13:13 CET 2006


Author: blade
Date: 2006-12-07 11:13:12 +0100 (Thu, 07 Dec 2006)
New Revision: 571

Modified:
   cdrkit/trunk/libusal/scsi-linux-sg.c
Log:
Some reformating to get better reading flow, and replaced USE_ATA with USE_OLD_ATAPI for less confusion

Modified: cdrkit/trunk/libusal/scsi-linux-sg.c
===================================================================
--- cdrkit/trunk/libusal/scsi-linux-sg.c	2006-12-06 23:33:05 UTC (rev 570)
+++ cdrkit/trunk/libusal/scsi-linux-sg.c	2006-12-07 10:13:12 UTC (rev 571)
@@ -109,7 +109,7 @@
 #include <linux/cdrom.h>
 
 #if	defined(CDROM_PACKET_SIZE) && defined(CDROM_SEND_PACKET)
-#define	USE_ATA
+#define	USE_OLD_ATAPI
 #endif
 
 /*
@@ -165,7 +165,7 @@
 #define	MAX_TGT		16
 #define	MAX_LUN		8
 
-#ifdef	USE_ATA
+#ifdef	USE_OLD_ATAPI
 /*
  * # of virtual buses (schilly_host number)
  */
@@ -189,7 +189,7 @@
 	long	xbufsize;
 	char	*xbuf;
 	char	*SCSIbuf;
-#ifdef	USE_ATA
+#ifdef	USE_OLD_ATAPI
 	ata_buscookies	bc[MAX_SCHILLY_HOSTS];
 #endif
 };
@@ -219,7 +219,7 @@
 #if	defined(USE_PG) && !defined(USE_PG_ONLY)
 #include "scsi-linux-pg.c"
 #endif
-#ifdef	USE_ATA
+#ifdef	USE_OLD_ATAPI
 #include "scsi-linux-ata.c"
 #endif
 
@@ -322,7 +322,7 @@
 #ifdef	USE_PG
 	pg_help(usalp, f);
 #endif
-#ifdef	USE_ATA
+#ifdef	USE_OLD_ATAPI
 	usalo_ahelp(usalp, f);
 #endif
 	__usal_help(f, "ATA", "ATA Packet specific SCSI transport using sg interface",
@@ -345,6 +345,7 @@
 	char		devname[64];
 		BOOL	use_ata = FALSE;
 
+
 	if (busno >= MAX_SCG || tgt >= MAX_TGT || tlun >= MAX_LUN) {
 		errno = EINVAL;
 		if (usalp->errstr)
@@ -354,7 +355,7 @@
 		return (-1);
 	}
 	if (device != NULL && *device != '\0') {
-#ifdef	USE_ATA
+#ifdef	USE_OLD_ATAPI
 		if (strncmp(device, "ATAPI", 5) == 0) {
 			usalp->ops = &ata_ops;
 			return (SCGO_OPEN(usalp, device));
@@ -435,75 +436,81 @@
 					nopen++;
 			}
 		}
+
+		if(nopen==0)
+			return(0);
 	}
-	if (use_ata && nopen == 0)
-		return (0);
 	if (nopen > 0 && usalp->errstr)
 		usalp->errstr[0] = '\0';
 
-	if (nopen == 0) for (i = 0; i < 32; i++) {
-		snprintf(devname, sizeof (devname), "/dev/sg%d", i);
-					/* O_NONBLOCK is dangerous */
-		f = sg_open_excl(devname, O_RDWR | O_NONBLOCK);
-		if (f < 0) {
-			/*
-			 * Set up error string but let us clear it later
-			 * if at least one open succeeded.
-			 */
-			if (usalp->errstr)
-				snprintf(usalp->errstr, SCSI_ERRSTR_SIZE,
-							"Cannot open '%s'", devname);
-			if(errno == EACCES || errno==EPERM)
-				continue;
-			if (errno != ENOENT && errno != ENXIO && errno != ENODEV) {
+	if (nopen == 0) {
+		for (i = 0; i < 32; i++) {
+			snprintf(devname, sizeof (devname), "/dev/sg%d", i);
+			/* O_NONBLOCK is dangerous */
+			f = sg_open_excl(devname, O_RDWR | O_NONBLOCK);
+			if (f < 0) {
+				/*
+				 * Set up error string but let us clear it later
+				 * if at least one open succeeded.
+				 */
 				if (usalp->errstr)
 					snprintf(usalp->errstr, SCSI_ERRSTR_SIZE,
 							"Cannot open '%s'", devname);
-				return (0);
+				if(errno == EACCES || errno==EPERM)
+					continue;
+				if (errno != ENOENT && errno != ENXIO && errno != ENODEV) {
+					if (usalp->errstr)
+						snprintf(usalp->errstr, SCSI_ERRSTR_SIZE,
+								"Cannot open '%s'", devname);
+					return (0);
+				}
+			} else {
+				sg_clearnblock(f);	/* Be very proper about this */
+				if (sg_setup(usalp, f, busno, tgt, tlun, -1))
+					return (++nopen);
+				if (busno < 0 && tgt < 0 && tlun < 0)
+					nopen++;
 			}
-		} else {
-			sg_clearnblock(f);	/* Be very proper about this */
-			if (sg_setup(usalp, f, busno, tgt, tlun, -1))
-				return (++nopen);
-			if (busno < 0 && tgt < 0 && tlun < 0)
-				nopen++;
 		}
 	}
 	if (nopen > 0 && usalp->errstr)
 		usalp->errstr[0] = '\0';
 
-	if (nopen == 0) for (i = 0; i <= 25; i++) {
-		snprintf(devname, sizeof (devname), "/dev/sg%c", i+'a');
-					/* O_NONBLOCK is dangerous */
-		f = sg_open_excl(devname, O_RDWR | O_NONBLOCK);
-		if (f < 0) {
-			/*
-			 * Set up error string but let us clear it later
-			 * if at least one open succeeded.
-			 */
-			if (usalp->errstr)
-				snprintf(usalp->errstr, SCSI_ERRSTR_SIZE,
-							"Cannot open '%s'", devname);
-			if(errno == EACCES || errno==EPERM)
-				continue;
-			if (errno != ENOENT && errno != ENXIO && errno != ENODEV) {
+	if (nopen == 0) {
+		for (i = 0; i <= 25; i++) {
+			snprintf(devname, sizeof (devname), "/dev/sg%c", i+'a');
+			/* O_NONBLOCK is dangerous */
+			f = sg_open_excl(devname, O_RDWR | O_NONBLOCK);
+			if (f < 0) {
+				/*
+				 * Set up error string but let us clear it later
+				 * if at least one open succeeded.
+				 */
 				if (usalp->errstr)
 					snprintf(usalp->errstr, SCSI_ERRSTR_SIZE,
 							"Cannot open '%s'", devname);
-				return (0);
+				if(errno == EACCES || errno==EPERM)
+					continue;
+				if (errno != ENOENT && errno != ENXIO && errno != ENODEV) {
+					if (usalp->errstr)
+						snprintf(usalp->errstr, SCSI_ERRSTR_SIZE,
+								"Cannot open '%s'", devname);
+					return (0);
+				}
+			} else {
+				sg_clearnblock(f);	/* Be very proper about this */
+				if (sg_setup(usalp, f, busno, tgt, tlun, -1))
+					return (++nopen);
+				if (busno < 0 && tgt < 0 && tlun < 0)
+					nopen++;
 			}
-		} else {
-			sg_clearnblock(f);	/* Be very proper about this */
-			if (sg_setup(usalp, f, busno, tgt, tlun, -1))
-				return (++nopen);
-			if (busno < 0 && tgt < 0 && tlun < 0)
-				nopen++;
 		}
 	}
 	if (nopen > 0 && usalp->errstr)
 		usalp->errstr[0] = '\0';
 
 openbydev:
+
 	if (device != NULL && *device != '\0') {
 		b = -1;
 		if (strlen(device) == 8 && strncmp(device, "/dev/hd", 7) == 0) {




More information about the Debburn-changes mailing list