summaryrefslogtreecommitdiffstats
path: root/libpdbg/chip.c
diff options
context:
space:
mode:
authorAlistair Popple <alistair@popple.id.au>2018-04-27 14:08:51 +1000
committerAlistair Popple <alistair@popple.id.au>2018-04-27 14:08:51 +1000
commitad058f045c4403346c92ddd9115397a939b44a79 (patch)
tree83659a06243db24d7d860c59af7d343bb02bd03a /libpdbg/chip.c
parentd74029ccdd3bb680e3753a07df4ff60c3e18aea2 (diff)
downloadpdbg-ad058f045c4403346c92ddd9115397a939b44a79.tar.gz
pdbg-ad058f045c4403346c92ddd9115397a939b44a79.zip
libpdbg: Add support for getring on POWER9
Add basic support for a getring operation on POWER9. Signed-off-by: Alistair Popple <alistair@popple.id.au>
Diffstat (limited to 'libpdbg/chip.c')
-rw-r--r--libpdbg/chip.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/libpdbg/chip.c b/libpdbg/chip.c
index 06ea4e9..79bc87d 100644
--- a/libpdbg/chip.c
+++ b/libpdbg/chip.c
@@ -272,3 +272,15 @@ int ram_getmem(struct pdbg_target *thread, uint64_t addr, uint64_t *value)
*value = results[3];
return 0;
}
+
+/*
+ * Read the given ring from the given chiplet. Result must be large enough to hold ring_len bits.
+ */
+int getring(struct pdbg_target *chiplet_target, uint64_t ring_addr, uint64_t ring_len, uint32_t result[])
+{
+ struct chiplet *chiplet;
+
+ assert(!strcmp(chiplet_target->class, "chiplet"));
+ chiplet = target_to_chiplet(chiplet_target);
+ return chiplet->getring(chiplet, ring_addr, ring_len, result);
+}
OpenPOWER on IntegriCloud