[Pdbg] [PATCH v2 3/3] istep: Run all sub-steps if minor is 0
Amitay Isaacs
amitay at ozlabs.org
Thu Oct 17 16:03:50 AEDT 2019
Signed-off-by: Amitay Isaacs <amitay at ozlabs.org>
---
src/istep.c | 18 +++++++++++++++---
src/main.c | 2 +-
2 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/src/istep.c b/src/istep.c
index bdb13b3..745448b 100644
--- a/src/istep.c
+++ b/src/istep.c
@@ -36,6 +36,7 @@ static int istep(uint32_t major, uint32_t minor)
{
struct pdbg_target *pib;
int count = 0, i, rc;
+ int first = minor, last = minor;
for_each_path_target_class("pib", pib) {
if (pdbg_target_index(pib))
@@ -59,6 +60,12 @@ static int istep(uint32_t major, uint32_t minor)
if (istep_data[i].major != major)
continue;
+ if (minor == 0) {
+ first = istep_data[i].minor_first;
+ last = istep_data[i].minor_last;
+ break;
+ }
+
if (minor < istep_data[i].minor_first ||
minor > istep_data[i].minor_last) {
fprintf(stderr, "Istep %d minor should be %d to %d\n",
@@ -69,10 +76,15 @@ static int istep(uint32_t major, uint32_t minor)
}
}
- rc = sbe_istep(pib, major, minor);
- if (!rc)
- count++;
+ for (i = first; i <= last ; i++) {
+ printf("Running istep %d.%d\n", major, i);
+ rc = sbe_istep(pib, major, i);
+ if (rc)
+ goto fail;
+ }
+ count++;
+fail:
return count;
}
OPTCMD_DEFINE_CMD_WITH_ARGS(istep, istep, (DATA32, DATA32));
diff --git a/src/main.c b/src/main.c
index efdc4bb..029ed07 100644
--- a/src/main.c
+++ b/src/main.c
@@ -125,7 +125,7 @@ static struct action actions[] = {
{ "sreset", "", "Reset" },
{ "regs", "[--backtrace]", "State (optionally display backtrace)" },
{ "gdbserver", "", "Start a gdb server" },
- { "istep", "<major> <minor>", "Execute istep on SBE" },
+ { "istep", "<major> <minor>|0", "Execute istep on SBE" },
};
static void print_usage(void)
--
2.21.0
More information about the Pdbg
mailing list