* Jag Raman (jag.ra...@oracle.com) wrote:
> 
> 
> On 3/5/2020 5:39 AM, Dr. David Alan Gilbert wrote:
> > * Jagannathan Raman (jag.ra...@oracle.com) wrote:
> > > From: Elena Ufimtseva <elena.ufimts...@oracle.com>
> > > 
> > > Add "targets" field to HMP command definition to select the targets
> > > which would be supported by each command
> > > 
> > > Signed-off-by: Elena Ufimtseva <elena.ufimts...@oracle.com>
> > > Signed-off-by: John G Johnson <john.g.john...@oracle.com>
> > > Signed-off-by: Jagannathan Raman <jag.ra...@oracle.com>
> > > ---
> > >   hmp-commands-info.hx | 10 ++++++++++
> > >   hmp-commands.hx      | 20 ++++++++++++++++++++
> > >   scripts/hxtool       | 44 ++++++++++++++++++++++++++++++++++++++++++--
> > >   3 files changed, 72 insertions(+), 2 deletions(-)
> > >   mode change 100644 => 100755 scripts/hxtool
> > > 
> > > diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx
> > > index 257ee7d..631cc76 100644
> > > --- a/hmp-commands-info.hx
> > > +++ b/hmp-commands-info.hx
> > > @@ -19,6 +19,7 @@ ETEXI
> > >           .params     = "",
> > >           .help       = "show the version of QEMU",
> > >           .cmd        = hmp_info_version,
> > > +        .targets    = "scsi",
> > >           .flags      = "p",
> > >       },
> > > @@ -48,6 +49,7 @@ ETEXI
> > >           .params     = "",
> > >           .help       = "show the character devices",
> > >           .cmd        = hmp_info_chardev,
> > > +        .targets    = "scsi",
> > 
> > I'm a bit confused what this means; is this saying that the scsi-remote
> > will respond to 'info chardev' ?  Why would it be interested in info
> > chardev?
> 
> We found that QMP/HMP monitor is initialized as a chardev in QEMU. So we
> could use this to get info about the monitors attached to the remote
> process.

Ah OK.

> > 
> > >           .flags      = "p",
> > >       },
> > > @@ -64,6 +66,7 @@ ETEXI
> > >           .help       = "show info of one block device or all block 
> > > devices "
> > >                         "(-n: show named nodes; -v: show details)",
> > >           .cmd        = hmp_info_block,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -78,6 +81,7 @@ ETEXI
> > >           .params     = "",
> > >           .help       = "show block device statistics",
> > >           .cmd        = hmp_info_blockstats,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -92,6 +96,7 @@ ETEXI
> > >           .params     = "",
> > >           .help       = "show progress of ongoing block device 
> > > operations",
> > >           .cmd        = hmp_info_block_jobs,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -167,6 +172,7 @@ ETEXI
> > >           .params     = "",
> > >           .help       = "show the command line history",
> > >           .cmd        = hmp_info_history,
> > > +        .targets    = "scsi",
> > >           .flags      = "p",
> > >       },
> > > @@ -224,6 +230,7 @@ ETEXI
> > >           .params     = "",
> > >           .help       = "show PCI info",
> > >           .cmd        = hmp_info_pci,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -630,6 +637,7 @@ ETEXI
> > >           .params     = "",
> > >           .help       = "show device tree",
> > >           .cmd        = hmp_info_qtree,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -644,6 +652,7 @@ ETEXI
> > >           .params     = "",
> > >           .help       = "show qdev device model list",
> > >           .cmd        = hmp_info_qdm,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -658,6 +667,7 @@ ETEXI
> > >           .params     = "[path]",
> > >           .help       = "show QOM composition tree",
> > >           .cmd        = hmp_info_qom_tree,
> > > +        .targets    = "scsi",
> > >           .flags      = "p",
> > >       },
> > > diff --git a/hmp-commands.hx b/hmp-commands.hx
> > > index dc23185..ecc6169 100644
> > > --- a/hmp-commands.hx
> > > +++ b/hmp-commands.hx
> > > @@ -49,6 +49,7 @@ ETEXI
> > >           .params     = "",
> > >           .help       = "quit the emulator",
> > >           .cmd        = hmp_quit,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -82,6 +83,7 @@ ETEXI
> > >           .params     = "device size",
> > >           .help       = "resize a block image",
> > >           .cmd        = hmp_block_resize,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -99,6 +101,7 @@ ETEXI
> > >           .params     = "device [speed [base]]",
> > >           .help       = "copy data from a backing file into a block 
> > > device",
> > >           .cmd        = hmp_block_stream,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -113,6 +116,7 @@ ETEXI
> > >           .params     = "device speed",
> > >           .help       = "set maximum speed for a background block 
> > > operation",
> > >           .cmd        = hmp_block_job_set_speed,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -129,6 +133,7 @@ ETEXI
> > >                         "\n\t\t\t if you want to abort the operation 
> > > immediately"
> > >                         "\n\t\t\t instead of keep running until data is 
> > > in sync)",
> > >           .cmd        = hmp_block_job_cancel,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -143,6 +148,7 @@ ETEXI
> > >           .params     = "device",
> > >           .help       = "stop an active background block operation",
> > >           .cmd        = hmp_block_job_complete,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -158,6 +164,7 @@ ETEXI
> > >           .params     = "device",
> > >           .help       = "pause an active background block operation",
> > >           .cmd        = hmp_block_job_pause,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -172,6 +179,7 @@ ETEXI
> > >           .params     = "device",
> > >           .help       = "resume a paused background block operation",
> > >           .cmd        = hmp_block_job_resume,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -186,6 +194,7 @@ ETEXI
> > >           .params     = "[-f] device",
> > >           .help       = "eject a removable medium (use -f to force it)",
> > >           .cmd        = hmp_eject,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -200,6 +209,7 @@ ETEXI
> > >           .params     = "device",
> > >           .help       = "remove host block device",
> > >           .cmd        = hmp_drive_del,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -219,6 +229,7 @@ ETEXI
> > >           .params     = "device filename [format [read-only-mode]]",
> > >           .help       = "change a removable medium, optional format",
> > >           .cmd        = hmp_change,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -732,6 +743,7 @@ ETEXI
> > >           .help       = "add device, like -device on the command line",
> > >           .cmd        = hmp_device_add,
> > >           .command_completion = device_add_completion,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -747,6 +759,7 @@ ETEXI
> > >           .help       = "remove device",
> > >           .cmd        = hmp_device_del,
> > >           .command_completion = device_del_completion,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -1351,6 +1364,7 @@ ETEXI
> > >                         "The -c flag requests QEMU to compress backup 
> > > data\n\t\t\t"
> > >                         "(if the target format supports it).\n\t\t\t",
> > >           .cmd        = hmp_drive_backup,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > >   @item drive_backup
> > > @@ -1368,6 +1382,7 @@ ETEXI
> > >                         "[,readonly=on|off][,copy-on-read=on|off]",
> > >           .help       = "add drive to PCI storage controller",
> > >           .cmd        = hmp_drive_add,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -1816,6 +1831,7 @@ ETEXI
> > >           .help       = "add chardev",
> > >           .cmd        = hmp_chardev_add,
> > >           .command_completion = chardev_add_completion,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -1831,6 +1847,7 @@ ETEXI
> > >           .params     = "id args",
> > >           .help       = "change chardev",
> > >           .cmd        = hmp_chardev_change,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -1848,6 +1865,7 @@ ETEXI
> > >           .help       = "remove chardev",
> > >           .cmd        = hmp_chardev_remove,
> > >           .command_completion = chardev_remove_completion,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -1864,6 +1882,7 @@ ETEXI
> > >           .help       = "send a break on chardev",
> > >           .cmd        = hmp_chardev_send_break,
> > >           .command_completion = chardev_remove_completion,
> > > +        .targets    = "scsi",
> > >       },
> > >   STEXI
> > > @@ -1940,6 +1959,7 @@ ETEXI
> > >           .params     = "[subcommand]",
> > >           .help       = "show various information about the system state",
> > >           .cmd        = hmp_info_help,
> > > +        .targets    = "scsi",
> > >           .sub_table  = hmp_info_cmds,
> > >           .flags      = "p",
> > >       },
> > > diff --git a/scripts/hxtool b/scripts/hxtool
> > > old mode 100644
> > > new mode 100755
> > > index 0003e7b..802cbd4
> > > --- a/scripts/hxtool
> > > +++ b/scripts/hxtool
> > > @@ -10,7 +10,14 @@ hxtoh()
> > >               STEXI*|ETEXI*|SRST*|ERST*) flag=$(($flag^1))
> > >               ;;
> > >               *)
> > > -            test $flag -eq 1 && printf "%s\n" "$str"
> > > +            # Skip line that has ".targets" as it is for multi-process 
> > > targets based hmp
> > > +            # commands generation.
> > > +            echo $str | grep -q '.targets'
> > > +            if [ $? -eq 0 ]; then
> > > +                continue
> > > +            else
> > > +                test $flag -eq 1 && printf "%s\n" "$str"
> > > +            fi
> > >               ;;
> > >           esac
> > >       done
> > > @@ -84,16 +91,49 @@ hxtotexi()
> > >               print_texi_heading "$(expr "$str" : 
> > > "ARCHHEADING(\(.*\),.*)")"
> > >               ;;
> > >               *)
> > > -            test $flag -eq 1 && printf '%s\n' "$str"
> > > +            # Skip line that has ".targets" as it is for multi-process 
> > > targets based hmp
> > > +            # commands generation.
> > > +            echo $str | grep -q '.targetss'
> > 
> > One extra 's' ?
> 
> Thanks, we'll fix it.
> 
> --
> Jag
> 
> > 
> > > +            if [ $? -eq 0 ]; then
> > > +                continue
> > > +            else
> > > +                test $flag -eq 1 && printf '%s\n' "$str"
> > > +            fi
> > >               ;;
> > >           esac
> > >           line=$((line+1))
> > >       done
> > >   }
> > > +hxtoh_tgt()
> > > +{
> > > +    section=""
> > > +    flag=1
> > > +    use_section=0
> > > +    while read -r str; do
> > > +        # Print section if it has ".targets" and the second argument 
> > > passed to the
> > > +        # script, such as "scsi".
> > > +        echo "$str" | grep -q -E ".targets.*$1"
> > > +        if [ $? -eq 0 ]; then
> > > +            use_section=1
> > > +            continue
> > > +        fi
> > > +        case $str in
> > > +            HXCOMM*)
> > > +            ;;
> > > +            STEXI*|ETEXI*) flag=$(($flag^1)); test $use_section -eq 1 && 
> > > printf '%s' "$section"; section=""; use_section=0
> > > +            ;;
> > > +            *)
> > > +            test $flag -eq 1 && section="${section} ${str} ${IFS}"
> > > +            ;;
> > > +        esac
> > > +    done
> > > +}
> > > +
> > >   case "$1" in
> > >   "-h") hxtoh ;;
> > >   "-t") hxtotexi ;;
> > > +"-tgt") hxtoh_tgt $2 ;;
> > >   *) exit 1 ;;
> > >   esac
> > > -- 
> > > 1.8.3.1
> > > 
> > --
> > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK
> > 
> 
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK


Reply via email to