Module Name:    src
Committed By:   rmind
Date:           Mon Jan 18 22:31:14 UTC 2010

Modified Files:
        src/sys/arch/amd64/amd64: procfs_machdep.c
        src/sys/arch/i386/i386: procfs_machdep.c

Log Message:
Reduce the difference between i386 and amd64 procfs MD code.
Prepare for the merge, no functional changes intended.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/sys/arch/amd64/amd64/procfs_machdep.c
cvs rdiff -u -r1.32 -r1.33 src/sys/arch/i386/i386/procfs_machdep.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/arch/amd64/amd64/procfs_machdep.c
diff -u src/sys/arch/amd64/amd64/procfs_machdep.c:1.13 src/sys/arch/amd64/amd64/procfs_machdep.c:1.14
--- src/sys/arch/amd64/amd64/procfs_machdep.c:1.13	Mon Jan 18 21:55:40 2010
+++ src/sys/arch/amd64/amd64/procfs_machdep.c	Mon Jan 18 22:31:14 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: procfs_machdep.c,v 1.13 2010/01/18 21:55:40 njoly Exp $ */
+/*	$NetBSD: procfs_machdep.c,v 1.14 2010/01/18 22:31:14 rmind Exp $ */
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.
@@ -42,7 +42,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: procfs_machdep.c,v 1.13 2010/01/18 21:55:40 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD: procfs_machdep.c,v 1.14 2010/01/18 22:31:14 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -56,17 +56,16 @@
 #include <machine/reg.h>
 #include <machine/specialreg.h>
 
-extern int i386_fpu_present, i386_fpu_exception, i386_fpu_fdivbug;
-extern char cpu_model[];
-extern int cpu_class;
+extern int	i386_fpu_present, i386_fpu_exception, i386_fpu_fdivbug;
+extern char	cpu_model[];
 
-static const char * const i386_features[] = {
+static const char * const x86_features[] = {
 	/* Intel-defined */
 	"fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce",
 	"cx8", "apic", NULL, "sep", "mtrr", "pge", "mca", "cmov",
 	"pat", "pse36", "pn", "clflush", NULL, "dts", "acpi", "mmx",
 	"fxsr", "sse", "sse2", "ss", "ht", "tm", "ia64", NULL,
-	
+
 	/* AMD-defined */
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
 	NULL, NULL, NULL, "syscall", NULL, NULL, NULL, NULL, 
@@ -105,7 +104,7 @@
 	NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
 };
 
-static int procfs_getonecpu(int, struct cpu_info *, char *, int *);
+static int	procfs_getonecpu(int, struct cpu_info *, char *, int *);
 
 /*
  * Linux-style /proc/cpuinfo.
@@ -134,7 +133,7 @@
 			*len += used + 1;
 			used = --total;
 			if (used == 0)
-			    break;
+				break;
 		} else {
 			*len += used;
 			break;
@@ -150,11 +149,10 @@
 	char featurebuf[256], *p;
 
 	p = featurebuf;
-	left = sizeof featurebuf;
+	left = sizeof(featurebuf);
 	for (i = 0; i < 32; i++) {
-		if ((ci->ci_feature_flags & (1 << i)) &&
-		    (i386_features[i] != NULL)) {
-			l = snprintf(p, left, "%s ", i386_features[i]);
+		if ((ci->ci_feature_flags & (1 << i)) && x86_features[i]) {
+			l = snprintf(p, left, "%s ", x86_features[i]);
 			left -= l;
 			p += l;
 			if (left <= 0)
@@ -165,20 +163,18 @@
 	p = bf;
 	left = *len;
 	l = snprintf(p, left,
-		"processor\t: %d\n"
-		"vendor_id\t: %s\n"
-		"cpu family\t: %d\n"
-		"model\t\t: %d\n"
-		"model name\t: %s\n"
-		"stepping\t: ",
-		xcpu,
-		(char *)ci->ci_vendor,
-		cpuid_level >= 0 ?
-		    ((ci->ci_signature >> 8) & 15) : cpu_class + 3,
-		cpuid_level >= 0 ?
-		    ((ci->ci_signature >> 4) & 15) : 0,
-		cpu_brand_string
-	    );
+	    "processor\t: %d\n"
+	    "vendor_id\t: %s\n"
+	    "cpu family\t: %d\n"
+	    "model\t\t: %d\n"
+	    "model name\t: %s\n"
+	    "stepping\t: ",
+	    xcpu,
+	    (char *)ci->ci_vendor,
+	    cpuid_level >= 0 ? ((ci->ci_signature >> 8) & 15) : cpu_class + 3,
+	    cpuid_level >= 0 ? ((ci->ci_signature >> 4) & 15) : 0,
+	    cpu_brand_string
+	);
 
 	left -= l;
 	p += l;
@@ -195,7 +191,6 @@
 	if (left <= 0)
 		return 0;
 
-		
 	if (ci->ci_data.cpu_cc_freq != 0) {
 		uint64_t freq, fraq;
 
@@ -212,18 +207,25 @@
 		return 0;
 
 	l = snprintf(p, left,
-		"fdiv_bug\t: %s\n"
-		"fpu\t\t: %s\n"
-		"fpu_exception\t: %s\n"
-		"cpuid level\t: %d\n"
-		"wp\t\t: %s\n"
-		"flags\t\t: %s\n",
-		"no",	/* XXX */
-		"yes",	/* XXX */
-		"yes",	/* XXX */
-		cpuid_level,
-		(rcr0() & CR0_WP) ? "yes" : "no",
-		featurebuf);
+	    "fdiv_bug\t: %s\n"
+	    "fpu\t\t: %s\n"
+	    "fpu_exception\t: %s\n"
+	    "cpuid level\t: %d\n"
+	    "wp\t\t: %s\n"
+	    "flags\t\t: %s\n",
+#ifdef __x86_64__
+	    "no",	/* XXX */
+	    "yes",	/* XXX */
+	    "yes",	/* XXX */
+#else
+	    i386_fpu_fdivbug ? "yes" : "no",
+	    i386_fpu_present ? "yes" : "no",
+	    i386_fpu_exception ? "yes" : "no",
+#endif
+	    cpuid_level,
+	    (rcr0() & CR0_WP) ? "yes" : "no",
+	    featurebuf
+	);
 
 	if (l > left)
 		return 0;

Index: src/sys/arch/i386/i386/procfs_machdep.c
diff -u src/sys/arch/i386/i386/procfs_machdep.c:1.32 src/sys/arch/i386/i386/procfs_machdep.c:1.33
--- src/sys/arch/i386/i386/procfs_machdep.c:1.32	Sun Aug 16 11:04:48 2009
+++ src/sys/arch/i386/i386/procfs_machdep.c	Mon Jan 18 22:31:14 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: procfs_machdep.c,v 1.32 2009/08/16 11:04:48 yamt Exp $	*/
+/*	$NetBSD: procfs_machdep.c,v 1.33 2010/01/18 22:31:14 rmind Exp $	*/
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.
@@ -42,14 +42,13 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: procfs_machdep.c,v 1.32 2009/08/16 11:04:48 yamt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: procfs_machdep.c,v 1.33 2010/01/18 22:31:14 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/mount.h>
 #include <sys/stat.h>
 #include <sys/vnode.h>
-#include <sys/proc.h>
 
 #include <miscfs/procfs/procfs.h>
 
@@ -57,17 +56,18 @@
 #include <machine/reg.h>
 #include <machine/specialreg.h>
 
-extern int i386_fpu_present, i386_fpu_exception, i386_fpu_fdivbug;
-extern char cpu_model[];
+extern int	i386_fpu_present, i386_fpu_exception, i386_fpu_fdivbug;
+extern char	cpu_model[];
 
-static const char * const i386_features[] = {
+static const char * const x86_features[] = {
+	/* Intel-defined */
 	"fpu", "vme", "de", "pse", "tsc", "msr", "pae", "mce",
-	"cx8", "apic", "10", "sep", "mtrr", "pge", "mca", "cmov",
-	"pat", "pse36", "pn", "clflush", "20", "dts", "acpi", "mmx",
-	"fxsr", "sse", "sse2", "ss", "ht", "tm", "ia64", "31"
+	"cx8", "apic", NULL, "sep", "mtrr", "pge", "mca", "cmov",
+	"pat", "pse36", "pn", "clflush", NULL, "dts", "acpi", "mmx",
+	"fxsr", "sse", "sse2", "ss", "ht", "tm", "ia64", NULL
 };
 
-static int procfs_getonecpu(int, struct cpu_info *, char *, int *);
+static int	procfs_getonecpu(int, struct cpu_info *, char *, int *);
 
 /*
  * Linux-style /proc/cpuinfo.
@@ -96,7 +96,7 @@
 			*len += used + 1;
 			used = --total;
 			if (used == 0)
-			    break;
+				break;
 		} else {
 			*len += used;
 			break;
@@ -112,10 +112,10 @@
 	char featurebuf[256], *p;
 
 	p = featurebuf;
-	left = sizeof featurebuf;
+	left = sizeof(featurebuf);
 	for (i = 0; i < 32; i++) {
-		if (ci->ci_feature_flags & (1 << i)) {
-			l = snprintf(p, left, "%s ", i386_features[i]);
+		if ((ci->ci_feature_flags & (1 << i)) && x86_features[i]) {
+			l = snprintf(p, left, "%s ", x86_features[i]);
 			left -= l;
 			p += l;
 			if (left <= 0)
@@ -126,20 +126,18 @@
 	p = bf;
 	left = *len;
 	l = snprintf(p, left,
-		"processor\t: %d\n"
-		"vendor_id\t: %s\n"
-		"cpu family\t: %d\n"
-		"model\t\t: %d\n"
-		"model name\t: %s\n"
-		"stepping\t: ",
-		xcpu,
-		(char *)ci->ci_vendor,
-		cpuid_level >= 0 ?
-		    ((ci->ci_signature >> 8) & 15) : cpu_class + 3,
-		cpuid_level >= 0 ?
-		    ((ci->ci_signature >> 4) & 15) : 0,
-		cpu_brand_string
-	    );
+	    "processor\t: %d\n"
+	    "vendor_id\t: %s\n"
+	    "cpu family\t: %d\n"
+	    "model\t\t: %d\n"
+	    "model name\t: %s\n"
+	    "stepping\t: ",
+	    xcpu,
+	    (char *)ci->ci_vendor,
+	    cpuid_level >= 0 ? ((ci->ci_signature >> 8) & 15) : cpu_class + 3,
+	    cpuid_level >= 0 ? ((ci->ci_signature >> 4) & 15) : 0,
+	    cpu_brand_string
+	);
 
 	left -= l;
 	p += l;
@@ -156,7 +154,6 @@
 	if (left <= 0)
 		return 0;
 
-		
 	if (ci->ci_data.cpu_cc_freq != 0) {
 		uint64_t freq, fraq;
 
@@ -173,18 +170,25 @@
 		return 0;
 
 	l = snprintf(p, left,
-		"fdiv_bug\t: %s\n"
-		"fpu\t\t: %s\n"
-		"fpu_exception\t: %s\n"
-		"cpuid level\t: %d\n"
-		"wp\t\t: %s\n"
-		"flags\t\t: %s\n",
-		i386_fpu_fdivbug ? "yes" : "no",
-		i386_fpu_present ? "yes" : "no",
-		i386_fpu_exception ? "yes" : "no",
-		cpuid_level,
-		(rcr0() & CR0_WP) ? "yes" : "no",
-		featurebuf);
+	    "fdiv_bug\t: %s\n"
+	    "fpu\t\t: %s\n"
+	    "fpu_exception\t: %s\n"
+	    "cpuid level\t: %d\n"
+	    "wp\t\t: %s\n"
+	    "flags\t\t: %s\n",
+#ifdef __x86_64__
+	    "no",	/* XXX */
+	    "yes",	/* XXX */
+	    "yes",	/* XXX */
+#else
+	    i386_fpu_fdivbug ? "yes" : "no",
+	    i386_fpu_present ? "yes" : "no",
+	    i386_fpu_exception ? "yes" : "no",
+#endif
+	    cpuid_level,
+	    (rcr0() & CR0_WP) ? "yes" : "no",
+	    featurebuf
+	);
 
 	if (l > left)
 		return 0;
@@ -194,19 +198,20 @@
 }
 
 #ifdef __HAVE_PROCFS_MACHDEP
+
 void
 procfs_machdep_allocvp(struct vnode *vp)
 {
 	struct pfsnode *pfs = vp->v_data;
 
 	switch (pfs->pfs_type) {
-	case Pmachdep_xmmregs:	/* /proc/N/xmmregs = -rw------- */
+	case Pmachdep_xmmregs:
+		/* /proc/N/xmmregs = -rw------- */
 		pfs->pfs_mode = S_IRUSR|S_IWUSR;
 		vp->v_type = VREG;
 		break;
-
 	default:
-		panic("procfs_machdep_allocvp");
+		KASSERT(false);
 	}
 }
 
@@ -218,18 +223,14 @@
 	switch (pfs->pfs_type) {
 	case Pmachdep_xmmregs:
 		return (procfs_machdep_doxmmregs(curl, l, pfs, uio));
-
 	default:
-		panic("procfs_machdep_rw");
+		KASSERT(false);
 	}
-
-	/* NOTREACHED */
-	return (EINVAL);
+	return EINVAL;
 }
 
 int
-procfs_machdep_getattr(struct vnode *vp, struct vattr *vap,
-    struct proc *procp)
+procfs_machdep_getattr(struct vnode *vp, struct vattr *vap, struct proc *procp)
 {
 	struct pfsnode *pfs = VTOPFS(vp);
 
@@ -237,12 +238,10 @@
 	case Pmachdep_xmmregs:
 		vap->va_bytes = vap->va_size = sizeof(struct xmmregs);
 		break;
-
 	default:
-		panic("procfs_machdep_getattr");
+		KASSERT(false);
 	}
-
-	return (0);
+	return 0;
 }
 
 int
@@ -250,13 +249,14 @@
     struct pfsnode *pfs, struct uio *uio)
 {
 
-	return (process_machdep_doxmmregs(curl, l, uio));
+	return process_machdep_doxmmregs(curl, l, uio);
 }
 
 int
 procfs_machdep_validxmmregs(struct lwp *l, struct mount *mp)
 {
 
-	return (process_machdep_validxmmregs(l->l_proc));
+	return process_machdep_validxmmregs(l->l_proc);
 }
+
 #endif

Reply via email to