Deleted Added
full compact
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 ---