quic/qbox
Loading...
Searching...
No Matches
arm_gicv3_its.h
1/*
2 * This file is part of libqbox
3 * Copyright (c) 2025 Qualcomm Innovation Center, Inc. All Rights Reserved.
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 */
7
8#ifndef _LIBQBOX_COMPONENTS_ARM_GICV3_ITS_H
9#define _LIBQBOX_COMPONENTS_ARM_GICV3_ITS_H
10
11#include <module_factory_registery.h>
12#include "arm_gicv3.h"
13#include <string>
14#include <sstream>
15
17{
18public:
20
21private:
22 arm_gicv3* m_parent_gicv3;
23
24public:
25 arm_gicv3_its(const sc_core::sc_module_name& name, sc_core::sc_object* o, sc_core::sc_object* t)
26 : arm_gicv3_its(name, *(dynamic_cast<QemuInstance*>(o)), dynamic_cast<arm_gicv3*>(t))
27 {
28 }
29 arm_gicv3_its(const sc_core::sc_module_name& n, QemuInstance& inst, arm_gicv3* _arm_gicv3)
30 : QemuDevice(n, inst, "arm-gicv3-its"), m_parent_gicv3(_arm_gicv3), mem("mem", inst)
31
32 {
33 }
34
35 void before_end_of_elaboration()
36 {
37 QemuDevice::before_end_of_elaboration();
38
39 m_dev.set_prop_link("parent-gicv3", m_parent_gicv3->get_qemu_dev());
40 }
41
42 void end_of_elaboration() override
43 {
44 QemuDevice::set_sysbus_as_parent_bus();
45 QemuDevice::end_of_elaboration();
47 mem.init(sbd, 0);
48 }
49};
50
51extern "C" void module_register();
52
53#endif
QEMU device abstraction as a SystemC module.
Definition device.h:37
This class encapsulates a libqemu-cxx qemu::LibQemu instance. It handles QEMU parameters and instance...
Definition qemu-instance.h:86
Definition target.h:160
Definition arm_gicv3_its.h:17
Definition arm_gicv3.h:28
Definition libqemu-cxx.h:645