/*
- * Copyright (c) 2002-2003 The Regents of The University of Michigan
+ * Copyright (c) 2002-2005 The Regents of The University of Michigan
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
#include <utility>
#include "base/trace.hh"
-#include "cpu/base_cpu.hh"
+#include "config/full_system.hh"
+#include "cpu/base.hh"
#include "cpu/exec_context.hh"
#include "cpu/pc_event.hh"
#include "sim/debug.hh"
-#include "sim/universe.hh"
+#include "sim/root.hh"
using namespace std;
return std::equal_range(pc_map.begin(), pc_map.end(), pc, MapCompare());
}
-BreakPCEvent::BreakPCEvent(PCEventQueue *q, const std::string &desc, bool del)
- : PCEvent(q, desc), remove(del)
+BreakPCEvent::BreakPCEvent(PCEventQueue *q, const std::string &desc, Addr addr,
+ bool del)
+ : PCEvent(q, desc, addr), remove(del)
{
}
BreakPCEvent::process(ExecContext *xc)
{
StringWrap name(xc->cpu->name() + ".break_event");
- DPRINTFN("break event %s triggered", descr());
+ DPRINTFN("break event %s triggered\n", descr());
debug_break();
if (remove)
delete this;
}
-#ifdef FULL_SYSTEM
+#if FULL_SYSTEM
extern "C"
void
sched_break_pc_sys(System *sys, Addr addr)
{
- PCEvent *event = new BreakPCEvent(&sys->pcEventQueue, "debug break", true);
- event->schedule(addr);
+ new BreakPCEvent(&sys->pcEventQueue, "debug break", addr, true);
}
extern "C"