thread_state.hh (8764:e4660687c49f) | thread_state.hh (8766:b0773af78423) |
---|---|
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; --- 22 unchanged lines hidden (view full) --- 31#ifndef __CPU_THREAD_STATE_HH__ 32#define __CPU_THREAD_STATE_HH__ 33 34#include "arch/types.hh" 35#include "config/the_isa.hh" 36#include "cpu/base.hh" 37#include "cpu/profile.hh" 38#include "cpu/thread_context.hh" | 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; --- 22 unchanged lines hidden (view full) --- 31#ifndef __CPU_THREAD_STATE_HH__ 32#define __CPU_THREAD_STATE_HH__ 33 34#include "arch/types.hh" 35#include "config/the_isa.hh" 36#include "cpu/base.hh" 37#include "cpu/profile.hh" 38#include "cpu/thread_context.hh" |
39 40#if !FULL_SYSTEM | |
41#include "mem/mem_object.hh" 42#include "sim/process.hh" | 39#include "mem/mem_object.hh" 40#include "sim/process.hh" |
43#endif | |
44 45#if FULL_SYSTEM 46class EndQuiesceEvent; 47class FunctionProfile; 48class ProfileNode; 49namespace TheISA { 50 namespace Kernel { 51 class Statistics; --- 9 unchanged lines hidden (view full) --- 61 * Struct for holding general thread state that is needed across CPU 62 * models. This includes things such as pointers to the process, 63 * memory, quiesce events, and certain stats. This can be expanded 64 * to hold more thread-specific stats within it. 65 */ 66struct ThreadState { 67 typedef ThreadContext::Status Status; 68 | 41 42#if FULL_SYSTEM 43class EndQuiesceEvent; 44class FunctionProfile; 45class ProfileNode; 46namespace TheISA { 47 namespace Kernel { 48 class Statistics; --- 9 unchanged lines hidden (view full) --- 58 * Struct for holding general thread state that is needed across CPU 59 * models. This includes things such as pointers to the process, 60 * memory, quiesce events, and certain stats. This can be expanded 61 * to hold more thread-specific stats within it. 62 */ 63struct ThreadState { 64 typedef ThreadContext::Status Status; 65 |
69#if FULL_SYSTEM 70 ThreadState(BaseCPU *cpu, ThreadID _tid); 71#else | |
72 ThreadState(BaseCPU *cpu, ThreadID _tid, Process *_process); | 66 ThreadState(BaseCPU *cpu, ThreadID _tid, Process *_process); |
73#endif | |
74 75 ~ThreadState(); 76 77 void serialize(std::ostream &os); 78 79 void unserialize(Checkpoint *cp, const std::string §ion); 80 81 int cpuId() { return baseCpu->cpuId(); } --- 98 unchanged lines hidden (view full) --- 180#if FULL_SYSTEM 181 public: 182 FunctionProfile *profile; 183 ProfileNode *profileNode; 184 Addr profilePC; 185 EndQuiesceEvent *quiesceEvent; 186 187 TheISA::Kernel::Statistics *kernelStats; | 67 68 ~ThreadState(); 69 70 void serialize(std::ostream &os); 71 72 void unserialize(Checkpoint *cp, const std::string §ion); 73 74 int cpuId() { return baseCpu->cpuId(); } --- 98 unchanged lines hidden (view full) --- 173#if FULL_SYSTEM 174 public: 175 FunctionProfile *profile; 176 ProfileNode *profileNode; 177 Addr profilePC; 178 EndQuiesceEvent *quiesceEvent; 179 180 TheISA::Kernel::Statistics *kernelStats; |
181#endif |
|
188 protected: | 182 protected: |
189#else | |
190 Process *process; | 183 Process *process; |
191#endif | |
192 193 TranslatingPort *port; 194 195 /** A functional port, outgoing only, for functional accesse to virtual 196 * addresses. */ 197 VirtualPort *virtPort; 198 199 /** A functional port outgoing only for functional accesses to physical --- 17 unchanged lines hidden --- | 184 185 TranslatingPort *port; 186 187 /** A functional port, outgoing only, for functional accesse to virtual 188 * addresses. */ 189 VirtualPort *virtPort; 190 191 /** A functional port outgoing only for functional accesses to physical --- 17 unchanged lines hidden --- |