* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Authors: Kevin Lim
*/
#ifndef __CPU_ACTIVITY_HH__
#define __CPU_ACTIVITY_HH__
-#include "base/timebuf.hh"
#include "base/trace.hh"
+#include "cpu/timebuf.hh"
/**
* ActivityRecorder helper class that informs the CPU if it can switch
* idle. If count is zero, then the CPU can safely idle as it has no
* more outstanding work to do.
*/
-class ActivityRecorder {
+class ActivityRecorder
+{
public:
- ActivityRecorder(int num_stages, int longest_latency, int count);
+ ActivityRecorder(const std::string &name, int num_stages,
+ int longest_latency, int count);
+ ~ActivityRecorder();
/** Records that there is activity this cycle. */
void activity();
void validate();
private:
+ // provide name() for DPRINTF.
+ std::string _name;
+ const std::string &name() { return _name; }
+
/** Time buffer that tracks if any cycles has active communication
* in them. It should be as long as the longest communication
* latency in the system. Each time any time buffer is written,