Module Name:    src
Committed By:   pgoyette
Date:           Sun May 30 04:38:04 UTC 2010

Modified Files:
        src/distrib/sets/lists/modules: mi
        src/sys/dev/scsipi: atapiconf.c scsiconf.c scsipi_base.c
            scsipi_verbose.c scsipiconf.c scsipiconf.h st.c
        src/sys/modules: Makefile
Added Files:
        src/sys/modules/scsiverbose: Makefile

Log Message:
Extract SCSIVERBOSE into a kernel module.  The module can be builtin
by defining 'options SCSIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not SCSI or
atapi support exists.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/distrib/sets/lists/modules/mi
cvs rdiff -u -r1.81 -r1.82 src/sys/dev/scsipi/atapiconf.c
cvs rdiff -u -r1.256 -r1.257 src/sys/dev/scsipi/scsiconf.c
cvs rdiff -u -r1.151 -r1.152 src/sys/dev/scsipi/scsipi_base.c
cvs rdiff -u -r1.29 -r1.30 src/sys/dev/scsipi/scsipi_verbose.c
cvs rdiff -u -r1.36 -r1.37 src/sys/dev/scsipi/scsipiconf.c
cvs rdiff -u -r1.116 -r1.117 src/sys/dev/scsipi/scsipiconf.h
cvs rdiff -u -r1.216 -r1.217 src/sys/dev/scsipi/st.c
cvs rdiff -u -r1.43 -r1.44 src/sys/modules/Makefile
cvs rdiff -u -r0 -r1.1 src/sys/modules/scsiverbose/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/modules/mi
diff -u src/distrib/sets/lists/modules/mi:1.15 src/distrib/sets/lists/modules/mi:1.16
--- src/distrib/sets/lists/modules/mi:1.15	Sat May 29 01:14:30 2010
+++ src/distrib/sets/lists/modules/mi	Sun May 30 04:38:04 2010
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.15 2010/05/29 01:14:30 pgoyette Exp $
+# $NetBSD: mi,v 1.16 2010/05/30 04:38:04 pgoyette Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -98,6 +98,8 @@
 ./@MODULEDIR@/puffs/puffs.kmod			base-kernel-modules	kmod
 ./@MODULEDIR@/putter				base-kernel-modules	kmod
 ./@MODULEDIR@/putter/putter.kmod		base-kernel-modules	kmod
+./@MODULEDIR@/scsiverbose			base-kernel-modules	kmod
+./@MODULEDIR@/scsiverbose/scsiverbose.kmod	base-kernel-modules	kmod
 ./@MODULEDIR@/sdt				base-kernel-modules	kmod,dtrace
 ./@MODULEDIR@/sdt/sdt.kmod			base-kernel-modules	kmod,dtrace
 ./@MODULEDIR@/secmodel_bsd44			base-kernel-modules	kmod

Index: src/sys/dev/scsipi/atapiconf.c
diff -u src/sys/dev/scsipi/atapiconf.c:1.81 src/sys/dev/scsipi/atapiconf.c:1.82
--- src/sys/dev/scsipi/atapiconf.c:1.81	Thu Nov 12 19:44:17 2009
+++ src/sys/dev/scsipi/atapiconf.c	Sun May 30 04:38:04 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: atapiconf.c,v 1.81 2009/11/12 19:44:17 dyoung Exp $	*/
+/*	$NetBSD: atapiconf.c,v 1.82 2010/05/30 04:38:04 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 1996, 2001 Manuel Bouyer.  All rights reserved.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: atapiconf.c,v 1.81 2009/11/12 19:44:17 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: atapiconf.c,v 1.82 2010/05/30 04:38:04 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -160,6 +160,7 @@
 		aprint_error_dev(self, "couldn't establish power handler\n");
 
 	/* Probe the bus for devices. */
+	scsipi_verbose_ctl(true);
 	atapi_probe_bus(sc, -1);
 }
 
@@ -206,6 +207,7 @@
 			return (error);
 		KASSERT(scsipi_lookup_periph(chan, target, 0) == NULL);
 	}
+	scsipi_verbose_ctl(false);
 	return (0);
 }
 

Index: src/sys/dev/scsipi/scsiconf.c
diff -u src/sys/dev/scsipi/scsiconf.c:1.256 src/sys/dev/scsipi/scsiconf.c:1.257
--- src/sys/dev/scsipi/scsiconf.c:1.256	Tue Apr 27 18:55:12 2010
+++ src/sys/dev/scsipi/scsiconf.c	Sun May 30 04:38:04 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: scsiconf.c,v 1.256 2010/04/27 18:55:12 dyoung Exp $	*/
+/*	$NetBSD: scsiconf.c,v 1.257 2010/05/30 04:38:04 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999, 2004 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: scsiconf.c,v 1.256 2010/04/27 18:55:12 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: scsiconf.c,v 1.257 2010/05/30 04:38:04 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -182,6 +182,7 @@
 	scsi_initq = malloc(sizeof(struct scsi_initq), M_DEVBUF, M_WAITOK);
 	scsi_initq->sc_channel = chan;
 	TAILQ_INSERT_TAIL(&scsi_initq_head, scsi_initq, scsi_initq);
+	scsipi_verbose_ctl(true);
         config_pending_incr();
 	if (scsipi_channel_init(chan)) {
 		aprint_error_dev(sc->sc_dev, "failed to init channel\n");
@@ -225,6 +226,7 @@
 	simple_lock(&scsibus_interlock);
 	TAILQ_REMOVE(&scsi_initq_head, scsi_initq, scsi_initq);
 	simple_unlock(&scsibus_interlock);
+	scsipi_verbose_ctl(false);
 
 	free(scsi_initq, M_DEVBUF);
 	wakeup(&scsi_initq_head);

Index: src/sys/dev/scsipi/scsipi_base.c
diff -u src/sys/dev/scsipi/scsipi_base.c:1.151 src/sys/dev/scsipi/scsipi_base.c:1.152
--- src/sys/dev/scsipi/scsipi_base.c:1.151	Fri Feb 12 11:39:33 2010
+++ src/sys/dev/scsipi/scsipi_base.c	Sun May 30 04:38:04 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: scsipi_base.c,v 1.151 2010/02/12 11:39:33 pooka Exp $	*/
+/*	$NetBSD: scsipi_base.c,v 1.152 2010/05/30 04:38:04 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2002, 2003, 2004 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: scsipi_base.c,v 1.151 2010/02/12 11:39:33 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: scsipi_base.c,v 1.152 2010/05/30 04:38:04 pgoyette Exp $");
 
 #include "opt_scsi.h"
 
@@ -47,6 +47,7 @@
 #include <sys/proc.h>
 #include <sys/kthread.h>
 #include <sys/hash.h>
+#include <sys/module.h>
 
 #include <uvm/uvm_extern.h>
 
@@ -82,6 +83,27 @@
 
 static struct pool scsipi_xfer_pool;
 
+/*              
+ * Load/unload the scsiverbose module
+ */
+void
+scsipi_verbose_ctl(bool load)
+{
+	static int loaded = 0;
+ 
+	if (load) {
+		if (loaded++ == 0)
+			if (module_load("scsiverbose", MODCTL_LOAD_FORCE,
+					NULL, MODULE_CLASS_MISC) != 0)
+		loaded = 0;
+		return;
+	}
+	if (loaded == 0)
+		return;
+	if (--loaded == 0)
+		module_unload("scsiverbose");
+} 
+
 /*
  * scsipi_init:
  *
@@ -707,7 +729,7 @@
 /*
  * scsipi_print_cdb:
  * prints a command descriptor block (for debug purpose, error messages,
- * SCSIPI_VERBOSE, ...)
+ * SCSIVERBOSE, ...)
  */
 void
 scsipi_print_cdb(struct scsipi_generic *cmd)
@@ -768,7 +790,6 @@
 	struct scsipi_periph *periph = xs->xs_periph;
 	u_int8_t key;
 	int error;
-#ifndef	SCSIVERBOSE
 	u_int32_t info;
 	static const char *error_mes[] = {
 		"soft error (corrected)",
@@ -780,7 +801,6 @@
 		"search returned equal", "volume overflow",
 		"verify miscompare", "unknown error key"
 	};
-#endif
 
 	sense = &xs->sense.scsi_sense;
 #ifdef SCSIPI_DEBUG
@@ -857,12 +877,10 @@
 		printf(" DEFERRED ERROR, key = 0x%x\n", key);
 		/* FALLTHROUGH */
 	case 0x70:
-#ifndef	SCSIVERBOSE
 		if ((sense->response_code & SSD_RCODE_VALID) != 0)
 			info = _4btol(sense->info);
 		else
 			info = 0;
-#endif
 		key = SSD_SENSE_KEY(sense->flags);
 
 		switch (key) {
@@ -947,44 +965,44 @@
 			break;
 		}
 
-#ifdef SCSIVERBOSE
-		if (key && (xs->xs_control & XS_CTL_SILENT) == 0)
-			scsipi_print_sense(xs, 0);
-#else
-		if (key) {
-			scsipi_printaddr(periph);
-			printf("%s", error_mes[key - 1]);
-			if ((sense->response_code & SSD_RCODE_VALID) != 0) {
-				switch (key) {
-				case SKEY_NOT_READY:
-				case SKEY_ILLEGAL_REQUEST:
-				case SKEY_UNIT_ATTENTION:
-				case SKEY_DATA_PROTECT:
-					break;
-				case SKEY_BLANK_CHECK:
-					printf(", requested size: %d (decimal)",
-					    info);
-					break;
-				case SKEY_ABORTED_COMMAND:
-					if (xs->xs_retries)
-						printf(", retrying");
-					printf(", cmd 0x%x, info 0x%x",
-					    xs->cmd->opcode, info);
-					break;
-				default:
-					printf(", info = %d (decimal)", info);
-				}
-			}
-			if (sense->extra_len != 0) {
-				int n;
-				printf(", data =");
-				for (n = 0; n < sense->extra_len; n++)
-					printf(" %02x",
-					    sense->csi[n]);
+		/* Print verbose decode if appropriate and possible */
+		if ((key == 0) ||
+		    ((xs->xs_control & XS_CTL_SILENT) != 0) ||
+		    (scsipi_print_sense(xs, 0) != 0))
+			return (error);
+
+		/* Print brief(er) sense information */
+		scsipi_printaddr(periph);
+		printf("%s", error_mes[key - 1]);
+		if ((sense->response_code & SSD_RCODE_VALID) != 0) {
+			switch (key) {
+			case SKEY_NOT_READY:
+			case SKEY_ILLEGAL_REQUEST:
+			case SKEY_UNIT_ATTENTION:
+			case SKEY_DATA_PROTECT:
+				break;
+			case SKEY_BLANK_CHECK:
+				printf(", requested size: %d (decimal)",
+				    info);
+				break;
+			case SKEY_ABORTED_COMMAND:
+				if (xs->xs_retries)
+					printf(", retrying");
+				printf(", cmd 0x%x, info 0x%x",
+				    xs->cmd->opcode, info);
+				break;
+			default:
+				printf(", info = %d (decimal)", info);
 			}
-			printf("\n");
 		}
-#endif
+		if (sense->extra_len != 0) {
+			int n;
+			printf(", data =");
+			for (n = 0; n < sense->extra_len; n++)
+				printf(" %02x",
+				    sense->csi[n]);
+		}
+		printf("\n");
 		return (error);
 
 	/*
@@ -1441,9 +1459,7 @@
 			if (xs->resid < xs->datalen) {
 				printf("we read %d bytes of sense anyway:\n",
 				    xs->datalen - xs->resid);
-#ifdef SCSIVERBOSE
 				scsipi_print_sense_data((void *)xs->data, 0);
-#endif
 			}
 			return EINVAL;
 		}

Index: src/sys/dev/scsipi/scsipi_verbose.c
diff -u src/sys/dev/scsipi/scsipi_verbose.c:1.29 src/sys/dev/scsipi/scsipi_verbose.c:1.30
--- src/sys/dev/scsipi/scsipi_verbose.c:1.29	Mon Apr 28 20:23:58 2008
+++ src/sys/dev/scsipi/scsipi_verbose.c	Sun May 30 04:38:04 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: scsipi_verbose.c,v 1.29 2008/04/28 20:23:58 martin Exp $	*/
+/*	$NetBSD: scsipi_verbose.c,v 1.30 2010/05/30 04:38:04 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: scsipi_verbose.c,v 1.29 2008/04/28 20:23:58 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: scsipi_verbose.c,v 1.30 2010/05/30 04:38:04 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/time.h>
@@ -39,8 +39,7 @@
 
 #ifdef _KERNEL
 #include <sys/systm.h>
-
-#include "opt_scsi.h"
+#include <sys/module.h>
 #else
 #include <stdio.h>
 #endif
@@ -48,6 +47,10 @@
 #include <dev/scsipi/scsipiconf.h>
 #include <dev/scsipi/scsiconf.h>
 
+int	scsipi_print_sense_real(struct scsipi_xfer *, int);
+void	scsipi_print_sense_data_real(struct scsi_sense_data *, int);
+char   *scsipi_decode_sense_real(void *, int);
+
 static const char *sense_keys[16] = {
 	"No Additional Sense",
 	"Recovered Error",
@@ -597,6 +600,35 @@
 { 0x00, 0x00, NULL }
 };
 
+#ifdef _KERNEL
+MODULE(MODULE_CLASS_MISC, scsiverbose, NULL);
+
+static int
+scsiverbose_modcmd(modcmd_t cmd, void *arg)
+{
+	switch (cmd) {
+	case MODULE_CMD_INIT:
+		scsipi_print_sense = scsipi_print_sense_real;
+		scsipi_print_sense_data = scsipi_print_sense_data_real;
+		scsipi_decode_sense = scsipi_decode_sense_real;
+		return 0;
+	case MODULE_CMD_FINI:
+		scsipi_print_sense = scsipi_print_sense_stub;
+		scsipi_print_sense_data = scsipi_print_sense_data_stub;
+		scsipi_decode_sense = scsipi_decode_sense_stub;
+		return 0;
+	default:
+		return ENOTTY;
+	}
+}
+#else
+int	(*scsipi_print_sense)(struct scsipi_xfer *, int) =
+		scsipi_print_sense_real;
+void	(*scsipi_print_sense_data)(struct scsi_sense_data *, int) =
+		scsipi_print_sense_data_real; 
+char   *(*scsipi_decode_sense)(void *, int) = scsipi_decode_sense_real;
+#endif
+
 static void
 asc2ascii(u_char asc, u_char ascq, char *result, size_t l)
 {
@@ -620,7 +652,7 @@
 }
 
 void
-scsipi_print_sense_data(struct scsi_sense_data *sense, int verbosity)
+scsipi_print_sense_data_real(struct scsi_sense_data *sense, int verbosity)
 {
 	int32_t info;
 	int i, j, k;
@@ -737,7 +769,7 @@
 }
 
 char *
-scsipi_decode_sense(void *sinfo, int flag)
+scsipi_decode_sense_real(void *sinfo, int flag)
 {
 	unsigned char *snsbuf;
 	unsigned char skey;
@@ -798,12 +830,13 @@
 	return (NULL);
 }
 
-void
-scsipi_print_sense(struct scsipi_xfer *xs, int verbosity)
+int
+scsipi_print_sense_real(struct scsipi_xfer *xs, int verbosity)
 {
 	scsipi_printaddr(xs->xs_periph);
  	printf(" Check Condition on CDB: ");
 	scsipi_print_cdb(xs->cmd);
  	printf("\n");
 	scsipi_print_sense_data(&xs->sense.scsi_sense, verbosity);
+	return 1;
 }

Index: src/sys/dev/scsipi/scsipiconf.c
diff -u src/sys/dev/scsipi/scsipiconf.c:1.36 src/sys/dev/scsipi/scsipiconf.c:1.37
--- src/sys/dev/scsipi/scsipiconf.c:1.36	Mon Apr 28 20:23:58 2008
+++ src/sys/dev/scsipi/scsipiconf.c	Sun May 30 04:38:04 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: scsipiconf.c,v 1.36 2008/04/28 20:23:58 martin Exp $	*/
+/*	$NetBSD: scsipiconf.c,v 1.37 2010/05/30 04:38:04 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999, 2004 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: scsipiconf.c,v 1.36 2008/04/28 20:23:58 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: scsipiconf.c,v 1.37 2010/05/30 04:38:04 pgoyette Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -62,6 +62,29 @@
 
 #define	STRVIS_ISWHITE(x) ((x) == ' ' || (x) == '\0' || (x) == (u_char)'\377')
 
+/* Function pointers and stub routines for scsiverbose module */
+int     (*scsipi_print_sense)(struct scsipi_xfer *, int) =
+		scsipi_print_sense_stub;
+void    (*scsipi_print_sense_data)(struct scsi_sense_data *, int) =
+		scsipi_print_sense_data_stub;
+char   *(*scsipi_decode_sense)(void *, int) = scsipi_decode_sense_stub;
+
+int     scsipi_print_sense_stub(struct scsipi_xfer * xs, int verbosity)
+{
+	return 0;
+}
+
+void    scsipi_print_sense_data_stub(struct scsi_sense_data *sense,
+				     int verbosity)
+{
+	return;
+}
+
+char   *scsipi_decode_sense_stub(void *sinfo, int flag)
+{
+	return NULL;
+}
+
 int
 scsipi_command(struct scsipi_periph *periph, struct scsipi_generic *cmd,
     int cmdlen, u_char *data_addr, int datalen, int retries, int timeout,

Index: src/sys/dev/scsipi/scsipiconf.h
diff -u src/sys/dev/scsipi/scsipiconf.h:1.116 src/sys/dev/scsipi/scsipiconf.h:1.117
--- src/sys/dev/scsipi/scsipiconf.h:1.116	Wed Oct 21 21:12:05 2009
+++ src/sys/dev/scsipi/scsipiconf.h	Sun May 30 04:38:04 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: scsipiconf.h,v 1.116 2009/10/21 21:12:05 rmind Exp $	*/
+/*	$NetBSD: scsipiconf.h,v 1.117 2010/05/30 04:38:04 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2004 The NetBSD Foundation, Inc.
@@ -623,6 +623,7 @@
 
 #ifdef _KERNEL
 void	scsipi_init(void);
+void	scsipi_verbose_ctl(bool);
 int	scsipi_command(struct scsipi_periph *, struct scsipi_generic *, int,
 	    u_char *, int, int, int, struct buf *, int);
 void	scsipi_create_completion_thread(void *);
@@ -650,11 +651,16 @@
 void	scsipi_wait_drain(struct scsipi_periph *);
 void	scsipi_kill_pending(struct scsipi_periph *);
 struct scsipi_periph *scsipi_alloc_periph(int);
-#ifdef SCSIVERBOSE
-void	scsipi_print_sense(struct scsipi_xfer *, int);
-void	scsipi_print_sense_data(struct scsi_sense_data *, int);
-char   *scsipi_decode_sense(void *, int);
-#endif
+
+/* Function pointers for scsiverbose module */
+extern int	(*scsipi_print_sense)(struct scsipi_xfer *, int);
+extern void	(*scsipi_print_sense_data)(struct scsi_sense_data *, int);
+extern char    *(*scsipi_decode_sense)(void *, int);
+
+int     scsipi_print_sense_stub(struct scsipi_xfer *, int);
+void    scsipi_print_sense_data_stub(struct scsi_sense_data *, int);
+char   *scsipi_decode_sense_stub(void *, int);
+
 void	scsipi_print_cdb(struct scsipi_generic *cmd);
 int	scsipi_thread_call_callback(struct scsipi_channel *,
 	    void (*callback)(struct scsipi_channel *, void *),

Index: src/sys/dev/scsipi/st.c
diff -u src/sys/dev/scsipi/st.c:1.216 src/sys/dev/scsipi/st.c:1.217
--- src/sys/dev/scsipi/st.c:1.216	Sun Dec  6 22:48:17 2009
+++ src/sys/dev/scsipi/st.c	Sun May 30 04:38:04 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: st.c,v 1.216 2009/12/06 22:48:17 dyoung Exp $ */
+/*	$NetBSD: st.c,v 1.217 2010/05/30 04:38:04 pgoyette Exp $ */
 
 /*-
  * Copyright (c) 1998, 2004 The NetBSD Foundation, Inc.
@@ -50,7 +50,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: st.c,v 1.216 2009/12/06 22:48:17 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: st.c,v 1.217 2010/05/30 04:38:04 pgoyette Exp $");
 
 #include "opt_scsi.h"
 
@@ -2270,9 +2270,12 @@
 		doprint = 0;
 
 	if (doprint) {
-#ifdef	SCSIVERBOSE
-		scsipi_print_sense(xs, 0);
-#else
+
+		/* Print verbose sense info if possible */
+		if (scsipi_print_sense(xs, 0) != 0)
+			return (retval);
+
+		/* Print less-verbose sense info */
 		scsipi_printaddr(periph);
 		printf("Sense Key 0x%02x", key);
 		if ((sense->response_code & SSD_RCODE_VALID) != 0) {
@@ -2303,7 +2306,6 @@
 				printf(" %02x", sense->csi[n]);
 		}
 		printf("\n");
-#endif
 	}
 	return (retval);
 }

Index: src/sys/modules/Makefile
diff -u src/sys/modules/Makefile:1.43 src/sys/modules/Makefile:1.44
--- src/sys/modules/Makefile:1.43	Sat May 29 01:14:30 2010
+++ src/sys/modules/Makefile	Sun May 30 04:38:03 2010
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.43 2010/05/29 01:14:30 pgoyette Exp $
+#	$NetBSD: Makefile,v 1.44 2010/05/30 04:38:03 pgoyette Exp $
 
 .include <bsd.own.mk>
 
@@ -45,6 +45,7 @@
 SUBDIR+=	puffs
 SUBDIR+=	putter
 SUBDIR+=	miniroot
+SUBDIR+=	scsiverbose
 SUBDIR+=	secmodel_bsd44
 SUBDIR+=	secmodel_overlay
 SUBDIR+=	securelevel

Added files:

Index: src/sys/modules/scsiverbose/Makefile
diff -u /dev/null src/sys/modules/scsiverbose/Makefile:1.1
--- /dev/null	Sun May 30 04:38:04 2010
+++ src/sys/modules/scsiverbose/Makefile	Sun May 30 04:38:03 2010
@@ -0,0 +1,10 @@
+#	$NetBSD: Makefile,v 1.1 2010/05/30 04:38:03 pgoyette Exp $
+
+.include "../Makefile.inc"
+
+KMOD=	scsiverbose
+
+.PATH:	${S}/dev/scsipi
+SRCS=	scsipi_verbose.c
+
+.include <bsd.kmodule.mk>

Reply via email to