diff options
Diffstat (limited to 'src/sim')
-rw-r--r-- | src/sim/full_system.hh | 12 | ||||
-rw-r--r-- | src/sim/root.cc | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/sim/full_system.hh b/src/sim/full_system.hh index e67fc11a9..18cf34d09 100644 --- a/src/sim/full_system.hh +++ b/src/sim/full_system.hh @@ -31,6 +31,18 @@ #ifndef __SIM_FULL_SYSTEM_HH__ #define __SIM_FULL_SYSTEM_HH__ +/** + * The FullSystem variable can be used to determine the current mode + * of simulation. + */ extern bool FullSystem; +/** + * In addition to the boolean flag we make use of an unsigned int + * since the CPU instruction decoder makes use of the variable in + * switch statements. A value of 0 signifies syscall emulation, and + * any other value full system. + */ +extern unsigned int FullSystemInt; + #endif // __SIM_FULL_SYSTEM_HH__ diff --git a/src/sim/root.cc b/src/sim/root.cc index c47ada30e..2d28499a7 100644 --- a/src/sim/root.cc +++ b/src/sim/root.cc @@ -125,6 +125,7 @@ Root::loadState(Checkpoint *cp) } bool FullSystem; +unsigned int FullSystemInt; Root * RootParams::create() @@ -136,6 +137,7 @@ RootParams::create() created = true; FullSystem = full_system; + FullSystemInt = full_system ? 1 : 0; return new Root(this); } |