PERFORCE change 135322 for review
Marko Zec
zec at FreeBSD.org
Wed Feb 13 07:53:59 PST 2008
http://perforce.freebsd.org/chv.cgi?CH=135322
Change 135322 by zec at 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
More information about the p4-projects
mailing list