fastmodel: Let the EVS set an attribute for getSendFunctional to return.
authorGabe Black <gabeblack@google.com>
Wed, 28 Aug 2019 23:34:46 +0000 (16:34 -0700)
committerGabe Black <gabeblack@google.com>
Wed, 2 Oct 2019 01:27:29 +0000 (01:27 +0000)
commit5fdaa0d719cb1d2c6847ff1ee69fa54ceae55172
tree61447049f1b5bff57a1387cd27a7d0244f90a82a
parent7e1b5bd3bc21a324694e9a892ee6d5219ee7505f
fastmodel: Let the EVS set an attribute for getSendFunctional to return.

The iris CPU model doesn't necessarily know the best way to send
functional packets (what port? what type is that port?), but only has
a generic sc_module pointer to the EVS and so can't call specialized
methods on it. There also isn't any common base class for EVSes to cast
into in a generic way.

This attribute mechanism lets the EVS set up its own sendFunctional
implementation however it needs to using facilities that are built
into generic sc_objects.

Change-Id: I69bf364908c2a5360bd6ce7d3e49ce67c6f771b0
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21046
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
src/arch/arm/fastmodel/iris/cpu.cc
src/arch/arm/fastmodel/iris/cpu.hh