Module Name: src
Committed By: sborrill
Date: Fri Feb 7 11:41:02 UTC 2014
Modified Files:
src/sys/arch/i386/i386 [netbsd-6]: db_machdep.c
src/sys/arch/x86/include [netbsd-6]: db_machdep.h
Log Message:
Pull up the following revisions(s) (requested by christos in ticket #1017):
sys/arch/x86/include/db_machdep.h: revision 1.4
sys/arch/i386/i386/db_machdep.c: revision 1.5
Fix ddb backtrace for softintr (i386).
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.3.16.1 src/sys/arch/i386/i386/db_machdep.c
cvs rdiff -u -r1.3 -r1.3.14.1 src/sys/arch/x86/include/db_machdep.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/i386/i386/db_machdep.c
diff -u src/sys/arch/i386/i386/db_machdep.c:1.3 src/sys/arch/i386/i386/db_machdep.c:1.3.16.1
--- src/sys/arch/i386/i386/db_machdep.c:1.3 Thu Apr 14 16:05:59 2011
+++ src/sys/arch/i386/i386/db_machdep.c Fri Feb 7 11:41:02 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: db_machdep.c,v 1.3 2011/04/14 16:05:59 yamt Exp $ */
+/* $NetBSD: db_machdep.c,v 1.3.16.1 2014/02/07 11:41:02 sborrill Exp $ */
/*
* Mach Operating System
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_machdep.c,v 1.3 2011/04/14 16:05:59 yamt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_machdep.c,v 1.3.16.1 2014/02/07 11:41:02 sborrill Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -148,10 +148,12 @@ db_frame_info(long *frame, db_addr_t cal
!strncmp(name, "Xstray", 6) ||
!strncmp(name, "Xhold", 5) ||
!strncmp(name, "Xrecurse", 8) ||
- !strcmp(name, "Xdoreti") ||
- !strncmp(name, "Xsoft", 5)) {
+ !strcmp(name, "Xdoreti")) {
*is_trap = INTERRUPT;
narg = 0;
+ } else if (!strcmp(name, "Xsoftintr")) {
+ *is_trap = SOFTINTR;
+ narg = 0;
} else if (!strncmp(name, "Xtss_", 5)) {
*is_trap = INTERRUPT_TSS;
narg = 0;
@@ -173,10 +175,12 @@ db_frame_info(long *frame, db_addr_t cal
!strncmp(name, "_Xstray", 7) ||
!strncmp(name, "_Xhold", 6) ||
!strncmp(name, "_Xrecurse", 9) ||
- !strcmp(name, "_Xdoreti") ||
- !strncmp(name, "_Xsoft", 6)) {
+ !strcmp(name, "_Xdoreti")) {
*is_trap = INTERRUPT;
narg = 0;
+ } else if (!strcmp(name, "_Xsoftintr")) {
+ *is_trap = SOFTINTR;
+ narg = 0;
} else if (!strncmp(name, "_Xtss_", 6)) {
*is_trap = INTERRUPT_TSS;
narg = 0;
@@ -253,6 +257,7 @@ db_nextframe(
case TRAP:
case SYSCALL:
case INTERRUPT:
+ case SOFTINTR:
default:
/* The only argument to trap() or syscall() is the trapframe. */
switch (is_trap) {
@@ -273,6 +278,11 @@ db_nextframe(
*/
db_read_bytes((db_addr_t)argp, sizeof(tf), (char *)&tf);
break;
+ case SOFTINTR:
+ (*pr)("--- softint ---\n");
+ tf.tf_eip = 0;
+ tf.tf_ebp = 0;
+ break;
}
*ip = (db_addr_t)tf.tf_eip;
fp = (struct i386_frame *)tf.tf_ebp;
Index: src/sys/arch/x86/include/db_machdep.h
diff -u src/sys/arch/x86/include/db_machdep.h:1.3 src/sys/arch/x86/include/db_machdep.h:1.3.14.1
--- src/sys/arch/x86/include/db_machdep.h:1.3 Sat Apr 30 16:58:35 2011
+++ src/sys/arch/x86/include/db_machdep.h Fri Feb 7 11:41:02 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: db_machdep.h,v 1.3 2011/04/30 16:58:35 christos Exp $ */
+/* $NetBSD: db_machdep.h,v 1.3.14.1 2014/02/07 11:41:02 sborrill Exp $ */
#ifndef _X86_DB_MACHDEP_H_
#define _X86_DB_MACHDEP_H_
@@ -11,6 +11,7 @@
#define INTERRUPT 3
#define INTERRUPT_TSS 4
#define TRAP_TSS 5
+#define SOFTINTR 6
#define MAXNARG 16