summaryrefslogtreecommitdiffstats
path: root/sys/amd64/amd64/db_trace.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2006-03-13 23:56:44 +0000
committerpeter <peter@FreeBSD.org>2006-03-13 23:56:44 +0000
commit02d811ad5e8648fe6abd5b5b68d048968d5cabd3 (patch)
tree2b27cdc9368ecab334d622bb3019cf56d9a2c21b /sys/amd64/amd64/db_trace.c
parent635b89f062bcf533b0c83572e5808ee005349658 (diff)
downloadFreeBSD-src-02d811ad5e8648fe6abd5b5b68d048968d5cabd3.zip
FreeBSD-src-02d811ad5e8648fe6abd5b5b68d048968d5cabd3.tar.gz
MFi386: add a TRAP_INTERRUPT case
Diffstat (limited to 'sys/amd64/amd64/db_trace.c')
-rw-r--r--sys/amd64/amd64/db_trace.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/amd64/amd64/db_trace.c b/sys/amd64/amd64/db_trace.c
index ffbba83..d050787 100644
--- a/sys/amd64/amd64/db_trace.c
+++ b/sys/amd64/amd64/db_trace.c
@@ -192,6 +192,7 @@ struct amd64_frame {
#define TRAP 1
#define INTERRUPT 2
#define SYSCALL 3
+#define TRAP_INTERRUPT 5
static void db_nextframe(struct amd64_frame **, db_addr_t *, struct thread *);
static int db_numargs(struct amd64_frame *);
@@ -326,6 +327,12 @@ db_nextframe(struct amd64_frame **fp, db_addr_t *ip, struct thread *td)
frame_type = INTERRUPT;
else if (strcmp(name, "Xfast_syscall") == 0)
frame_type = SYSCALL;
+ /* XXX: These are interrupts with trap frames. */
+ else if (strcmp(name, "Xtimerint") == 0 ||
+ strcmp(name, "Xcpustop") == 0 ||
+ strcmp(name, "Xrendezvous") == 0 ||
+ strcmp(name, "Xipi_intr_bitmap_handler") == 0)
+ frame_type = TRAP_INTERRUPT;
}
/*
@@ -357,6 +364,7 @@ db_nextframe(struct amd64_frame **fp, db_addr_t *ip, struct thread *td)
db_printf("--- syscall");
decode_syscall(tf->tf_rax, td);
break;
+ case TRAP_INTERRUPT:
case INTERRUPT:
db_printf("--- interrupt");
break;
OpenPOWER on IntegriCloud