thread_context.hh (5592:6e0569faeeef) thread_context.hh (5668:5b5a9f4203d1)
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;

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

267 virtual void syscall(int64_t callnum) = 0;
268
269 // This function exits the thread context in the CPU and returns
270 // 1 if the CPU has no more active threads (meaning it's OK to exit);
271 // Used in syscall-emulation mode when a thread calls the exit syscall.
272 virtual int exit() { return 1; };
273#endif
274
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;

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

267 virtual void syscall(int64_t callnum) = 0;
268
269 // This function exits the thread context in the CPU and returns
270 // 1 if the CPU has no more active threads (meaning it's OK to exit);
271 // Used in syscall-emulation mode when a thread calls the exit syscall.
272 virtual int exit() { return 1; };
273#endif
274
275 virtual void changeRegFileContext(TheISA::RegContextParam param,
276 TheISA::RegContextVal val) = 0;
277
278 /** function to compare two thread contexts (for debugging) */
279 static void compare(ThreadContext *one, ThreadContext *two);
280};
281
282/**
283 * ProxyThreadContext class that provides a way to implement a
284 * ThreadContext without having to derive from it. ThreadContext is an
285 * abstract class, so anything that derives from it and uses its

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

462 void setSyscallReturn(SyscallReturn return_value)
463 { actualTC->setSyscallReturn(return_value); }
464
465 void syscall(int64_t callnum)
466 { actualTC->syscall(callnum); }
467
468 Counter readFuncExeInst() { return actualTC->readFuncExeInst(); }
469#endif
275 /** function to compare two thread contexts (for debugging) */
276 static void compare(ThreadContext *one, ThreadContext *two);
277};
278
279/**
280 * ProxyThreadContext class that provides a way to implement a
281 * ThreadContext without having to derive from it. ThreadContext is an
282 * abstract class, so anything that derives from it and uses its

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

459 void setSyscallReturn(SyscallReturn return_value)
460 { actualTC->setSyscallReturn(return_value); }
461
462 void syscall(int64_t callnum)
463 { actualTC->syscall(callnum); }
464
465 Counter readFuncExeInst() { return actualTC->readFuncExeInst(); }
466#endif
470
471 void changeRegFileContext(TheISA::RegContextParam param,
472 TheISA::RegContextVal val)
473 {
474 actualTC->changeRegFileContext(param, val);
475 }
476};
477
478#endif
467};
468
469#endif