mem, sim, systemc: Reorganize Port and co.s bind, unbind slightly.
authorGabe Black <gabeblack@google.com>
Fri, 16 Aug 2019 22:27:35 +0000 (15:27 -0700)
committerGabe Black <gabeblack@google.com>
Tue, 27 Aug 2019 22:17:45 +0000 (22:17 +0000)
commit2a566b4fa7fbd805746d598d0ffc096c2710cef9
tree12c10fb70e8151a81eafefae2e4a5efdf3c63ef3
parent3126e84db773f64e46b1d02a9a27892bf6612d30
mem, sim, systemc: Reorganize Port and co.s bind, unbind slightly.

The base Port class can keep track of its peer, and also whether it's
connected. This is partially delegated away from the port subclasses
which still keep track of a cast version of their peer pointer for
their own conveneince, so that it can be used by generic code. Even
with the Port mechanism's new flexibility, each port still has
exactly one peer and is either connected or not based on whether there
is a peer currently.

Change-Id: Id3228617dd1604d196814254a1aadeac5ade7cde
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/20232
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
src/mem/port.cc
src/mem/port.hh
src/sim/port.cc
src/sim/port.hh
src/systemc/sc_port_wrapper.hh
src/systemc/tlm_port_wrapper.hh