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>