Updated renode C# files to support gdb server connections.

PiperOrigin-RevId: 673064149
Change-Id: Iff81309d15cf9881749a0291aa14b8f41cd97ecb
diff --git a/mpact/sim/util/renode/renode_cs/MpactCheriotCPU.cs b/mpact/sim/util/renode/renode_cs/MpactCheriotCPU.cs
index 8abf5cc..a2107e8 100644
--- a/mpact/sim/util/renode/renode_cs/MpactCheriotCPU.cs
+++ b/mpact/sim/util/renode/renode_cs/MpactCheriotCPU.cs
@@ -51,7 +51,8 @@
 // The MpactCheriotCPU class. This class derives from BaseCPU, which implements
 // a CPU in ReNode. It is the interface between ReNode and the mpact_cheriot
 // simulator library.
-public class MpactCheriotCPU : MpactBaseCPU, ICpuSupportingGdb {
+public class MpactCheriotCPU : MpactBaseCPU, ICluster<MpactCheriotCPU>,
+                               ICpuSupportingGdb {
 
     public MpactCheriotCPU(uint id, UInt64 memoryBase, UInt64 memorySize,
                            UInt64 revocationMemoryBase, string cpuType,
@@ -60,6 +61,7 @@
         : base(id, memoryBase, memorySize, cpuType, machine, endianness,
                bitness) {
         revocationMemBase = revocationMemoryBase;
+	Clustered = new MpactCheriotCPU[] { this };
     }
 
     ~MpactCheriotCPU() {
@@ -133,6 +135,10 @@
     public void RemoveHooksAt(ulong addr) { /* empty */ }
     public void RemoveAllHooks() { /* empty */ }
 
+    // ICluster methods.
+    public new IEnumerable<ICluster<MpactCheriotCPU>> Clusters {get; } = new List<ICluster<MpactCheriotCPU>>(0);
+    public new IEnumerable<MpactCheriotCPU> Clustered {get; }
+
     // ICPUSupportingGdb methods.
 
     public void EnterSingleStepModeSafely(HaltArguments args) {
diff --git a/mpact/sim/util/renode/renode_cs/MpactRiscVCPU.cs b/mpact/sim/util/renode/renode_cs/MpactRiscVCPU.cs
index ca93625..12fa0cd 100644
--- a/mpact/sim/util/renode/renode_cs/MpactRiscVCPU.cs
+++ b/mpact/sim/util/renode/renode_cs/MpactRiscVCPU.cs
@@ -45,7 +45,8 @@
 // The MpactRiscvCPU class. This class derives from BaseCPU, which implements
 // a CPU in ReNode. It is the interface between ReNode and the mpact_riscv32/64
 // simulator libraries.
-public class MpactRiscVCPU : MpactBaseCPU, ICpuSupportingGdb {
+public class MpactRiscVCPU : MpactBaseCPU, ICluster<MpactRiscVCPU>,
+                             ICpuSupportingGdb {
 
     public MpactRiscVCPU(uint id, UInt64 memoryBase, UInt64 memorySize,
                          string cpuType, IMachine machine,
@@ -53,6 +54,7 @@
                          CpuBitness bitness = CpuBitness.Bits32)
         : base(id, memoryBase, memorySize, cpuType, machine, endianness,
                bitness) {
+        Clustered = new MpactRiscVCPU[] { this };
     }
 
     ~MpactRiscVCPU() {
@@ -133,6 +135,10 @@
     public void RemoveHooksAt(ulong addr) { /* empty */ }
     public void RemoveAllHooks() { /* empty */ }
 
+    // ICluster methods.
+    public new IEnumerable<ICluster<MpactRiscVCPU>> Clusters {get; } = new List<ICluster<MpactRiscVCPU>>(0);
+    public new IEnumerable<MpactRiscVCPU> Clustered {get; }
+
     // ICPUSupportingGdb methods.
 
     public void EnterSingleStepModeSafely(HaltArguments args) {