quic/qbox
Loading...
Searching...
No Matches
aarch64.h
1/*
2 * This file is part of libqemu-cxx
3 * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All Rights Reserved.
4 * Author: GreenSocs 2015-2019
5 *
6 * SPDX-License-Identifier: BSD-3-Clause
7 */
8
9#pragma once
10
11#include <libqemu-cxx/libqemu-cxx.h>
12
13namespace qemu {
14
15class CpuArm : public Cpu
16{
17public:
18 static constexpr const char* const TYPE = "arm-cpu";
19
20 CpuArm() = default;
21 CpuArm(const CpuArm&) = default;
22 CpuArm(const Object& o): Cpu(o) {}
23
24 void set_cp15_cbar(uint64_t cbar);
25 void add_nvic_link();
26
27 uint64_t get_exclusive_addr() const;
28 uint64_t get_exclusive_val() const;
29 void set_exclusive_val(uint64_t val);
30
31 void post_init();
32 void register_reset();
33};
34
35class CpuAarch64 : public CpuArm
36{
37public:
38 static constexpr const char* const TYPE = "arm-cpu";
39
40 CpuAarch64() = default;
41 CpuAarch64(const CpuAarch64&) = default;
42 CpuAarch64(const Object& o): CpuArm(o) {}
43
44 void set_aarch64_mode(bool aarch64_mode);
45};
46
47class ArmNvic : public Device
48{
49public:
50 static constexpr const char* const TYPE = "armv7m_nvic";
51
52 ArmNvic() = default;
53 ArmNvic(const ArmNvic&) = default;
54 ArmNvic(const Object& o): Device(o) {}
55
56 void add_cpu_link();
57};
58
59} // namespace qemu
Definition target.h:160
Definition aarch64.h:48
Definition aarch64.h:36
Definition aarch64.h:16
Definition libqemu-cxx.h:664
Definition libqemu-cxx.h:616
Definition libqemu-cxx.h:229