minidump_machdep.c (181803) | minidump_machdep.c (183527) |
---|---|
1/*- 2 * Copyright (c) 2006 Peter Wemm 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * --- 11 unchanged lines hidden (view full) --- 20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 */ 26 27#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2006 Peter Wemm 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * --- 11 unchanged lines hidden (view full) --- 20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 */ 26 27#include <sys/cdefs.h> |
28__FBSDID("$FreeBSD: head/sys/amd64/amd64/minidump_machdep.c 181803 2008-08-17 23:27:27Z bz $"); | 28__FBSDID("$FreeBSD: head/sys/amd64/amd64/minidump_machdep.c 183527 2008-10-01 22:08:53Z peter $"); |
29 30#include <sys/param.h> 31#include <sys/systm.h> 32#include <sys/conf.h> 33#include <sys/cons.h> 34#include <sys/kernel.h> 35#include <sys/kerneldump.h> 36#include <sys/msgbuf.h> --- 39 unchanged lines hidden (view full) --- 76 77 for (i = 0; dump_avail[i] != 0 || dump_avail[i + 1] != 0; i += 2) { 78 if (pa >= dump_avail[i] && pa < dump_avail[i + 1]) 79 return (1); 80 } 81 return (0); 82} 83 | 29 30#include <sys/param.h> 31#include <sys/systm.h> 32#include <sys/conf.h> 33#include <sys/cons.h> 34#include <sys/kernel.h> 35#include <sys/kerneldump.h> 36#include <sys/msgbuf.h> --- 39 unchanged lines hidden (view full) --- 76 77 for (i = 0; dump_avail[i] != 0 || dump_avail[i + 1] != 0; i += 2) { 78 if (pa >= dump_avail[i] && pa < dump_avail[i + 1]) 79 return (1); 80 } 81 return (0); 82} 83 |
84/* XXX should be MI */ 85static void 86mkdumpheader(struct kerneldumpheader *kdh, uint32_t archver, uint64_t dumplen, 87 uint32_t blksz) 88{ 89 90 bzero(kdh, sizeof(*kdh)); 91 strncpy(kdh->magic, KERNELDUMPMAGIC, sizeof(kdh->magic)); 92 strncpy(kdh->architecture, MACHINE_ARCH, sizeof(kdh->architecture)); 93 kdh->version = htod32(KERNELDUMPVERSION); 94 kdh->architectureversion = htod32(archver); 95 kdh->dumplength = htod64(dumplen); 96 kdh->dumptime = htod64(time_second); 97 kdh->blocksize = htod32(blksz); 98 strncpy(kdh->hostname, G_hostname, sizeof(kdh->hostname)); 99 strncpy(kdh->versionstring, version, sizeof(kdh->versionstring)); 100 if (panicstr != NULL) 101 strncpy(kdh->panicstring, panicstr, sizeof(kdh->panicstring)); 102 kdh->parity = kerneldump_parity(kdh); 103} 104 | |
105#define PG2MB(pgs) (((pgs) + (1 << 8) - 1) >> 8) 106 107static int 108blk_flush(struct dumperinfo *di) 109{ 110 int error; 111 112 if (fragsz == 0) --- 166 unchanged lines hidden (view full) --- 279 mdhdr.version = MINIDUMP_VERSION; 280 mdhdr.msgbufsize = msgbufp->msg_size; 281 mdhdr.bitmapsize = vm_page_dump_size; 282 mdhdr.ptesize = ptesize; 283 mdhdr.kernbase = VM_MIN_KERNEL_ADDRESS; 284 mdhdr.dmapbase = DMAP_MIN_ADDRESS; 285 mdhdr.dmapend = DMAP_MAX_ADDRESS; 286 | 84#define PG2MB(pgs) (((pgs) + (1 << 8) - 1) >> 8) 85 86static int 87blk_flush(struct dumperinfo *di) 88{ 89 int error; 90 91 if (fragsz == 0) --- 166 unchanged lines hidden (view full) --- 258 mdhdr.version = MINIDUMP_VERSION; 259 mdhdr.msgbufsize = msgbufp->msg_size; 260 mdhdr.bitmapsize = vm_page_dump_size; 261 mdhdr.ptesize = ptesize; 262 mdhdr.kernbase = VM_MIN_KERNEL_ADDRESS; 263 mdhdr.dmapbase = DMAP_MIN_ADDRESS; 264 mdhdr.dmapend = DMAP_MAX_ADDRESS; 265 |
287 mkdumpheader(&kdh, KERNELDUMP_AMD64_VERSION, dumpsize, di->blocksize); | 266 mkdumpheader(&kdh, KERNELDUMPMAGIC, KERNELDUMP_AMD64_VERSION, dumpsize, di->blocksize); |
288 289 printf("Physical memory: %ju MB\n", ptoa((uintmax_t)physmem) / 1048576); 290 printf("Dumping %llu MB:", (long long)dumpsize >> 20); 291 292 /* Dump leader */ 293 error = dump_write(di, &kdh, 0, dumplo, sizeof(kdh)); 294 if (error) 295 goto fail; --- 132 unchanged lines hidden --- | 267 268 printf("Physical memory: %ju MB\n", ptoa((uintmax_t)physmem) / 1048576); 269 printf("Dumping %llu MB:", (long long)dumpsize >> 20); 270 271 /* Dump leader */ 272 error = dump_write(di, &kdh, 0, dumplo, sizeof(kdh)); 273 if (error) 274 goto fail; --- 132 unchanged lines hidden --- |