From 00dec3065ab816e9e47234a3623010547cb7e487 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Thu, 11 Oct 2018 18:00:03 -0700 Subject: dev: Build most of the networking devices in the NULL_ISA build. The only part of these devices which are incompatible with other ISAs, with the possible exception of endianness transformation, is that the dist_iface implementation refers to ThreadContext methods and that class is heavily tied to the guest ISA. Only those few lines are excluded in a NULL_ISA build. Change-Id: Ic6d643fdbb792d0a996a37d75e027c5ce0ecd460 Reviewed-on: https://gem5-review.googlesource.com/c/13469 Reviewed-by: Gabor Dozsa Maintainer: Andreas Sandberg --- src/dev/net/SConscript | 3 --- src/dev/net/dist_iface.cc | 4 ++++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/dev/net/SConscript b/src/dev/net/SConscript index e39df9d1c..908dd44e6 100644 --- a/src/dev/net/SConscript +++ b/src/dev/net/SConscript @@ -44,9 +44,6 @@ Import('*') -if env['TARGET_ISA'] == 'null': - Return() - SimObject('Ethernet.py') # Basic Ethernet infrastructure diff --git a/src/dev/net/dist_iface.cc b/src/dev/net/dist_iface.cc index 7eef5d841..ded8901aa 100644 --- a/src/dev/net/dist_iface.cc +++ b/src/dev/net/dist_iface.cc @@ -869,11 +869,13 @@ DistIface::toggleSync(ThreadContext *tc) // stop point. Suspend execution of all local thread contexts. // Dist-gem5 will reactivate all thread contexts when everyone has // reached the sync stop point. +#if THE_ISA != NULL_ISA for (int i = 0; i < master->sys->numContexts(); i++) { ThreadContext *tc = master->sys->getThreadContext(i); if (tc->status() == ThreadContext::Active) tc->quiesce(); } +#endif } else { inform("Request toggling syncronization on\n"); master->syncEvent->start(); @@ -882,11 +884,13 @@ DistIface::toggleSync(ThreadContext *tc) // nodes to prevent causality errors. We can also schedule CPU // activation here, since we know exactly when the next sync will // occur. +#if THE_ISA != NULL_ISA for (int i = 0; i < master->sys->numContexts(); i++) { ThreadContext *tc = master->sys->getThreadContext(i); if (tc->status() == ThreadContext::Active) tc->quiesceTick(master->syncEvent->when() + 1); } +#endif } } -- cgit v1.2.3