From bf365b962de690a76b043b3802b6fea01c681351 Mon Sep 17 00:00:00 2001 From: "Daniel R. Carvalho" Date: Sat, 8 May 2021 11:57:30 -0300 Subject: [PATCH] mem: Fix compilation issues in qos Fix circular dependency and related issues. Change-Id: I48490519fa0a00619a4baede72ebae2868560660 Signed-off-by: Daniel R. Carvalho Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/45245 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- src/mem/qos/mem_ctrl.cc | 7 ++++-- src/mem/qos/mem_ctrl.hh | 34 +++++++++++++++++--------- src/mem/qos/mem_sink.cc | 9 ++++--- src/mem/qos/mem_sink.hh | 8 ++++-- src/mem/qos/policy.cc | 6 ++--- src/mem/qos/policy.hh | 10 +++++--- src/mem/qos/policy_fixed_prio.cc | 5 ++-- src/mem/qos/policy_fixed_prio.hh | 8 +++--- src/mem/qos/policy_pf.cc | 7 +++--- src/mem/qos/policy_pf.hh | 8 +++--- src/mem/qos/q_policy.cc | 6 ++--- src/mem/qos/q_policy.hh | 6 ++--- src/mem/qos/turnaround_policy.hh | 4 ++- src/mem/qos/turnaround_policy_ideal.cc | 3 +++ 14 files changed, 77 insertions(+), 44 deletions(-) diff --git a/src/mem/qos/mem_ctrl.cc b/src/mem/qos/mem_ctrl.cc index ca72a7cc07..d8cb8bbbfa 100644 --- a/src/mem/qos/mem_ctrl.cc +++ b/src/mem/qos/mem_ctrl.cc @@ -35,9 +35,12 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "mem_ctrl.hh" +#include "mem/qos/mem_ctrl.hh" -#include "turnaround_policy.hh" +#include "mem/qos/policy.hh" +#include "mem/qos/q_policy.hh" +#include "mem/qos/turnaround_policy.hh" +#include "sim/core.hh" namespace QoS { diff --git a/src/mem/qos/mem_ctrl.hh b/src/mem/qos/mem_ctrl.hh index 02954d20d5..dd2fe31d4e 100644 --- a/src/mem/qos/mem_ctrl.hh +++ b/src/mem/qos/mem_ctrl.hh @@ -35,22 +35,34 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "debug/QOS.hh" -#include "mem/qos/policy.hh" -#include "mem/qos/q_policy.hh" -#include "params/QoSMemCtrl.hh" -#include "sim/clocked_object.hh" -#include "sim/system.hh" - -#include -#include -#include - #ifndef __MEM_QOS_MEM_CTRL_HH__ #define __MEM_QOS_MEM_CTRL_HH__ +#include +#include +#include +#include +#include +#include + +#include "base/logging.hh" +#include "base/statistics.hh" +#include "base/trace.hh" +#include "base/types.hh" +#include "debug/QOS.hh" +#include "mem/packet.hh" +#include "mem/request.hh" +#include "params/QoSMemCtrl.hh" +#include "sim/clocked_object.hh" +#include "sim/cur_tick.hh" +#include "sim/system.hh" + namespace QoS { +class Policy; +class QueuePolicy; +class TurnaroundPolicy; + /** * The QoS::MemCtrl is a base class for Memory objects * which support QoS - it provides access to a set of QoS diff --git a/src/mem/qos/mem_sink.cc b/src/mem/qos/mem_sink.cc index e81788b040..73ac2a7124 100644 --- a/src/mem/qos/mem_sink.cc +++ b/src/mem/qos/mem_sink.cc @@ -33,15 +33,16 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Author: Matteo Andreozzi */ +#include "mem/qos/mem_sink.hh" + +#include "base/logging.hh" +#include "base/trace.hh" #include "debug/Drain.hh" #include "debug/QOS.hh" -#include "mem_sink.hh" +#include "mem/qos/q_policy.hh" #include "params/QoSMemSinkInterface.hh" -#include "sim/system.hh" namespace QoS { diff --git a/src/mem/qos/mem_sink.hh b/src/mem/qos/mem_sink.hh index 27eded542d..3cbc182587 100644 --- a/src/mem/qos/mem_sink.hh +++ b/src/mem/qos/mem_sink.hh @@ -33,18 +33,22 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Author: Matteo Andreozzi */ #ifndef __MEM_QOS_MEM_SINK_HH__ #define __MEM_QOS_MEM_SINK_HH__ +#include +#include +#include + +#include "base/types.hh" #include "mem/abstract_mem.hh" #include "mem/qos/mem_ctrl.hh" #include "mem/qport.hh" #include "params/QoSMemSinkCtrl.hh" +#include "sim/eventq.hh" struct QoSMemSinkInterfaceParams; class QoSMemSinkInterface; diff --git a/src/mem/qos/policy.cc b/src/mem/qos/policy.cc index c864cf9c69..5ba40aa7ab 100644 --- a/src/mem/qos/policy.cc +++ b/src/mem/qos/policy.cc @@ -33,11 +33,11 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Author: Matteo Andreozzi */ -#include "policy.hh" +#include "mem/qos/policy.hh" + +#include "params/QoSPolicy.hh" namespace QoS { diff --git a/src/mem/qos/policy.hh b/src/mem/qos/policy.hh index d7e3967251..d72e2b1464 100644 --- a/src/mem/qos/policy.hh +++ b/src/mem/qos/policy.hh @@ -33,18 +33,22 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Author: Matteo Andreozzi */ #ifndef __MEM_QOS_POLICY_HH__ #define __MEM_QOS_POLICY_HH__ +#include +#include + +#include "base/logging.hh" #include "base/trace.hh" #include "debug/QOS.hh" #include "mem/qos/mem_ctrl.hh" #include "mem/packet.hh" -#include "sim/system.hh" +#include "mem/request.hh" + +struct QoSPolicyParams; namespace QoS { diff --git a/src/mem/qos/policy_fixed_prio.cc b/src/mem/qos/policy_fixed_prio.cc index 70979401fb..dfb22a6be1 100644 --- a/src/mem/qos/policy_fixed_prio.cc +++ b/src/mem/qos/policy_fixed_prio.cc @@ -33,8 +33,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Author: Matteo Andreozzi */ #include "mem/qos/policy_fixed_prio.hh" @@ -42,7 +40,10 @@ #include #include +#include "base/trace.hh" +#include "debug/QOS.hh" #include "mem/request.hh" +#include "params/QoSFixedPriorityPolicy.hh" namespace QoS { diff --git a/src/mem/qos/policy_fixed_prio.hh b/src/mem/qos/policy_fixed_prio.hh index 14b611efca..2989f6f4b1 100644 --- a/src/mem/qos/policy_fixed_prio.hh +++ b/src/mem/qos/policy_fixed_prio.hh @@ -33,15 +33,17 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Author: Matteo Andreozzi */ #ifndef __MEM_QOS_POLICY_FIXED_PRIO_HH__ #define __MEM_QOS_POLICY_FIXED_PRIO_HH__ +#include +#include + #include "mem/qos/policy.hh" -#include "params/QoSFixedPriorityPolicy.hh" + +struct QoSFixedPriorityPolicyParams; namespace QoS { diff --git a/src/mem/qos/policy_pf.cc b/src/mem/qos/policy_pf.cc index db9fc5e11f..30beda5f64 100644 --- a/src/mem/qos/policy_pf.cc +++ b/src/mem/qos/policy_pf.cc @@ -33,13 +33,14 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Author: Giacomo Travaglini */ #include "mem/qos/policy_pf.hh" -#include "mem/request.hh" +#include + +#include "base/logging.hh" +#include "params/QoSPropFairPolicy.hh" namespace QoS { diff --git a/src/mem/qos/policy_pf.hh b/src/mem/qos/policy_pf.hh index 230a3c9c55..2893a3929f 100644 --- a/src/mem/qos/policy_pf.hh +++ b/src/mem/qos/policy_pf.hh @@ -33,15 +33,17 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Author: Giacomo Travaglini */ #ifndef __MEM_QOS_POLICY_PF_HH__ #define __MEM_QOS_POLICY_PF_HH__ +#include + #include "mem/qos/policy.hh" -#include "params/QoSPropFairPolicy.hh" +#include "mem/request.hh" + +struct QoSPropFairPolicyParams; namespace QoS { diff --git a/src/mem/qos/q_policy.cc b/src/mem/qos/q_policy.cc index 6c415b80e9..a43b3d914b 100644 --- a/src/mem/qos/q_policy.cc +++ b/src/mem/qos/q_policy.cc @@ -33,8 +33,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Author: Matteo Andreozzi */ #include "mem/qos/q_policy.hh" @@ -42,9 +40,11 @@ #include #include +#include "base/logging.hh" +#include "base/trace.hh" #include "debug/QOS.hh" #include "enums/QoSQPolicy.hh" -#include "mem/qos/mem_ctrl.hh" +#include "mem/request.hh" namespace QoS { diff --git a/src/mem/qos/q_policy.hh b/src/mem/qos/q_policy.hh index dc412084ad..8ff63a42af 100644 --- a/src/mem/qos/q_policy.hh +++ b/src/mem/qos/q_policy.hh @@ -33,23 +33,21 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Author: Matteo Andreozzi */ #ifndef __MEM_QOS_Q_POLICY_HH__ #define __MEM_QOS_Q_POLICY_HH__ #include +#include #include #include "mem/packet.hh" +#include "mem/qos/mem_ctrl.hh" #include "params/QoSMemCtrl.hh" namespace QoS { -class MemCtrl; - /** * QoS Queue Policy * diff --git a/src/mem/qos/turnaround_policy.hh b/src/mem/qos/turnaround_policy.hh index 0b0a571a7d..1961c5e355 100644 --- a/src/mem/qos/turnaround_policy.hh +++ b/src/mem/qos/turnaround_policy.hh @@ -38,7 +38,9 @@ #ifndef __MEM_QOS_TURNAROUND_POLICY_HH__ #define __MEM_QOS_TURNAROUND_POLICY_HH__ -#include "mem_ctrl.hh" +#include "mem/qos/mem_ctrl.hh" +#include "params/QoSTurnaroundPolicy.hh" +#include "sim/sim_object.hh" namespace QoS { diff --git a/src/mem/qos/turnaround_policy_ideal.cc b/src/mem/qos/turnaround_policy_ideal.cc index 5114a97d3e..6c4cb188e8 100644 --- a/src/mem/qos/turnaround_policy_ideal.cc +++ b/src/mem/qos/turnaround_policy_ideal.cc @@ -37,6 +37,9 @@ #include "turnaround_policy_ideal.hh" +#include + +#include "base/trace.hh" #include "params/QoSTurnaroundPolicyIdeal.hh" namespace QoS {