diff options
author | nyan <nyan@FreeBSD.org> | 2012-11-10 13:25:46 +0000 |
---|---|---|
committer | nyan <nyan@FreeBSD.org> | 2012-11-10 13:25:46 +0000 |
commit | d6f477073bb339c0a4b55c02dfaff9d862e85543 (patch) | |
tree | c65a59cbd58d39173139dd90992a394e4a065e40 /sys/pc98 | |
parent | 2054c9670e7480337703fc022685675a018ba127 (diff) | |
download | FreeBSD-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.c | 11 |
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; |