summaryrefslogtreecommitdiffstats
path: root/sys/kern/imgact_elf.c
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2004-08-11 02:35:06 +0000
committermarcel <marcel@FreeBSD.org>2004-08-11 02:35:06 +0000
commitfbbaea5f906ae98c3b2fe400a10aa7f73d292697 (patch)
tree6873386d3adcd9d8f724266b497cb4615a353766 /sys/kern/imgact_elf.c
parent36e89f928c8909ce943566776b5922f293e7dcd5 (diff)
downloadFreeBSD-src-fbbaea5f906ae98c3b2fe400a10aa7f73d292697.zip
FreeBSD-src-fbbaea5f906ae98c3b2fe400a10aa7f73d292697.tar.gz
Add __elfN(dump_thread). This function is called from __elfN(coredump)
to allow dumping per-thread machine specific notes. On ia64 we use this function to flush the dirty registers onto the backingstore before we write out the PRSTATUS notes. Tested on: alpha, amd64, i386, ia64 & sparc64 Not tested on: arm, powerpc
Diffstat (limited to 'sys/kern/imgact_elf.c')
-rw-r--r--sys/kern/imgact_elf.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/kern/imgact_elf.c b/sys/kern/imgact_elf.c
index 04b88d4..29d6ed8 100644
--- a/sys/kern/imgact_elf.c
+++ b/sys/kern/imgact_elf.c
@@ -1204,8 +1204,11 @@ __elfN(puthdr)(struct thread *td, void *dst, size_t *off, int numsegs)
sizeof *status);
__elfN(putnote)(dst, off, "FreeBSD", NT_FPREGSET, fpregset,
sizeof *fpregset);
-
- /* XXX allow for MD specific notes. */
+ /*
+ * Allow for MD specific notes, as well as any MD
+ * specific preparations for writing MI notes.
+ */
+ __elfN(dump_thread)(thr, dst, off);
thr = (thr == td) ? TAILQ_FIRST(&p->p_threads) :
TAILQ_NEXT(thr, td_plist);
OpenPOWER on IntegriCloud