qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v5 34/50] multi-process/mon: choose HMP commands based on tar


From: Dr. David Alan Gilbert
Subject: Re: [PATCH v5 34/50] multi-process/mon: choose HMP commands based on target
Date: Thu, 5 Mar 2020 10:39:10 +0000
User-agent: Mutt/1.13.3 (2020-01-12)

* Jagannathan Raman (address@hidden) wrote:
> From: Elena Ufimtseva <address@hidden>
> 
> Add "targets" field to HMP command definition to select the targets
> which would be supported by each command
> 
> Signed-off-by: Elena Ufimtseva <address@hidden>
> Signed-off-by: John G Johnson <address@hidden>
> Signed-off-by: Jagannathan Raman <address@hidden>
> ---
>  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?

>          .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' ?

> +            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 / address@hidden / Manchester, UK




reply via email to

[Prev in Thread] Current Thread [Next in Thread]