thread_context.hh (3521:0b0b3551def0) thread_context.hh (3548:85e64c82c522)
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;

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

51class BaseCPU;
52class EndQuiesceEvent;
53class Event;
54class TranslatingPort;
55class FunctionalPort;
56class VirtualPort;
57class Process;
58class System;
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;

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

51class BaseCPU;
52class EndQuiesceEvent;
53class Event;
54class TranslatingPort;
55class FunctionalPort;
56class VirtualPort;
57class Process;
58class System;
59namespace Kernel {
60 class Statistics;
59namespace TheISA {
60 namespace Kernel {
61 class Statistics;
62 };
61};
62
63/**
64 * ThreadContext is the external interface to all thread state for
65 * anything outside of the CPU. It provides all accessor methods to
66 * state that might be needed by external objects, ranging from
67 * register values to things such as kernel stats. It is an abstract
68 * base class; the CPU can create its own ThreadContext by either

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

119
120#if FULL_SYSTEM
121 virtual System *getSystemPtr() = 0;
122
123 virtual TheISA::ITB *getITBPtr() = 0;
124
125 virtual TheISA::DTB *getDTBPtr() = 0;
126
63};
64
65/**
66 * ThreadContext is the external interface to all thread state for
67 * anything outside of the CPU. It provides all accessor methods to
68 * state that might be needed by external objects, ranging from
69 * register values to things such as kernel stats. It is an abstract
70 * base class; the CPU can create its own ThreadContext by either

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

121
122#if FULL_SYSTEM
123 virtual System *getSystemPtr() = 0;
124
125 virtual TheISA::ITB *getITBPtr() = 0;
126
127 virtual TheISA::DTB *getDTBPtr() = 0;
128
127 virtual Kernel::Statistics *getKernelStats() = 0;
129 virtual TheISA::Kernel::Statistics *getKernelStats() = 0;
128
129 virtual FunctionalPort *getPhysPort() = 0;
130
131 virtual VirtualPort *getVirtPort(ThreadContext *tc = NULL) = 0;
132
133 virtual void delVirtPort(VirtualPort *vp) = 0;
134#else
135 virtual TranslatingPort *getMemPort() = 0;

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

290
291#if FULL_SYSTEM
292 System *getSystemPtr() { return actualTC->getSystemPtr(); }
293
294 TheISA::ITB *getITBPtr() { return actualTC->getITBPtr(); }
295
296 TheISA::DTB *getDTBPtr() { return actualTC->getDTBPtr(); }
297
130
131 virtual FunctionalPort *getPhysPort() = 0;
132
133 virtual VirtualPort *getVirtPort(ThreadContext *tc = NULL) = 0;
134
135 virtual void delVirtPort(VirtualPort *vp) = 0;
136#else
137 virtual TranslatingPort *getMemPort() = 0;

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

292
293#if FULL_SYSTEM
294 System *getSystemPtr() { return actualTC->getSystemPtr(); }
295
296 TheISA::ITB *getITBPtr() { return actualTC->getITBPtr(); }
297
298 TheISA::DTB *getDTBPtr() { return actualTC->getDTBPtr(); }
299
298 Kernel::Statistics *getKernelStats() { return actualTC->getKernelStats(); }
300 TheISA::Kernel::Statistics *getKernelStats()
301 { return actualTC->getKernelStats(); }
299
300 FunctionalPort *getPhysPort() { return actualTC->getPhysPort(); }
301
302 VirtualPort *getVirtPort(ThreadContext *tc = NULL) { return actualTC->getVirtPort(tc); }
303
304 void delVirtPort(VirtualPort *vp) { return actualTC->delVirtPort(vp); }
305#else
306 TranslatingPort *getMemPort() { return actualTC->getMemPort(); }

--- 141 unchanged lines hidden ---
302
303 FunctionalPort *getPhysPort() { return actualTC->getPhysPort(); }
304
305 VirtualPort *getVirtPort(ThreadContext *tc = NULL) { return actualTC->getVirtPort(tc); }
306
307 void delVirtPort(VirtualPort *vp) { return actualTC->delVirtPort(vp); }
308#else
309 TranslatingPort *getMemPort() { return actualTC->getMemPort(); }

--- 141 unchanged lines hidden ---