Deleted Added
sdiff udiff text old ( 2669:f2b336e89d2a ) new ( 2678:1f86b91dc3bb )
full compact
1/*
2 * Copyright (c) 2006 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;

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

26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#ifndef __CPU_THREAD_STATE_HH__
30#define __CPU_THREAD_STATE_HH__
31
32#include "cpu/exec_context.hh"
33
34#if FULL_SYSTEM
35class EndQuiesceEvent;
36class FunctionProfile;
37class ProfileNode;
38namespace Kernel {
39 class Statistics;
40};
41#else

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

46/**
47 * Struct for holding general thread state that is needed across CPU
48 * models. This includes things such as pointers to the process,
49 * memory, quiesce events, and certain stats. This can be expanded
50 * to hold more thread-specific stats within it.
51 */
52struct ThreadState {
53#if FULL_SYSTEM
54 ThreadState(int _cpuId, int _tid, FunctionalMemory *_mem)
55 : cpuId(_cpuId), tid(_tid), mem(_mem), lastActivate(0), lastSuspend(0),
56 profile(NULL), profileNode(NULL), profilePC(0), quiesceEvent(NULL)
57#else
58 ThreadState(int _cpuId, int _tid, FunctionalMemory *_mem,
59 Process *_process, short _asid)
60 : cpuId(_cpuId), tid(_tid), mem(_mem), process(_process), asid(_asid)
61#endif
62 {
63 funcExeInst = 0;
64 storeCondFailures = 0;
65 }
66
67 ExecContext::Status status;
68
69 int cpuId;
70
71 // Index of hardware thread context on the CPU that this represents.
72 int tid;
73
74 Counter numInst;
75 Stats::Scalar<> numInsts;
76 Stats::Scalar<> numMemRefs;
77
78 // number of simulated loads
79 Counter numLoad;
80 Counter startNumLoad;
81
82 FunctionalMemory *mem; // functional storage for process address space
83
84#if FULL_SYSTEM
85 Tick lastActivate;
86 Tick lastSuspend;
87
88 FunctionProfile *profile;
89 ProfileNode *profileNode;
90 Addr profilePC;
91
92 EndQuiesceEvent *quiesceEvent;
93
94 Kernel::Statistics *kernelStats;
95#else
96 Process *process;
97
98 // Address space ID. Note that this is used for TIMING cache
99 // simulation only; all functional memory accesses should use
100 // one of the FunctionalMemory pointers above.
101 short asid;
102
103#endif

--- 26 unchanged lines hidden ---