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 |