svn commit: r196955 - head/share/examples/scsi_target

Sean Bruno sbruno at FreeBSD.org
Mon Sep 7 23:16:28 UTC 2009


Author: sbruno
Date: Mon Sep  7 23:16:27 2009
New Revision: 196955
URL: http://svn.freebsd.org/changeset/base/196955

Log:
  A few enhancements I made while working on the Firewire target (sbp_targ).
  
  Update the error handling in a couple of cases to exit gracefully if
  certain mandatory conditions aren't met.
  
  Reduce the maximum number of initiators to 8 for this example code.  While
  1024 is more correct, this example code would act like it was stalled out
  even though it was merely allocating the needed structures in init_ccbs()
  
  Reviewed by:	scottl at freebsd.org

Modified:
  head/share/examples/scsi_target/scsi_target.c
  head/share/examples/scsi_target/scsi_target.h

Modified: head/share/examples/scsi_target/scsi_target.c
==============================================================================
--- head/share/examples/scsi_target/scsi_target.c	Mon Sep  7 21:58:54 2009	(r196954)
+++ head/share/examples/scsi_target/scsi_target.c	Mon Sep  7 23:16:27 2009	(r196955)
@@ -226,7 +226,7 @@ main(int argc, char *argv[])
 	/* Open backing store for IO */
 	file_fd = open(file_name, O_RDWR);
 	if (file_fd < 0)
-		err(1, "open backing store file");
+		errx(EX_NOINPUT, "open backing store file");
 
 	/* Check backing store size or use the size user gave us */
 	if (user_size == 0) {
@@ -291,7 +291,9 @@ main(int argc, char *argv[])
 	} while (targ_fd < 0 && errno == EBUSY);
 
 	if (targ_fd < 0)
-    	    err(1, "Tried to open %d devices, none available", unit);
+    	    errx(1, "Tried to open %d devices, none available", unit);
+	else
+	    warnx("opened /dev/targ%d", unit);
 
 	/* The first three are handled by kevent() later */
 	signal(SIGHUP, SIG_IGN);
@@ -318,6 +320,7 @@ main(int argc, char *argv[])
 	/* Set up inquiry data according to what SIM supports */
 	if (get_sim_flags(&sim_flags) != CAM_REQ_CMP)
 		errx(1, "get_sim_flags");
+
 	if (tcmd_init(req_flags, sim_flags) != 0)
 		errx(1, "Initializing tcmd subsystem failed");
 
@@ -327,6 +330,7 @@ main(int argc, char *argv[])
 
 	if (debug)
 		warnx("main loop beginning");
+
 	request_loop();
 
 	exit(0);

Modified: head/share/examples/scsi_target/scsi_target.h
==============================================================================
--- head/share/examples/scsi_target/scsi_target.h	Mon Sep  7 21:58:54 2009	(r196954)
+++ head/share/examples/scsi_target/scsi_target.h	Mon Sep  7 23:16:27 2009	(r196955)
@@ -35,7 +35,7 @@
  * Maximum number of parallel commands to accept,
  * 1024 for Fibre Channel (SPI is 16).
  */
-#define MAX_INITIATORS		1024
+#define MAX_INITIATORS		8
 #define	SECTOR_SIZE		512
 #define MAX_EVENTS		(MAX_INITIATORS + 5)
 				/* kqueue for AIO, signals */


More information about the svn-src-head mailing list