PERFORCE change 49501 for review
Marcel Moolenaar
marcel at FreeBSD.org
Sun Mar 21 19:57:12 PST 2004
http://perforce.freebsd.org/chv.cgi?CH=49501
Change 49501 by marcel at marcel_nfs on 2004/03/21 19:56:21
Make this compile in the new world order. A lot of axing, but
add db_cpu_trap().
Affected files ...
.. //depot/projects/gdb/sys/ia64/ia64/db_interface.c#4 edit
Differences ...
==== //depot/projects/gdb/sys/ia64/ia64/db_interface.c#4 (text+ko) ====
@@ -64,11 +64,6 @@
static jmp_buf *db_nofault = 0;
extern jmp_buf db_jmpbuf;
-extern void gdb_handle_exception(db_regs_t *, int);
-
-int db_active;
-db_regs_t ddb_regs;
-
static int db_get_rse_reg(struct db_variable *vp, db_expr_t *valuep, int op);
static int db_get_ip_reg(struct db_variable *vp, db_expr_t *valuep, int op);
@@ -225,6 +220,11 @@
};
struct db_variable *db_eregs = db_regs + sizeof(db_regs)/sizeof(db_regs[0]);
+void
+db_cpu_trap(int vector, int dummy, struct trapframe *tf)
+{
+}
+
static int
db_get_rse_reg(struct db_variable *vp, db_expr_t *valuep, int op)
{
@@ -261,141 +261,6 @@
return 0;
}
-#if 0
-/*
- * Print trap reason.
- */
-static void
-ddbprinttrap(int vector)
-{
-
- /* XXX Implement. */
-
- printf("ddbprinttrap(%d)\n", vector);
-}
-#endif
-
-#define CPUSTOP_ON_DDBBREAK
-#define VERBOSE_CPUSTOP_ON_DDBBREAK
-
-#if 0
-/*
- * ddb_trap - field a kernel trap
- */
-int
-ddb_trap(int vector, struct trapframe *regs)
-{
- int ddb_mode = !(boothowto & RB_GDB);
- register_t s;
-
- /*
- * Don't bother checking for usermode, since a benign entry
- * by the kernel (call to Debugger() or a breakpoint) has
- * already checked for usermode. If neither of those
- * conditions exist, something Bad has happened.
- */
-
- if (vector != IA64_VEC_BREAK
- && vector != IA64_VEC_SINGLE_STEP_TRAP) {
-#if 0
- if (ddb_mode) {
- db_printf("ddbprinttrap from 0x%lx\n", /* XXX */
- regs->tf_regs[FRAME_PC]);
- ddbprinttrap(a0, a1, a2, entry);
- /*
- * Tell caller "We did NOT handle the trap."
- * Caller should panic, or whatever.
- */
- return (0);
- }
-#endif
- if (db_nofault) {
- jmp_buf *no_fault = db_nofault;
- db_nofault = 0;
- longjmp(*no_fault, 1);
- }
- }
-
- /*
- * XXX Should switch to DDB's own stack, here.
- */
-
- s = intr_disable();
-
-#ifdef SMP
-#ifdef CPUSTOP_ON_DDBBREAK
-
-#if defined(VERBOSE_CPUSTOP_ON_DDBBREAK)
- db_printf("CPU%d stopping CPUs: 0x%08x...", PCPU_GET(cpuid),
- PCPU_GET(other_cpus));
-#endif /* VERBOSE_CPUSTOP_ON_DDBBREAK */
-
- /* We stop all CPUs except ourselves (obviously) */
- stop_cpus(PCPU_GET(other_cpus));
-
-#if defined(VERBOSE_CPUSTOP_ON_DDBBREAK)
- db_printf(" stopped.\n");
-#endif /* VERBOSE_CPUSTOP_ON_DDBBREAK */
-
-#endif /* CPUSTOP_ON_DDBBREAK */
-#endif /* SMP */
-
- ddb_regs = *regs;
-
- /*
- * XXX pretend that registers outside the current frame don't exist.
- */
- db_eregs = db_regs + DB_MISC_REGS + 3 + 27 +
- (ddb_regs.tf_special.cfm & 0x7f);
-
- __asm __volatile("flushrs"); /* so we can look at them */
-
- db_active++;
-
- if (ddb_mode) {
- cndbctl(TRUE); /* DDB active, unblank video */
- db_trap(vector, 0); /* Where the work happens */
- cndbctl(FALSE); /* DDB inactive */
- } else
- gdb_handle_exception(&ddb_regs, vector);
-
- db_active--;
-
-#ifdef SMP
-#ifdef CPUSTOP_ON_DDBBREAK
-
-#if defined(VERBOSE_CPUSTOP_ON_DDBBREAK)
- db_printf("CPU%d restarting CPUs: 0x%08x...", PCPU_GET(cpuid),
- stopped_cpus);
-#endif /* VERBOSE_CPUSTOP_ON_DDBBREAK */
-
- /* Restart all the CPUs we previously stopped */
- if (stopped_cpus != PCPU_GET(other_cpus) && smp_started != 0) {
- db_printf("whoa, other_cpus: 0x%08x, stopped_cpus: 0x%08x\n",
- PCPU_GET(other_cpus), stopped_cpus);
- panic("stop_cpus() failed");
- }
- restart_cpus(stopped_cpus);
-
-#if defined(VERBOSE_CPUSTOP_ON_DDBBREAK)
- db_printf(" restarted.\n");
-#endif /* VERBOSE_CPUSTOP_ON_DDBBREAK */
-
-#endif /* CPUSTOP_ON_DDBBREAK */
-#endif /* SMP */
-
- *regs = ddb_regs;
-
- intr_restore(s);
-
-
- /*
- * Tell caller "We HAVE handled the trap."
- */
- return (1);
-}
-#endif
-
/*
* Read bytes from kernel address space for debugger.
*/
More information about the p4-projects
mailing list