[Pdbg] [PATCH 1/3] istep: Add checking for istep major/minor numbers
Alistair Popple
alistair at popple.id.au
Thu Jul 11 15:39:59 AEST 2019
Part of me feels like one day we will need a way of over-riding this (say when
the SBE decides that istep 5.3 is a thing). Can we just print a warning that
things may fail instead? From memory the SBE will just respond with an error
if the wrong numbers are specified anyway, so it shouldn't cause a big issue.
I assume there is no way of probing the SBE to find out what isteps it
supports? Do you think it would make sense to just keep incrementing until we
get an invalid argument failure from the SBE?
- Alistair
On Thursday, 4 July 2019 6:11:31 PM AEST Amitay Isaacs wrote:
> Signed-off-by: Amitay Isaacs <amitay at ozlabs.org>
> ---
> src/istep.c | 30 ++++++++++++++++++++++++++----
> 1 file changed, 26 insertions(+), 4 deletions(-)
>
> diff --git a/src/istep.c b/src/istep.c
> index 08a6215..a9acbe7 100644
> --- a/src/istep.c
> +++ b/src/istep.c
> @@ -20,18 +20,40 @@
> #include "optcmd.h"
> #include "path.h"
>
> +struct istep_data {
> + int major;
> + int minor_first;
> + int minor_last;
> +} istep_data[] = {
> + { 2, 2, 17 },
> + { 3, 1, 22 },
> + { 4, 1, 34 },
> + { 5, 1, 2 },
> + { 0, 0, 0 },
> +};
> +
> static int istep(uint32_t major, uint32_t minor)
> {
> struct pdbg_target *target;
> - int count = 0;
> + int count = 0, i;
>
> if (major < 2 || major > 5) {
> fprintf(stderr, "Istep major should be 2 to 5\n");
> return 0;
> }
> - if (major == 2 && minor == 1) {
> - fprintf(stderr, "Istep 2 minor should be > 1\n");
> - return 0;
> +
> + for (i=0; istep_data[i].major != 0; i++) {
> + if (istep_data[i].major != major)
> + continue;
> +
> + if (minor < istep_data[i].minor_first ||
> + minor > istep_data[i].minor_last) {
> + fprintf(stderr, "Istep %d minor should be %d to %d\n",
> + major,
> + istep_data[i].minor_first,
> + istep_data[i].minor_last);
> + return 0;
> + }
> }
>
> for_each_path_target_class("sbefifo", target) {
More information about the Pdbg
mailing list