summaryrefslogtreecommitdiffstats
path: root/sys/pc98
diff options
context:
space:
mode:
authornyan <nyan@FreeBSD.org>2012-11-10 13:25:46 +0000
committernyan <nyan@FreeBSD.org>2012-11-10 13:25:46 +0000
commitd6f477073bb339c0a4b55c02dfaff9d862e85543 (patch)
treec65a59cbd58d39173139dd90992a394e4a065e40 /sys/pc98
parent2054c9670e7480337703fc022685675a018ba127 (diff)
downloadFreeBSD-src-d6f477073bb339c0a4b55c02dfaff9d862e85543.zip
FreeBSD-src-d6f477073bb339c0a4b55c02dfaff9d862e85543.tar.gz
MFi386: r211924
Register an interrupt vector for DTrace return probes.
Diffstat (limited to 'sys/pc98')
-rw-r--r--sys/pc98/pc98/machdep.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/pc98/pc98/machdep.c b/sys/pc98/pc98/machdep.c
index b34966a..1b2acd7 100644
--- a/sys/pc98/pc98/machdep.c
+++ b/sys/pc98/pc98/machdep.c
@@ -54,6 +54,7 @@ __FBSDID("$FreeBSD$");
#include "opt_mp_watchdog.h"
#include "opt_npx.h"
#include "opt_perfmon.h"
+#include "opt_kdtrace.h"
#include <sys/param.h>
#include <sys/proc.h>
@@ -1772,7 +1773,11 @@ extern inthand_t
IDTVEC(bnd), IDTVEC(ill), IDTVEC(dna), IDTVEC(fpusegm),
IDTVEC(tss), IDTVEC(missing), IDTVEC(stk), IDTVEC(prot),
IDTVEC(page), IDTVEC(mchk), IDTVEC(rsvd), IDTVEC(fpu), IDTVEC(align),
- IDTVEC(xmm), IDTVEC(lcall_syscall), IDTVEC(int0x80_syscall);
+ IDTVEC(xmm),
+#ifdef KDTRACE_HOOKS
+ IDTVEC(dtrace_ret),
+#endif
+ IDTVEC(lcall_syscall), IDTVEC(int0x80_syscall);
#ifdef DDB
/*
@@ -2291,6 +2296,10 @@ init386(first)
GSEL(GCODE_SEL, SEL_KPL));
setidt(IDT_SYSCALL, &IDTVEC(int0x80_syscall), SDT_SYS386TGT, SEL_UPL,
GSEL(GCODE_SEL, SEL_KPL));
+#ifdef KDTRACE_HOOKS
+ setidt(IDT_DTRACE_RET, &IDTVEC(dtrace_ret), SDT_SYS386TGT, SEL_UPL,
+ GSEL(GCODE_SEL, SEL_KPL));
+#endif
r_idt.rd_limit = sizeof(idt0) - 1;
r_idt.rd_base = (int) idt;
OpenPOWER on IntegriCloud