Changeset View
Changeset View
Standalone View
Standalone View
sys/i386/i386/minidump_machdep.c
Show First 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | |||||
#include <machine/atomic.h> | #include <machine/atomic.h> | ||||
#include <machine/elf.h> | #include <machine/elf.h> | ||||
#include <machine/md_var.h> | #include <machine/md_var.h> | ||||
#include <machine/vmparam.h> | #include <machine/vmparam.h> | ||||
#include <machine/minidump.h> | #include <machine/minidump.h> | ||||
CTASSERT(sizeof(struct kerneldumpheader) == 512); | CTASSERT(sizeof(struct kerneldumpheader) == 512); | ||||
uint32_t *vm_page_dump; | |||||
int vm_page_dump_size; | |||||
CTASSERT(sizeof(*vm_page_dump) == 4); | |||||
void | |||||
dump_add_page(vm_paddr_t pa) | |||||
{ | |||||
int idx, bit; | |||||
pa >>= PAGE_SHIFT; | |||||
idx = pa >> 5; /* 2^5 = 32 */ | |||||
bit = pa & 31; | |||||
atomic_set_int(&vm_page_dump[idx], 1ul << bit); | |||||
} | |||||
void | |||||
dump_drop_page(vm_paddr_t pa) | |||||
{ | |||||
int idx, bit; | |||||
pa >>= PAGE_SHIFT; | |||||
idx = pa >> 5; /* 2^5 = 32 */ | |||||
bit = pa & 31; | |||||
atomic_clear_int(&vm_page_dump[idx], 1ul << bit); | |||||
} | |||||
int | int | ||||
minidumpsys(struct dumperinfo *di) | minidumpsys(struct dumperinfo *di) | ||||
{ | { | ||||
return (pae_mode ? minidumpsys_pae(di) : minidumpsys_nopae(di)); | return (pae_mode ? minidumpsys_pae(di) : minidumpsys_nopae(di)); | ||||
} | } | ||||