process.hh (5543:3af77710f397) process.hh (5713:993c7952b930)
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;

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

72 // have we initialized a thread context from this process? If
73 // yes, subsequent contexts are assumed to be for dynamically
74 // created threads and are not initialized.
75 bool initialContextLoaded;
76
77 bool checkpointRestored;
78
79 // thread contexts associated with this process
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;

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

72 // have we initialized a thread context from this process? If
73 // yes, subsequent contexts are assumed to be for dynamically
74 // created threads and are not initialized.
75 bool initialContextLoaded;
76
77 bool checkpointRestored;
78
79 // thread contexts associated with this process
80 std::vector<ThreadContext *> threadContexts;
80 std::vector<int> contextIds;
81
82 // remote gdb objects
83 std::vector<TheISA::RemoteGDB *> remoteGDB;
84 std::vector<GDBListener *> gdbListen;
85 bool breakpoint();
86
87 // number of CPUs (esxec contexts, really) assigned to this process.
81
82 // remote gdb objects
83 std::vector<TheISA::RemoteGDB *> remoteGDB;
84 std::vector<GDBListener *> gdbListen;
85 bool breakpoint();
86
87 // number of CPUs (esxec contexts, really) assigned to this process.
88 unsigned int numCpus() { return threadContexts.size(); }
88 unsigned int numCpus() { return contextIds.size(); }
89
90 // record of blocked context
91 struct WaitRec
92 {
93 Addr waitChan;
94 ThreadContext *waitingContext;
95
96 WaitRec(Addr chan, ThreadContext *ctx)

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

182 public:
183 // static helper functions to generate file descriptors for constructor
184 static int openInputFile(const std::string &filename);
185 static int openOutputFile(const std::string &filename);
186
187 // override of virtual SimObject method: register statistics
188 virtual void regStats();
189
89
90 // record of blocked context
91 struct WaitRec
92 {
93 Addr waitChan;
94 ThreadContext *waitingContext;
95
96 WaitRec(Addr chan, ThreadContext *ctx)

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

182 public:
183 // static helper functions to generate file descriptors for constructor
184 static int openInputFile(const std::string &filename);
185 static int openOutputFile(const std::string &filename);
186
187 // override of virtual SimObject method: register statistics
188 virtual void regStats();
189
190 // register a thread context for this process.
191 // returns tc's cpu number (index into threadContexts[])
192 int registerThreadContext(ThreadContext *tc);
190 // After getting registered with system object, tell process which
191 // system-wide context id it is assigned.
192 void assignThreadContext(int context_id)
193 {
194 contextIds.push_back(context_id);
195 }
193
196
197 // Find a free context to use
198 ThreadContext * findFreeContext();
194
199
195 void replaceThreadContext(ThreadContext *tc, int tcIndex);
196
197 // map simulator fd sim_fd to target fd tgt_fd
198 void dup_fd(int sim_fd, int tgt_fd);
199
200 // generate new target fd for sim_fd
201 int alloc_fd(int sim_fd, std::string filename, int flags, int mode, bool pipe);
202
203 // free target fd (e.g., after close)
204 void free_fd(int tgt_fd);

--- 117 unchanged lines hidden ---
200 // map simulator fd sim_fd to target fd tgt_fd
201 void dup_fd(int sim_fd, int tgt_fd);
202
203 // generate new target fd for sim_fd
204 int alloc_fd(int sim_fd, std::string filename, int flags, int mode, bool pipe);
205
206 // free target fd (e.g., after close)
207 void free_fd(int tgt_fd);

--- 117 unchanged lines hidden ---