Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Feb 2008 15:53:58 GMT
From:      Marko Zec <zec@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 135322 for review
Message-ID:  <200802131553.m1DFrwGU092789@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=135322

Change 135322 by zec@zec_tca51 on 2008/02/13 15:53:11

	Unbreak the AMD64 build by fixing a few unportable pointer
	       arithmetic hacks, and by using the V_hostname macro instead of
	a global hostname in platform-specific (mini)dump routines.

Affected files ...

.. //depot/projects/vimage/src/sys/amd64/amd64/dump_machdep.c#2 edit
.. //depot/projects/vimage/src/sys/amd64/amd64/minidump_machdep.c#3 edit
.. //depot/projects/vimage/src/sys/kern/kern_vimage.c#57 edit
.. //depot/projects/vimage/src/sys/sys/sysctl.h#15 edit

Differences ...

==== //depot/projects/vimage/src/sys/amd64/amd64/dump_machdep.c#2 (text+ko) ====

@@ -27,6 +27,8 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD: src/sys/amd64/amd64/dump_machdep.c,v 1.12 2006/04/21 04:24:50 peter Exp $");
 
+#include "opt_vimage.h"
+
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/conf.h>
@@ -34,6 +36,7 @@
 #include <sys/sysctl.h>
 #include <sys/kernel.h>
 #include <sys/kerneldump.h>
+#include <sys/vimage.h>
 #include <vm/vm.h>
 #include <vm/pmap.h>
 #include <machine/elf.h>
@@ -109,6 +112,7 @@
 mkdumpheader(struct kerneldumpheader *kdh, uint32_t archver, uint64_t dumplen,
     uint32_t blksz)
 {
+	INIT_VPROCG(TD_TO_VPROCG(curthread)); /* XXX */
 
 	bzero(kdh, sizeof(*kdh));
 	strncpy(kdh->magic, KERNELDUMPMAGIC, sizeof(kdh->magic));
@@ -118,7 +122,7 @@
 	kdh->dumplength = htod64(dumplen);
 	kdh->dumptime = htod64(time_second);
 	kdh->blocksize = htod32(blksz);
-	strncpy(kdh->hostname, hostname, sizeof(kdh->hostname));
+	strncpy(kdh->hostname, V_hostname, sizeof(kdh->hostname));
 	strncpy(kdh->versionstring, version, sizeof(kdh->versionstring));
 	if (panicstr != NULL)
 		strncpy(kdh->panicstring, panicstr, sizeof(kdh->panicstring));

==== //depot/projects/vimage/src/sys/amd64/amd64/minidump_machdep.c#3 (text) ====

@@ -27,6 +27,8 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD: src/sys/amd64/amd64/minidump_machdep.c,v 1.2 2006/12/05 11:31:33 ru Exp $");
 
+#include "opt_vimage.h"
+
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/conf.h>
@@ -34,6 +36,7 @@
 #include <sys/kernel.h>
 #include <sys/kerneldump.h>
 #include <sys/msgbuf.h>
+#include <sys/vimage.h>
 #include <vm/vm.h>
 #include <vm/pmap.h>
 #include <machine/atomic.h>
@@ -85,6 +88,7 @@
 mkdumpheader(struct kerneldumpheader *kdh, uint32_t archver, uint64_t dumplen,
     uint32_t blksz)
 {
+	INIT_VPROCG(TD_TO_VPROCG(curthread)); /* XXX */
 
 	bzero(kdh, sizeof(*kdh));
 	strncpy(kdh->magic, KERNELDUMPMAGIC, sizeof(kdh->magic));
@@ -94,7 +98,7 @@
 	kdh->dumplength = htod64(dumplen);
 	kdh->dumptime = htod64(time_second);
 	kdh->blocksize = htod32(blksz);
-	strncpy(kdh->hostname, hostname, sizeof(kdh->hostname));
+	strncpy(kdh->hostname, V_hostname, sizeof(kdh->hostname));
 	strncpy(kdh->versionstring, version, sizeof(kdh->versionstring));
 	if (panicstr != NULL)
 		strncpy(kdh->panicstring, panicstr, sizeof(kdh->panicstring));

==== //depot/projects/vimage/src/sys/kern/kern_vimage.c#57 (text+ko) ====

@@ -624,7 +624,7 @@
 		     mapentry->name != NULL; mapentry++) {
 			if (strcmp(symstr, mapentry->name) == 0) {
 				lookup->symvalue =
-				    (int) curvnet->mod_data[vml->vml_modinfo->vmi_id]; /* XXX */
+				    (u_long) curvnet->mod_data[vml->vml_modinfo->vmi_id];
 				lookup->symvalue += mapentry->offset;
 				lookup->symsize = mapentry->size;
 				return 0;

==== //depot/projects/vimage/src/sys/sys/sysctl.h#15 (text+ko) ====

@@ -419,23 +419,21 @@
  */
 #ifdef VIMAGE
 #define SYSCTL_RESOLVE_V_ARG1() do {					\
-	void *ptr;							\
+	char *cp;							\
 	switch (subs) {							\
 	case V_NET:							\
-		ptr = TD_TO_VNET(curthread)->mod_data[mod];		\
-		arg1 = (void *) ((int) ptr + (int) arg1);		\
+		cp = (char *) TD_TO_VNET(curthread)->mod_data[mod];	\
 		break;							\
 	case V_PROCG:							\
-		ptr = TD_TO_VPROCG(curthread);				\
-		arg1 = (void *) ((int) ptr + (int) arg1);		\
+		cp = (char *) TD_TO_VPROCG(curthread);			\
 		break;							\
 	case V_CPU:							\
-		ptr = TD_TO_VCPU(curthread);				\
-		arg1 = (void *) ((int) ptr + (int) arg1);		\
+		cp = (char *) TD_TO_VCPU(curthread);			\
 		break;							\
 	default:							\
 		panic("unsupported module id %d", subs);		\
 	}								\
+	arg1 = cp + (size_t) arg1;					\
 } while (0)
 #endif
 



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