Module Name:    src
Committed By:   christos
Date:           Thu Mar 12 15:33:10 UTC 2015

Modified Files:
        src/sys/dev: bio.c biovar.h
        src/sys/dev/ic: cac.c ciss.c mfi.c
        src/sys/dev/pci: arcmsr.c mpii.c

Log Message:
Dedup the conversion of bioc_disk and bioc_vol to envsys_data_t


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/dev/bio.c
cvs rdiff -u -r1.8 -r1.9 src/sys/dev/biovar.h
cvs rdiff -u -r1.54 -r1.55 src/sys/dev/ic/cac.c
cvs rdiff -u -r1.32 -r1.33 src/sys/dev/ic/ciss.c
cvs rdiff -u -r1.55 -r1.56 src/sys/dev/ic/mfi.c
cvs rdiff -u -r1.31 -r1.32 src/sys/dev/pci/arcmsr.c
cvs rdiff -u -r1.5 -r1.6 src/sys/dev/pci/mpii.c

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

Modified files:

Index: src/sys/dev/bio.c
diff -u src/sys/dev/bio.c:1.11 src/sys/dev/bio.c:1.12
--- src/sys/dev/bio.c:1.11	Fri Jul 25 04:10:35 2014
+++ src/sys/dev/bio.c	Thu Mar 12 11:33:10 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: bio.c,v 1.11 2014/07/25 08:10:35 dholland Exp $ */
+/*	$NetBSD: bio.c,v 1.12 2015/03/12 15:33:10 christos Exp $ */
 /*	$OpenBSD: bio.c,v 1.9 2007/03/20 02:35:55 marco Exp $	*/
 
 /*
@@ -28,7 +28,7 @@
 /* A device controller ioctl tunnelling device.  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bio.c,v 1.11 2014/07/25 08:10:35 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bio.c,v 1.12 2015/03/12 15:33:10 christos Exp $");
 
 #include "opt_compat_netbsd.h"
 
@@ -45,6 +45,7 @@ __KERNEL_RCSID(0, "$NetBSD: bio.c,v 1.11
 #include <sys/kauth.h>
 
 #include <dev/biovar.h>
+#include <dev/sysmon/sysmonvar.h>
 
 struct bio_mapping {
 	LIST_ENTRY(bio_mapping) bm_link;
@@ -302,3 +303,64 @@ bio_delegate_ioctl(void *cookie, u_long 
 	
 	return bm->bm_ioctl(bm->bm_dev, cmd, addr);
 }
+
+void
+bio_disk_to_envsys(envsys_data_t *edata, const struct bioc_disk *bd)
+{
+	switch (bd->bd_status) {
+	case BIOC_SDONLINE:
+		edata->value_cur = ENVSYS_DRIVE_ONLINE;
+		edata->state = ENVSYS_SVALID;
+		break;
+	case BIOC_SDOFFLINE:
+		edata->value_cur = ENVSYS_DRIVE_OFFLINE;
+		edata->state = ENVSYS_SCRITICAL;
+		break;
+	default:
+		edata->value_cur = ENVSYS_DRIVE_FAIL;
+		edata->state = ENVSYS_SCRITICAL;
+		break;
+	}
+}
+
+void
+bio_vol_to_envsys(envsys_data_t *edata, const struct bioc_vol *bv)
+{
+	switch (bv->bv_status) {
+	case BIOC_SVOFFLINE:
+		edata->value_cur = ENVSYS_DRIVE_OFFLINE;
+		edata->state = ENVSYS_SCRITICAL;
+		break;
+	case BIOC_SVDEGRADED:
+		edata->value_cur = ENVSYS_DRIVE_PFAIL;
+		edata->state = ENVSYS_SCRITICAL;
+		break;
+	case BIOC_SVBUILDING:
+		edata->value_cur = ENVSYS_DRIVE_BUILD;
+		edata->state = ENVSYS_SVALID;
+		break;
+	case BIOC_SVMIGRATING:
+		edata->value_cur = ENVSYS_DRIVE_MIGRATING;
+		edata->state = ENVSYS_SVALID;
+		break;
+	case BIOC_SVCHECKING:
+		edata->value_cur = ENVSYS_DRIVE_CHECK;
+		edata->state = ENVSYS_SVALID;
+		break;
+	case BIOC_SVREBUILD:
+		edata->value_cur = ENVSYS_DRIVE_REBUILD;
+		edata->state = ENVSYS_SCRITICAL;
+		break;
+	case BIOC_SVSCRUB:
+	case BIOC_SVONLINE:
+		edata->value_cur = ENVSYS_DRIVE_ONLINE;
+		edata->state = ENVSYS_SVALID;
+		break;
+	case BIOC_SVINVALID:
+		/* FALLTHROUGH */
+	default:
+		edata->value_cur = ENVSYS_DRIVE_EMPTY; /* unknown state */
+		edata->state = ENVSYS_SINVALID;
+		break;
+	}
+}

Index: src/sys/dev/biovar.h
diff -u src/sys/dev/biovar.h:1.8 src/sys/dev/biovar.h:1.9
--- src/sys/dev/biovar.h:1.8	Thu May  7 08:15:33 2009
+++ src/sys/dev/biovar.h	Thu Mar 12 11:33:10 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: biovar.h,v 1.8 2009/05/07 12:15:33 cegger Exp $ */
+/*	$NetBSD: biovar.h,v 1.9 2015/03/12 15:33:10 christos Exp $ */
 /*	$OpenBSD: biovar.h,v 1.26 2007/03/19 03:02:08 marco Exp $	*/
 
 /*
@@ -256,4 +256,8 @@ struct bioc_volops {
 	int 		bc_volid;	/* volume id to be created/removed */
 };
 
+struct envsys_data;
+void bio_disk_to_envsys(struct envsys_data *, const struct bioc_disk *);
+void bio_vol_to_envsys(struct envsys_data *, const struct bioc_vol *) ;
+
 #endif /* ! _DEV_BIOVAR_H_ */

Index: src/sys/dev/ic/cac.c
diff -u src/sys/dev/ic/cac.c:1.54 src/sys/dev/ic/cac.c:1.55
--- src/sys/dev/ic/cac.c:1.54	Sat Oct 27 13:18:19 2012
+++ src/sys/dev/ic/cac.c	Thu Mar 12 11:33:10 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: cac.c,v 1.54 2012/10/27 17:18:19 chs Exp $	*/
+/*	$NetBSD: cac.c,v 1.55 2015/03/12 15:33:10 christos Exp $	*/
 
 /*-
  * Copyright (c) 2000, 2006, 2007 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cac.c,v 1.54 2012/10/27 17:18:19 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cac.c,v 1.55 2015/03/12 15:33:10 christos Exp $");
 
 #include "bio.h"
 
@@ -723,40 +723,10 @@ cac_sensor_refresh(struct sysmon_envsys 
 	memset(&bv, 0, sizeof(bv));
 	bv.bv_volid = edata->sensor;
 	s = splbio();
-	if (cac_ioctl_vol(sc, &bv)) {
-		splx(s);
-		return;
-	}
+	if (cac_ioctl_vol(sc, &bv))
+		bv.bv_status = BIOC_SVINVALID;
 	splx(s);
 
-	switch(bv.bv_status) {
-	case BIOC_SVOFFLINE:
-		edata->value_cur = ENVSYS_DRIVE_FAIL;
-		edata->state = ENVSYS_SCRITICAL;
-		break;
-
-	case BIOC_SVDEGRADED:
-		edata->value_cur = ENVSYS_DRIVE_PFAIL;
-		edata->state = ENVSYS_SCRITICAL;
-		break;
-
-	case BIOC_SVSCRUB:
-	case BIOC_SVONLINE:
-		edata->value_cur = ENVSYS_DRIVE_ONLINE;
-		edata->state = ENVSYS_SVALID;
-		break;
-
-	case BIOC_SVREBUILD:
-	case BIOC_SVBUILDING:
-		edata->value_cur = ENVSYS_DRIVE_REBUILD;
-		edata->state = ENVSYS_SVALID;
-		break;
-
-	case BIOC_SVINVALID:
-		/* FALLTRHOUGH */
-	default:
-		edata->value_cur = 0; /* unknown */
-		edata->state = ENVSYS_SINVALID;
-	}
+	bio_vol_to_envsys(edata, &bv);
 }
 #endif /* NBIO > 0 */

Index: src/sys/dev/ic/ciss.c
diff -u src/sys/dev/ic/ciss.c:1.32 src/sys/dev/ic/ciss.c:1.33
--- src/sys/dev/ic/ciss.c:1.32	Thu Oct 17 17:24:24 2013
+++ src/sys/dev/ic/ciss.c	Thu Mar 12 11:33:10 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: ciss.c,v 1.32 2013/10/17 21:24:24 christos Exp $	*/
+/*	$NetBSD: ciss.c,v 1.33 2015/03/12 15:33:10 christos Exp $	*/
 /*	$OpenBSD: ciss.c,v 1.68 2013/05/30 16:15:02 deraadt Exp $	*/
 
 /*
@@ -19,7 +19,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ciss.c,v 1.32 2013/10/17 21:24:24 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ciss.c,v 1.33 2015/03/12 15:33:10 christos Exp $");
 
 #include "bio.h"
 
@@ -1541,38 +1541,9 @@ ciss_sensor_refresh(struct sysmon_envsys
 
 	memset(&bv, 0, sizeof(bv));
 	bv.bv_volid = edata->sensor;
-	if (ciss_ioctl_vol(sc, &bv)) {
-		return;
-	}
-
-	switch(bv.bv_status) {
-	case BIOC_SVOFFLINE:
-		edata->value_cur = ENVSYS_DRIVE_FAIL;
-		edata->state = ENVSYS_SCRITICAL;
-		break;
-
-	case BIOC_SVDEGRADED:
-		edata->value_cur = ENVSYS_DRIVE_PFAIL;
-		edata->state = ENVSYS_SCRITICAL;
-		break;
+	if (ciss_ioctl_vol(sc, &bv))
+		bv.bv_status = BIOC_SVINVALID;
 
-	case BIOC_SVSCRUB:
-	case BIOC_SVONLINE:
-		edata->value_cur = ENVSYS_DRIVE_ONLINE;
-		edata->state = ENVSYS_SVALID;
-		break;
-
-	case BIOC_SVREBUILD:
-	case BIOC_SVBUILDING:
-		edata->value_cur = ENVSYS_DRIVE_REBUILD;
-		edata->state = ENVSYS_SVALID;
-		break;
-
-	case BIOC_SVINVALID:
-		/* FALLTRHOUGH */
-	default:
-		edata->value_cur = 0; /* unknown */
-		edata->state = ENVSYS_SINVALID;
-	}
+	bio_vol_to_envsys(edata, &bv);
 }
 #endif /* NBIO > 0 */

Index: src/sys/dev/ic/mfi.c
diff -u src/sys/dev/ic/mfi.c:1.55 src/sys/dev/ic/mfi.c:1.56
--- src/sys/dev/ic/mfi.c:1.55	Thu Aug 21 11:43:35 2014
+++ src/sys/dev/ic/mfi.c	Thu Mar 12 11:33:10 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: mfi.c,v 1.55 2014/08/21 15:43:35 christos Exp $ */
+/* $NetBSD: mfi.c,v 1.56 2015/03/12 15:33:10 christos Exp $ */
 /* $OpenBSD: mfi.c,v 1.66 2006/11/28 23:59:45 dlg Exp $ */
 
 /*
@@ -73,7 +73,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mfi.c,v 1.55 2014/08/21 15:43:35 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mfi.c,v 1.56 2015/03/12 15:33:10 christos Exp $");
 
 #include "bio.h"
 
@@ -2638,31 +2638,9 @@ mfi_sensor_refresh(struct sysmon_envsys 
 	splx(s);
 	KERNEL_UNLOCK_ONE(curlwp);
 	if (error)
-		return;
-
-	switch(bv.bv_status) {
-	case BIOC_SVOFFLINE:
-		edata->value_cur = ENVSYS_DRIVE_FAIL;
-		edata->state = ENVSYS_SCRITICAL;
-		break;
-
-	case BIOC_SVDEGRADED:
-		edata->value_cur = ENVSYS_DRIVE_PFAIL;
-		edata->state = ENVSYS_SCRITICAL;
-		break;
+		bv.bv_status = BIOC_SVINVALID;
 
-	case BIOC_SVSCRUB:
-	case BIOC_SVONLINE:
-		edata->value_cur = ENVSYS_DRIVE_ONLINE;
-		edata->state = ENVSYS_SVALID;
-		break;
-
-	case BIOC_SVINVALID:
-		/* FALLTRHOUGH */
-	default:
-		edata->value_cur = 0; /* unknown */
-		edata->state = ENVSYS_SINVALID;
-	}
+	bio_vol_to_envsys(edata, &bv);
 }
 
 #endif /* NBIO > 0 */

Index: src/sys/dev/pci/arcmsr.c
diff -u src/sys/dev/pci/arcmsr.c:1.31 src/sys/dev/pci/arcmsr.c:1.32
--- src/sys/dev/pci/arcmsr.c:1.31	Sat Mar 29 15:28:24 2014
+++ src/sys/dev/pci/arcmsr.c	Thu Mar 12 11:33:10 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: arcmsr.c,v 1.31 2014/03/29 19:28:24 christos Exp $ */
+/*	$NetBSD: arcmsr.c,v 1.32 2015/03/12 15:33:10 christos Exp $ */
 /*	$OpenBSD: arc.c,v 1.68 2007/10/27 03:28:27 dlg Exp $ */
 
 /*
@@ -21,7 +21,7 @@
 #include "bio.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: arcmsr.c,v 1.31 2014/03/29 19:28:24 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: arcmsr.c,v 1.32 2015/03/12 15:33:10 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/buf.h>
@@ -1841,78 +1841,23 @@ arc_refresh_sensors(struct sysmon_envsys
 	bv.bv_volid = arcdata->arc_volid;
 
 	if (arc_bio_vol(sc, &bv)) {
-		edata->value_cur = ENVSYS_DRIVE_EMPTY;
-		edata->state = ENVSYS_SINVALID;
+		bv.bv_status = BIOC_SVINVALID;
+		bio_vol_to_envsys(edata, &bv);
 		return;
 	}
 
-	/* Current sensor is handling a disk volume member */
 	if (arcdata->arc_diskid) {
+		/* Current sensor is handling a disk volume member */
 		memset(&bd, 0, sizeof(bd));
 		bd.bd_volid = arcdata->arc_volid;
 		bd.bd_diskid = arcdata->arc_diskid - 10;
 
-		if (arc_bio_disk_volume(sc, &bd)) {
-			edata->value_cur = ENVSYS_DRIVE_OFFLINE;
-			edata->state = ENVSYS_SCRITICAL;
-			return;
-		}
-
-		switch (bd.bd_status) {
-		case BIOC_SDONLINE:
-			edata->value_cur = ENVSYS_DRIVE_ONLINE;
-			edata->state = ENVSYS_SVALID;
-			break;
-		case BIOC_SDOFFLINE:
-			edata->value_cur = ENVSYS_DRIVE_OFFLINE;
-			edata->state = ENVSYS_SCRITICAL;
-			break;
-		default:
-			edata->value_cur = ENVSYS_DRIVE_FAIL;
-			edata->state = ENVSYS_SCRITICAL;
-			break;
-		}
-
-		return;
-	}
-
-	/* Current sensor is handling a volume */
-	switch (bv.bv_status) {
-	case BIOC_SVOFFLINE:
-		edata->value_cur = ENVSYS_DRIVE_OFFLINE;
-		edata->state = ENVSYS_SCRITICAL;
-		break;
-	case BIOC_SVDEGRADED:
-		edata->value_cur = ENVSYS_DRIVE_PFAIL;
-		edata->state = ENVSYS_SCRITICAL;
-		break;
-	case BIOC_SVBUILDING:
-		edata->value_cur = ENVSYS_DRIVE_BUILD;
-		edata->state = ENVSYS_SVALID;
-		break;
-	case BIOC_SVMIGRATING:
-		edata->value_cur = ENVSYS_DRIVE_MIGRATING;
-		edata->state = ENVSYS_SVALID;
-		break;
-	case BIOC_SVCHECKING:
-		edata->value_cur = ENVSYS_DRIVE_CHECK;
-		edata->state = ENVSYS_SVALID;
-		break;
-	case BIOC_SVREBUILD:
-		edata->value_cur = ENVSYS_DRIVE_REBUILD;
-		edata->state = ENVSYS_SCRITICAL;
-		break;
-	case BIOC_SVSCRUB:
-	case BIOC_SVONLINE:
-		edata->value_cur = ENVSYS_DRIVE_ONLINE;
-		edata->state = ENVSYS_SVALID;
-		break;
-	case BIOC_SVINVALID:
-		/* FALLTHROUGH */
-	default:
-		edata->value_cur = ENVSYS_DRIVE_EMPTY; /* unknown state */
-		edata->state = ENVSYS_SINVALID;
-		break;
+		if (arc_bio_disk_volume(sc, &bd))
+			bd.bd_status = BIOC_SDOFFLINE;
+		bio_disk_to_envsys(edata, &bd);
+	} else {
+		/* Current sensor is handling a volume */
+		bio_vol_to_envsys(edata, &bv);
 	}
 }
 #endif /* NBIO > 0 */

Index: src/sys/dev/pci/mpii.c
diff -u src/sys/dev/pci/mpii.c:1.5 src/sys/dev/pci/mpii.c:1.6
--- src/sys/dev/pci/mpii.c:1.5	Sat Mar 29 15:28:25 2014
+++ src/sys/dev/pci/mpii.c	Thu Mar 12 11:33:10 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: mpii.c,v 1.5 2014/03/29 19:28:25 christos Exp $ */
+/* $NetBSD: mpii.c,v 1.6 2015/03/12 15:33:10 christos Exp $ */
 /*	OpenBSD: mpii.c,v 1.51 2012/04/11 13:29:14 naddy Exp 	*/
 /*
  * Copyright (c) 2010 Mike Belopuhov <m...@crypt.org.ru>
@@ -20,7 +20,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mpii.c,v 1.5 2014/03/29 19:28:25 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mpii.c,v 1.6 2015/03/12 15:33:10 christos Exp $");
 
 #include "bio.h"
 
@@ -5571,29 +5571,7 @@ mpii_refresh_sensors(struct sysmon_envsy
 	splx(s);
 	KERNEL_UNLOCK_ONE(curlwp);
 	if (error)
-		return;
-	switch(bv.bv_status) {
-	case BIOC_SVOFFLINE:
-		edata->value_cur = ENVSYS_DRIVE_FAIL;
-		edata->state = ENVSYS_SCRITICAL;
-		break;
-	case BIOC_SVDEGRADED:
-		edata->value_cur = ENVSYS_DRIVE_PFAIL;
-		edata->state = ENVSYS_SCRITICAL;
-		break;
-	case BIOC_SVREBUILD:
-		edata->value_cur = ENVSYS_DRIVE_REBUILD;
-		edata->state = ENVSYS_SVALID;
-		break;
-	case BIOC_SVONLINE:
-		edata->value_cur = ENVSYS_DRIVE_ONLINE;
-		edata->state = ENVSYS_SVALID;
-		break;
-	case BIOC_SVINVALID:
-		/* FALLTHROUGH */
-	default:
-		edata->value_cur = 0; /* unknown */
-		edata->state = ENVSYS_SINVALID;
-	}
+		bv.bv_status = BIOC_SVINVALID;
+	bio_vol_to_envsys(edata, &bv);
 }
 #endif /* NBIO > 0 */

Reply via email to