aboutsummaryrefslogtreecommitdiff
path: root/sys/powerpc/include
diff options
context:
space:
mode:
authorMarcel Moolenaar <marcel@FreeBSD.org>2009-04-04 02:12:37 +0000
committerMarcel Moolenaar <marcel@FreeBSD.org>2009-04-04 02:12:37 +0000
commit27457a80e2be53ad6026b6f31e0a25cac797475d (patch)
treef203009d34abedc5ff5847bb6131bebfe58d009f /sys/powerpc/include
parent95b2008950e6dbdba99dd375a852206e8cf16cb3 (diff)
downloadsrc-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.h12
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_ */