Deleted Added
sdiff udiff text old ( 4776:8c8407243a2c ) new ( 4830:aad1410a2b79 )
full compact
1/*
2 * Copyright (c) 2001-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 22 unchanged lines hidden (view full) ---

31
32#ifndef __NATIVETRACE_HH__
33#define __NATIVETRACE_HH__
34
35#include "base/trace.hh"
36#include "cpu/static_inst.hh"
37#include "sim/host.hh"
38#include "sim/insttracer.hh"
39
40class ThreadContext;
41
42
43namespace Trace {
44
45class NativeTrace;
46
47class NativeTraceRecord : public InstRecord
48{
49 protected:
50 NativeTrace * parent;
51
52 bool
53 checkIntReg(const char * regName, int index, int size);
54
55 bool
56 checkPC(const char * regName, int size);
57
58 public:
59 NativeTraceRecord(NativeTrace * _parent,
60 Tick _when, ThreadContext *_thread,
61 const StaticInstPtr &_staticInst, Addr _pc, bool spec)
62 : InstRecord(_when, _thread, _staticInst, _pc, spec), parent(_parent)
63 {
64 }
65
66 void dump();
67};
68
69class NativeTrace : public InstTracer
70{
71 protected:
72 int fd;
73
74 ListenSocket native_listener;
75
76 public:
77
78 NativeTrace(const std::string & name);
79
80 NativeTraceRecord *
81 getInstRecord(Tick when, ThreadContext *tc,
82 const StaticInstPtr staticInst, Addr pc)
83 {
84 if (tc->misspeculating())
85 return NULL;
86
87 return new NativeTraceRecord(this, when, tc,
88 staticInst, pc, tc->misspeculating());
89 }
90
91 friend class NativeTraceRecord;
92};
93
94/* namespace Trace */ }
95
96#endif // __EXETRACE_HH__