Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Jan 2013 07:33:41 +0000 (UTC)
From:      Bryan Venteicher <bryanv@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r246060 - projects/virtio/sys/dev/virtio
Message-ID:  <201301290733.r0T7XfnC007495@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bryanv
Date: Tue Jan 29 07:33:40 2013
New Revision: 246060
URL: http://svnweb.freebsd.org/changeset/base/246060

Log:
  virtio: Cleanup feature description printing
  
  Approved by:	grehan (implicit)

Modified:
  projects/virtio/sys/dev/virtio/virtio.c

Modified: projects/virtio/sys/dev/virtio/virtio.c
==============================================================================
--- projects/virtio/sys/dev/virtio/virtio.c	Tue Jan 29 07:32:00 2013	(r246059)
+++ projects/virtio/sys/dev/virtio/virtio.c	Tue Jan 29 07:33:40 2013	(r246060)
@@ -87,9 +87,30 @@ virtio_device_name(uint16_t devid)
 	return (NULL);
 }
 
+static const char *
+virtio_feature_name(uint64_t val, struct virtio_feature_desc *desc)
+{
+	int i, j;
+	struct virtio_feature_desc *descs[2] = { desc,
+	    virtio_common_feature_desc };
+
+	for (i = 0; i < 2; i++) {
+		if (descs[i] == NULL)
+			continue;
+
+		for (j = 0; descs[i][j].vfd_val != 0; j++) {
+			if (val != descs[i][j].vfd_val)
+				continue;
+			return (descs[i][j].vfd_str);
+		}
+	}
+
+	return (NULL);
+}
+
 void
 virtio_describe(device_t dev, const char *msg,
-    uint64_t features, struct virtio_feature_desc *feature_desc)
+    uint64_t features, struct virtio_feature_desc *desc)
 {
 	struct sbuf sb;
 	uint64_t val;
@@ -98,8 +119,7 @@ virtio_describe(device_t dev, const char
 	int n;
 
 	if ((buf = malloc(512, M_TEMP, M_NOWAIT)) == NULL) {
-		device_printf(dev, "%s features: 0x%"PRIx64"\n", msg,
-		    features);
+		device_printf(dev, "%s features: 0x%"PRIx64"\n", msg, features);
 		return;
 	}
 
@@ -119,13 +139,7 @@ virtio_describe(device_t dev, const char
 		else
 			sbuf_cat(&sb, ",");
 
-		name = NULL;
-		if (feature_desc != NULL)
-			name = virtio_feature_name(val, feature_desc);
-		if (name == NULL)
-			name = virtio_feature_name(val,
-			    virtio_common_feature_desc);
-
+		name = virtio_feature_name(val, desc);
 		if (name == NULL)
 			sbuf_printf(&sb, "0x%"PRIx64, val);
 		else
@@ -147,18 +161,6 @@ virtio_describe(device_t dev, const char
 	free(buf, M_TEMP);
 }
 
-static const char *
-virtio_feature_name(uint64_t val, struct virtio_feature_desc *feature_desc)
-{
-	int i;
-
-	for (i = 0; feature_desc[i].vfd_val != 0; i++)
-		if (val == feature_desc[i].vfd_val)
-			return (feature_desc[i].vfd_str);
-
-	return (NULL);
-}
-
 /*
  * VirtIO bus method wrappers.
  */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201301290733.r0T7XfnC007495>