diff options
author | Marcel Moolenaar <marcel@FreeBSD.org> | 2009-04-04 02:12:37 +0000 |
---|---|---|
committer | Marcel Moolenaar <marcel@FreeBSD.org> | 2009-04-04 02:12:37 +0000 |
commit | 27457a80e2be53ad6026b6f31e0a25cac797475d (patch) | |
tree | f203009d34abedc5ff5847bb6131bebfe58d009f /sys/powerpc/include | |
parent | 95b2008950e6dbdba99dd375a852206e8cf16cb3 (diff) | |
download | src-27457a80e2be53ad6026b6f31e0a25cac797475d.tar.gz src-27457a80e2be53ad6026b6f31e0a25cac797475d.zip |
PowerPC, meet kernel core dumps. The support is based
on a generic dumper that creates an ELF core file and
uses PMAP functions to scan and iterate over memory
chunks, as well as handle memory mappings used during
dumping.
the PMAP layer can choose to return physical memory
chunks or virtual memory chunks. For minidumps, the
chunks should be virtual.
The default MMU I/F implementation for the scan_md()
method returns NULL. Thus, when a PMAP implementation
does not implement the required methods, an empty
core file is created. Here, empty means having an ELF
header only.
Obtained from: Juniper Networks
Notes
Notes:
svn path=/head/; revision=190684
Diffstat (limited to 'sys/powerpc/include')
-rw-r--r-- | sys/powerpc/include/pmap.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/powerpc/include/pmap.h b/sys/powerpc/include/pmap.h index 2b2d6af8fa06..5e6d9c649820 100644 --- a/sys/powerpc/include/pmap.h +++ b/sys/powerpc/include/pmap.h @@ -71,6 +71,13 @@ #include <machine/pte.h> #include <machine/tlb.h> +struct pmap_md { + u_int md_index; + vm_paddr_t md_paddr; + vm_offset_t md_vaddr; + vm_size_t md_size; +}; + #if defined(AIM) #if !defined(NPMAPS) @@ -179,6 +186,11 @@ extern vm_offset_t msgbuf_phys; extern int pmap_bootstrapped; +extern vm_offset_t pmap_dumpsys_map(struct pmap_md *, vm_size_t, vm_size_t *); +extern void pmap_dumpsys_unmap(struct pmap_md *, vm_size_t, vm_offset_t); + +extern struct pmap_md *pmap_scan_md(struct pmap_md *); + #endif #endif /* !_MACHINE_PMAP_H_ */ |