monitor: remove mhandler.cmd_new

This is no longer necessary now that we aren't using middle mode
anymore.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20160912091913.15831-12-marcandre.lureau@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
Marc-André Lureau 2016-09-12 13:19:06 +04:00 committed by Markus Armbruster
parent 9e812b6adc
commit 2b9e35760a
4 changed files with 170 additions and 173 deletions

View File

@ -335,7 +335,7 @@ we should add it to the hmp-commands.hx file:
.args_type = "message:s?", .args_type = "message:s?",
.params = "hello-world [message]", .params = "hello-world [message]",
.help = "Print message to the standard output", .help = "Print message to the standard output",
.mhandler.cmd = hmp_hello_world, .cmd = hmp_hello_world,
}, },
STEXI STEXI
@ -515,7 +515,7 @@ in the monitor.c file. The entry for the "info alarmclock" follows:
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show information about the alarm clock", .help = "show information about the alarm clock",
.mhandler.cmd = hmp_info_alarm_clock, .cmd = hmp_info_alarm_clock,
}, },
To test this, run qemu and type "info alarmclock" in the user monitor. To test this, run qemu and type "info alarmclock" in the user monitor.

View File

@ -18,7 +18,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show the version of QEMU", .help = "show the version of QEMU",
.mhandler.cmd = hmp_info_version, .cmd = hmp_info_version,
}, },
STEXI STEXI
@ -32,7 +32,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show the network state", .help = "show the network state",
.mhandler.cmd = hmp_info_network, .cmd = hmp_info_network,
}, },
STEXI STEXI
@ -46,7 +46,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show the character devices", .help = "show the character devices",
.mhandler.cmd = hmp_info_chardev, .cmd = hmp_info_chardev,
}, },
STEXI STEXI
@ -61,7 +61,7 @@ ETEXI
.params = "[-n] [-v] [device]", .params = "[-n] [-v] [device]",
.help = "show info of one block device or all block devices " .help = "show info of one block device or all block devices "
"(-n: show named nodes; -v: show details)", "(-n: show named nodes; -v: show details)",
.mhandler.cmd = hmp_info_block, .cmd = hmp_info_block,
}, },
STEXI STEXI
@ -75,7 +75,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show block device statistics", .help = "show block device statistics",
.mhandler.cmd = hmp_info_blockstats, .cmd = hmp_info_blockstats,
}, },
STEXI STEXI
@ -89,7 +89,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show progress of ongoing block device operations", .help = "show progress of ongoing block device operations",
.mhandler.cmd = hmp_info_block_jobs, .cmd = hmp_info_block_jobs,
}, },
STEXI STEXI
@ -103,7 +103,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show the cpu registers", .help = "show the cpu registers",
.mhandler.cmd = hmp_info_registers, .cmd = hmp_info_registers,
}, },
STEXI STEXI
@ -118,7 +118,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show local apic state", .help = "show local apic state",
.mhandler.cmd = hmp_info_local_apic, .cmd = hmp_info_local_apic,
}, },
#endif #endif
@ -134,7 +134,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show io apic state", .help = "show io apic state",
.mhandler.cmd = hmp_info_io_apic, .cmd = hmp_info_io_apic,
}, },
#endif #endif
@ -149,7 +149,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show infos for each CPU", .help = "show infos for each CPU",
.mhandler.cmd = hmp_info_cpus, .cmd = hmp_info_cpus,
}, },
STEXI STEXI
@ -163,7 +163,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show the command line history", .help = "show the command line history",
.mhandler.cmd = hmp_info_history, .cmd = hmp_info_history,
}, },
STEXI STEXI
@ -180,11 +180,11 @@ ETEXI
.params = "", .params = "",
.help = "show the interrupts statistics (if available)", .help = "show the interrupts statistics (if available)",
#ifdef TARGET_SPARC #ifdef TARGET_SPARC
.mhandler.cmd = sun4m_hmp_info_irq, .cmd = sun4m_hmp_info_irq,
#elif defined(TARGET_LM32) #elif defined(TARGET_LM32)
.mhandler.cmd = lm32_hmp_info_irq, .cmd = lm32_hmp_info_irq,
#else #else
.mhandler.cmd = hmp_info_irq, .cmd = hmp_info_irq,
#endif #endif
}, },
@ -200,11 +200,11 @@ ETEXI
.params = "", .params = "",
.help = "show i8259 (PIC) state", .help = "show i8259 (PIC) state",
#ifdef TARGET_SPARC #ifdef TARGET_SPARC
.mhandler.cmd = sun4m_hmp_info_pic, .cmd = sun4m_hmp_info_pic,
#elif defined(TARGET_LM32) #elif defined(TARGET_LM32)
.mhandler.cmd = lm32_hmp_info_pic, .cmd = lm32_hmp_info_pic,
#else #else
.mhandler.cmd = hmp_info_pic, .cmd = hmp_info_pic,
#endif #endif
}, },
#endif #endif
@ -220,7 +220,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show PCI info", .help = "show PCI info",
.mhandler.cmd = hmp_info_pci, .cmd = hmp_info_pci,
}, },
STEXI STEXI
@ -236,7 +236,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show virtual to physical memory mappings", .help = "show virtual to physical memory mappings",
.mhandler.cmd = hmp_info_tlb, .cmd = hmp_info_tlb,
}, },
#endif #endif
@ -252,7 +252,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show the active virtual memory mappings", .help = "show the active virtual memory mappings",
.mhandler.cmd = hmp_info_mem, .cmd = hmp_info_mem,
}, },
#endif #endif
@ -267,7 +267,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show memory tree", .help = "show memory tree",
.mhandler.cmd = hmp_info_mtree, .cmd = hmp_info_mtree,
}, },
STEXI STEXI
@ -281,7 +281,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show dynamic compiler info", .help = "show dynamic compiler info",
.mhandler.cmd = hmp_info_jit, .cmd = hmp_info_jit,
}, },
STEXI STEXI
@ -295,7 +295,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show dynamic compiler opcode counters", .help = "show dynamic compiler opcode counters",
.mhandler.cmd = hmp_info_opcount, .cmd = hmp_info_opcount,
}, },
STEXI STEXI
@ -309,7 +309,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show KVM information", .help = "show KVM information",
.mhandler.cmd = hmp_info_kvm, .cmd = hmp_info_kvm,
}, },
STEXI STEXI
@ -323,7 +323,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show NUMA information", .help = "show NUMA information",
.mhandler.cmd = hmp_info_numa, .cmd = hmp_info_numa,
}, },
STEXI STEXI
@ -337,7 +337,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show guest USB devices", .help = "show guest USB devices",
.mhandler.cmd = hmp_info_usb, .cmd = hmp_info_usb,
}, },
STEXI STEXI
@ -351,7 +351,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show host USB devices", .help = "show host USB devices",
.mhandler.cmd = hmp_info_usbhost, .cmd = hmp_info_usbhost,
}, },
STEXI STEXI
@ -365,7 +365,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show profiling information", .help = "show profiling information",
.mhandler.cmd = hmp_info_profile, .cmd = hmp_info_profile,
}, },
STEXI STEXI
@ -379,7 +379,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show capture information", .help = "show capture information",
.mhandler.cmd = hmp_info_capture, .cmd = hmp_info_capture,
}, },
STEXI STEXI
@ -393,7 +393,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show the currently saved VM snapshots", .help = "show the currently saved VM snapshots",
.mhandler.cmd = hmp_info_snapshots, .cmd = hmp_info_snapshots,
}, },
STEXI STEXI
@ -407,7 +407,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show the current VM status (running|paused)", .help = "show the current VM status (running|paused)",
.mhandler.cmd = hmp_info_status, .cmd = hmp_info_status,
}, },
STEXI STEXI
@ -421,7 +421,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show which guest mouse is receiving events", .help = "show which guest mouse is receiving events",
.mhandler.cmd = hmp_info_mice, .cmd = hmp_info_mice,
}, },
STEXI STEXI
@ -435,7 +435,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show the vnc server status", .help = "show the vnc server status",
.mhandler.cmd = hmp_info_vnc, .cmd = hmp_info_vnc,
}, },
STEXI STEXI
@ -450,7 +450,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show the spice server status", .help = "show the spice server status",
.mhandler.cmd = hmp_info_spice, .cmd = hmp_info_spice,
}, },
#endif #endif
@ -465,7 +465,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show the current VM name", .help = "show the current VM name",
.mhandler.cmd = hmp_info_name, .cmd = hmp_info_name,
}, },
STEXI STEXI
@ -479,7 +479,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show the current VM UUID", .help = "show the current VM UUID",
.mhandler.cmd = hmp_info_uuid, .cmd = hmp_info_uuid,
}, },
STEXI STEXI
@ -493,7 +493,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show CPU statistics", .help = "show CPU statistics",
.mhandler.cmd = hmp_info_cpustats, .cmd = hmp_info_cpustats,
}, },
STEXI STEXI
@ -508,7 +508,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show user network stack connection states", .help = "show user network stack connection states",
.mhandler.cmd = hmp_info_usernet, .cmd = hmp_info_usernet,
}, },
#endif #endif
@ -523,7 +523,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show migration status", .help = "show migration status",
.mhandler.cmd = hmp_info_migrate, .cmd = hmp_info_migrate,
}, },
STEXI STEXI
@ -537,7 +537,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show current migration capabilities", .help = "show current migration capabilities",
.mhandler.cmd = hmp_info_migrate_capabilities, .cmd = hmp_info_migrate_capabilities,
}, },
STEXI STEXI
@ -551,7 +551,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show current migration parameters", .help = "show current migration parameters",
.mhandler.cmd = hmp_info_migrate_parameters, .cmd = hmp_info_migrate_parameters,
}, },
STEXI STEXI
@ -565,7 +565,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show current migration xbzrle cache size", .help = "show current migration xbzrle cache size",
.mhandler.cmd = hmp_info_migrate_cache_size, .cmd = hmp_info_migrate_cache_size,
}, },
STEXI STEXI
@ -579,7 +579,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show balloon information", .help = "show balloon information",
.mhandler.cmd = hmp_info_balloon, .cmd = hmp_info_balloon,
}, },
STEXI STEXI
@ -593,7 +593,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show device tree", .help = "show device tree",
.mhandler.cmd = hmp_info_qtree, .cmd = hmp_info_qtree,
}, },
STEXI STEXI
@ -607,7 +607,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show qdev device model list", .help = "show qdev device model list",
.mhandler.cmd = hmp_info_qdm, .cmd = hmp_info_qdm,
}, },
STEXI STEXI
@ -621,7 +621,7 @@ ETEXI
.args_type = "path:s?", .args_type = "path:s?",
.params = "[path]", .params = "[path]",
.help = "show QOM composition tree", .help = "show QOM composition tree",
.mhandler.cmd = hmp_info_qom_tree, .cmd = hmp_info_qom_tree,
}, },
STEXI STEXI
@ -635,7 +635,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show roms", .help = "show roms",
.mhandler.cmd = hmp_info_roms, .cmd = hmp_info_roms,
}, },
STEXI STEXI
@ -650,7 +650,7 @@ ETEXI
.params = "[name] [vcpu]", .params = "[name] [vcpu]",
.help = "show available trace-events & their state " .help = "show available trace-events & their state "
"(name: event name pattern; vcpu: vCPU to query, default is any)", "(name: event name pattern; vcpu: vCPU to query, default is any)",
.mhandler.cmd = hmp_info_trace_events, .cmd = hmp_info_trace_events,
.command_completion = info_trace_events_completion, .command_completion = info_trace_events_completion,
}, },
@ -665,7 +665,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show the TPM device", .help = "show the TPM device",
.mhandler.cmd = hmp_info_tpm, .cmd = hmp_info_tpm,
}, },
STEXI STEXI
@ -679,7 +679,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show memory backends", .help = "show memory backends",
.mhandler.cmd = hmp_info_memdev, .cmd = hmp_info_memdev,
}, },
STEXI STEXI
@ -693,7 +693,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show memory devices", .help = "show memory devices",
.mhandler.cmd = hmp_info_memory_devices, .cmd = hmp_info_memory_devices,
}, },
STEXI STEXI
@ -707,7 +707,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "show iothreads", .help = "show iothreads",
.mhandler.cmd = hmp_info_iothreads, .cmd = hmp_info_iothreads,
}, },
STEXI STEXI
@ -721,7 +721,7 @@ ETEXI
.args_type = "name:s", .args_type = "name:s",
.params = "name", .params = "name",
.help = "Show rocker switch", .help = "Show rocker switch",
.mhandler.cmd = hmp_rocker, .cmd = hmp_rocker,
}, },
STEXI STEXI
@ -735,7 +735,7 @@ ETEXI
.args_type = "name:s", .args_type = "name:s",
.params = "name", .params = "name",
.help = "Show rocker ports", .help = "Show rocker ports",
.mhandler.cmd = hmp_rocker_ports, .cmd = hmp_rocker_ports,
}, },
STEXI STEXI
@ -749,7 +749,7 @@ ETEXI
.args_type = "name:s,tbl_id:i?", .args_type = "name:s,tbl_id:i?",
.params = "name [tbl_id]", .params = "name [tbl_id]",
.help = "Show rocker OF-DPA flow tables", .help = "Show rocker OF-DPA flow tables",
.mhandler.cmd = hmp_rocker_of_dpa_flows, .cmd = hmp_rocker_of_dpa_flows,
}, },
STEXI STEXI
@ -763,7 +763,7 @@ ETEXI
.args_type = "name:s,type:i?", .args_type = "name:s,type:i?",
.params = "name [type]", .params = "name [type]",
.help = "Show rocker OF-DPA groups", .help = "Show rocker OF-DPA groups",
.mhandler.cmd = hmp_rocker_of_dpa_groups, .cmd = hmp_rocker_of_dpa_groups,
}, },
STEXI STEXI
@ -778,7 +778,7 @@ ETEXI
.args_type = "addr:l", .args_type = "addr:l",
.params = "address", .params = "address",
.help = "Display the value of a storage key", .help = "Display the value of a storage key",
.mhandler.cmd = hmp_info_skeys, .cmd = hmp_info_skeys,
}, },
#endif #endif
@ -793,7 +793,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "Display the latest dump status", .help = "Display the latest dump status",
.mhandler.cmd = hmp_info_dump, .cmd = hmp_info_dump,
}, },
STEXI STEXI
@ -807,7 +807,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "Show information about hotpluggable CPUs", .help = "Show information about hotpluggable CPUs",
.mhandler.cmd = hmp_hotpluggable_cpus, .cmd = hmp_hotpluggable_cpus,
}, },
STEXI STEXI

View File

@ -14,7 +14,7 @@ ETEXI
.args_type = "name:S?", .args_type = "name:S?",
.params = "[cmd]", .params = "[cmd]",
.help = "show the help", .help = "show the help",
.mhandler.cmd = do_help_cmd, .cmd = do_help_cmd,
}, },
STEXI STEXI
@ -28,7 +28,7 @@ ETEXI
.args_type = "device:B", .args_type = "device:B",
.params = "device|all", .params = "device|all",
.help = "commit changes to the disk images (if -snapshot is used) or backing files", .help = "commit changes to the disk images (if -snapshot is used) or backing files",
.mhandler.cmd = hmp_commit, .cmd = hmp_commit,
}, },
STEXI STEXI
@ -47,7 +47,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "quit the emulator", .help = "quit the emulator",
.mhandler.cmd = hmp_quit, .cmd = hmp_quit,
}, },
STEXI STEXI
@ -61,7 +61,7 @@ ETEXI
.args_type = "device:B,size:o", .args_type = "device:B,size:o",
.params = "device size", .params = "device size",
.help = "resize a block image", .help = "resize a block image",
.mhandler.cmd = hmp_block_resize, .cmd = hmp_block_resize,
}, },
STEXI STEXI
@ -78,7 +78,7 @@ ETEXI
.args_type = "device:B,speed:o?,base:s?", .args_type = "device:B,speed:o?,base:s?",
.params = "device [speed [base]]", .params = "device [speed [base]]",
.help = "copy data from a backing file into a block device", .help = "copy data from a backing file into a block device",
.mhandler.cmd = hmp_block_stream, .cmd = hmp_block_stream,
}, },
STEXI STEXI
@ -92,7 +92,7 @@ ETEXI
.args_type = "device:B,speed:o", .args_type = "device:B,speed:o",
.params = "device speed", .params = "device speed",
.help = "set maximum speed for a background block operation", .help = "set maximum speed for a background block operation",
.mhandler.cmd = hmp_block_job_set_speed, .cmd = hmp_block_job_set_speed,
}, },
STEXI STEXI
@ -107,7 +107,7 @@ ETEXI
.params = "[-f] device", .params = "[-f] device",
.help = "stop an active background block operation (use -f" .help = "stop an active background block operation (use -f"
"\n\t\t\t if the operation is currently paused)", "\n\t\t\t if the operation is currently paused)",
.mhandler.cmd = hmp_block_job_cancel, .cmd = hmp_block_job_cancel,
}, },
STEXI STEXI
@ -121,7 +121,7 @@ ETEXI
.args_type = "device:B", .args_type = "device:B",
.params = "device", .params = "device",
.help = "stop an active background block operation", .help = "stop an active background block operation",
.mhandler.cmd = hmp_block_job_complete, .cmd = hmp_block_job_complete,
}, },
STEXI STEXI
@ -136,7 +136,7 @@ ETEXI
.args_type = "device:B", .args_type = "device:B",
.params = "device", .params = "device",
.help = "pause an active background block operation", .help = "pause an active background block operation",
.mhandler.cmd = hmp_block_job_pause, .cmd = hmp_block_job_pause,
}, },
STEXI STEXI
@ -150,7 +150,7 @@ ETEXI
.args_type = "device:B", .args_type = "device:B",
.params = "device", .params = "device",
.help = "resume a paused background block operation", .help = "resume a paused background block operation",
.mhandler.cmd = hmp_block_job_resume, .cmd = hmp_block_job_resume,
}, },
STEXI STEXI
@ -164,7 +164,7 @@ ETEXI
.args_type = "force:-f,device:B", .args_type = "force:-f,device:B",
.params = "[-f] device", .params = "[-f] device",
.help = "eject a removable medium (use -f to force it)", .help = "eject a removable medium (use -f to force it)",
.mhandler.cmd = hmp_eject, .cmd = hmp_eject,
}, },
STEXI STEXI
@ -178,7 +178,7 @@ ETEXI
.args_type = "id:B", .args_type = "id:B",
.params = "device", .params = "device",
.help = "remove host block device", .help = "remove host block device",
.mhandler.cmd = hmp_drive_del, .cmd = hmp_drive_del,
}, },
STEXI STEXI
@ -197,7 +197,7 @@ ETEXI
.args_type = "device:B,target:F,arg:s?,read-only-mode:s?", .args_type = "device:B,target:F,arg:s?,read-only-mode:s?",
.params = "device filename [format [read-only-mode]]", .params = "device filename [format [read-only-mode]]",
.help = "change a removable medium, optional format", .help = "change a removable medium, optional format",
.mhandler.cmd = hmp_change, .cmd = hmp_change,
}, },
STEXI STEXI
@ -256,7 +256,7 @@ ETEXI
.args_type = "filename:F", .args_type = "filename:F",
.params = "filename", .params = "filename",
.help = "save screen into PPM image 'filename'", .help = "save screen into PPM image 'filename'",
.mhandler.cmd = hmp_screendump, .cmd = hmp_screendump,
}, },
STEXI STEXI
@ -270,7 +270,7 @@ ETEXI
.args_type = "filename:F", .args_type = "filename:F",
.params = "filename", .params = "filename",
.help = "output logs to 'filename'", .help = "output logs to 'filename'",
.mhandler.cmd = hmp_logfile, .cmd = hmp_logfile,
}, },
STEXI STEXI
@ -285,7 +285,7 @@ ETEXI
.params = "name on|off [vcpu]", .params = "name on|off [vcpu]",
.help = "changes status of a specific trace event " .help = "changes status of a specific trace event "
"(vcpu: vCPU to set, default is all)", "(vcpu: vCPU to set, default is all)",
.mhandler.cmd = hmp_trace_event, .cmd = hmp_trace_event,
.command_completion = trace_event_completion, .command_completion = trace_event_completion,
}, },
@ -301,7 +301,7 @@ ETEXI
.args_type = "op:s?,arg:F?", .args_type = "op:s?,arg:F?",
.params = "on|off|flush|set [arg]", .params = "on|off|flush|set [arg]",
.help = "open, close, or flush trace file, or set a new file name", .help = "open, close, or flush trace file, or set a new file name",
.mhandler.cmd = hmp_trace_file, .cmd = hmp_trace_file,
}, },
STEXI STEXI
@ -316,7 +316,7 @@ ETEXI
.args_type = "items:s", .args_type = "items:s",
.params = "item1[,...]", .params = "item1[,...]",
.help = "activate logging of the specified items", .help = "activate logging of the specified items",
.mhandler.cmd = hmp_log, .cmd = hmp_log,
}, },
STEXI STEXI
@ -330,7 +330,7 @@ ETEXI
.args_type = "name:s?", .args_type = "name:s?",
.params = "[tag|id]", .params = "[tag|id]",
.help = "save a VM snapshot. If no tag or id are provided, a new snapshot is created", .help = "save a VM snapshot. If no tag or id are provided, a new snapshot is created",
.mhandler.cmd = hmp_savevm, .cmd = hmp_savevm,
}, },
STEXI STEXI
@ -347,7 +347,7 @@ ETEXI
.args_type = "name:s", .args_type = "name:s",
.params = "tag|id", .params = "tag|id",
.help = "restore a VM snapshot from its tag or id", .help = "restore a VM snapshot from its tag or id",
.mhandler.cmd = hmp_loadvm, .cmd = hmp_loadvm,
.command_completion = loadvm_completion, .command_completion = loadvm_completion,
}, },
@ -363,7 +363,7 @@ ETEXI
.args_type = "name:s", .args_type = "name:s",
.params = "tag|id", .params = "tag|id",
.help = "delete a VM snapshot from its tag or id", .help = "delete a VM snapshot from its tag or id",
.mhandler.cmd = hmp_delvm, .cmd = hmp_delvm,
.command_completion = delvm_completion, .command_completion = delvm_completion,
}, },
@ -378,7 +378,7 @@ ETEXI
.args_type = "option:s?", .args_type = "option:s?",
.params = "[on|off]", .params = "[on|off]",
.help = "run emulation in singlestep mode or switch to normal mode", .help = "run emulation in singlestep mode or switch to normal mode",
.mhandler.cmd = hmp_singlestep, .cmd = hmp_singlestep,
}, },
STEXI STEXI
@ -393,7 +393,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "stop emulation", .help = "stop emulation",
.mhandler.cmd = hmp_stop, .cmd = hmp_stop,
}, },
STEXI STEXI
@ -407,7 +407,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "resume emulation", .help = "resume emulation",
.mhandler.cmd = hmp_cont, .cmd = hmp_cont,
}, },
STEXI STEXI
@ -421,7 +421,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "wakeup guest from suspend", .help = "wakeup guest from suspend",
.mhandler.cmd = hmp_system_wakeup, .cmd = hmp_system_wakeup,
}, },
STEXI STEXI
@ -435,7 +435,7 @@ ETEXI
.args_type = "device:s?", .args_type = "device:s?",
.params = "[device]", .params = "[device]",
.help = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'", .help = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
.mhandler.cmd = hmp_gdbserver, .cmd = hmp_gdbserver,
}, },
STEXI STEXI
@ -449,7 +449,7 @@ ETEXI
.args_type = "fmt:/,addr:l", .args_type = "fmt:/,addr:l",
.params = "/fmt addr", .params = "/fmt addr",
.help = "virtual memory dump starting at 'addr'", .help = "virtual memory dump starting at 'addr'",
.mhandler.cmd = hmp_memory_dump, .cmd = hmp_memory_dump,
}, },
STEXI STEXI
@ -463,7 +463,7 @@ ETEXI
.args_type = "fmt:/,addr:l", .args_type = "fmt:/,addr:l",
.params = "/fmt addr", .params = "/fmt addr",
.help = "physical memory dump starting at 'addr'", .help = "physical memory dump starting at 'addr'",
.mhandler.cmd = hmp_physical_memory_dump, .cmd = hmp_physical_memory_dump,
}, },
STEXI STEXI
@ -530,7 +530,7 @@ ETEXI
.args_type = "fmt:/,val:l", .args_type = "fmt:/,val:l",
.params = "/fmt expr", .params = "/fmt expr",
.help = "print expression value (use $reg for CPU register access)", .help = "print expression value (use $reg for CPU register access)",
.mhandler.cmd = do_print, .cmd = do_print,
}, },
STEXI STEXI
@ -545,7 +545,7 @@ ETEXI
.args_type = "fmt:/,addr:i,index:i.", .args_type = "fmt:/,addr:i,index:i.",
.params = "/fmt addr", .params = "/fmt addr",
.help = "I/O port read", .help = "I/O port read",
.mhandler.cmd = hmp_ioport_read, .cmd = hmp_ioport_read,
}, },
STEXI STEXI
@ -559,7 +559,7 @@ ETEXI
.args_type = "fmt:/,addr:i,val:i", .args_type = "fmt:/,addr:i,val:i",
.params = "/fmt addr value", .params = "/fmt addr value",
.help = "I/O port write", .help = "I/O port write",
.mhandler.cmd = hmp_ioport_write, .cmd = hmp_ioport_write,
}, },
STEXI STEXI
@ -573,7 +573,7 @@ ETEXI
.args_type = "keys:s,hold-time:i?", .args_type = "keys:s,hold-time:i?",
.params = "keys [hold_ms]", .params = "keys [hold_ms]",
.help = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)", .help = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
.mhandler.cmd = hmp_sendkey, .cmd = hmp_sendkey,
.command_completion = sendkey_completion, .command_completion = sendkey_completion,
}, },
@ -596,7 +596,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "reset the system", .help = "reset the system",
.mhandler.cmd = hmp_system_reset, .cmd = hmp_system_reset,
}, },
STEXI STEXI
@ -610,7 +610,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "send system power down event", .help = "send system power down event",
.mhandler.cmd = hmp_system_powerdown, .cmd = hmp_system_powerdown,
}, },
STEXI STEXI
@ -624,7 +624,7 @@ ETEXI
.args_type = "start:i,size:i", .args_type = "start:i,size:i",
.params = "addr size", .params = "addr size",
.help = "compute the checksum of a memory region", .help = "compute the checksum of a memory region",
.mhandler.cmd = hmp_sum, .cmd = hmp_sum,
}, },
STEXI STEXI
@ -638,7 +638,7 @@ ETEXI
.args_type = "devname:s", .args_type = "devname:s",
.params = "device", .params = "device",
.help = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')", .help = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
.mhandler.cmd = hmp_usb_add, .cmd = hmp_usb_add,
}, },
STEXI STEXI
@ -653,7 +653,7 @@ ETEXI
.args_type = "devname:s", .args_type = "devname:s",
.params = "device", .params = "device",
.help = "remove USB device 'bus.addr'", .help = "remove USB device 'bus.addr'",
.mhandler.cmd = hmp_usb_del, .cmd = hmp_usb_del,
}, },
STEXI STEXI
@ -669,7 +669,7 @@ ETEXI
.args_type = "device:O", .args_type = "device:O",
.params = "driver[,prop=value][,...]", .params = "driver[,prop=value][,...]",
.help = "add device, like -device on the command line", .help = "add device, like -device on the command line",
.mhandler.cmd = hmp_device_add, .cmd = hmp_device_add,
.command_completion = device_add_completion, .command_completion = device_add_completion,
}, },
@ -684,7 +684,7 @@ ETEXI
.args_type = "id:s", .args_type = "id:s",
.params = "device", .params = "device",
.help = "remove device", .help = "remove device",
.mhandler.cmd = hmp_device_del, .cmd = hmp_device_del,
.command_completion = device_del_completion, .command_completion = device_del_completion,
}, },
@ -700,7 +700,7 @@ ETEXI
.args_type = "index:i", .args_type = "index:i",
.params = "index", .params = "index",
.help = "set the default CPU", .help = "set the default CPU",
.mhandler.cmd = hmp_cpu, .cmd = hmp_cpu,
}, },
STEXI STEXI
@ -714,7 +714,7 @@ ETEXI
.args_type = "dx_str:s,dy_str:s,dz_str:s?", .args_type = "dx_str:s,dy_str:s,dz_str:s?",
.params = "dx dy [dz]", .params = "dx dy [dz]",
.help = "send mouse move events", .help = "send mouse move events",
.mhandler.cmd = hmp_mouse_move, .cmd = hmp_mouse_move,
}, },
STEXI STEXI
@ -729,7 +729,7 @@ ETEXI
.args_type = "button_state:i", .args_type = "button_state:i",
.params = "state", .params = "state",
.help = "change mouse button state (1=L, 2=M, 4=R)", .help = "change mouse button state (1=L, 2=M, 4=R)",
.mhandler.cmd = hmp_mouse_button, .cmd = hmp_mouse_button,
}, },
STEXI STEXI
@ -743,7 +743,7 @@ ETEXI
.args_type = "index:i", .args_type = "index:i",
.params = "index", .params = "index",
.help = "set which mouse device receives events", .help = "set which mouse device receives events",
.mhandler.cmd = hmp_mouse_set, .cmd = hmp_mouse_set,
}, },
STEXI STEXI
@ -761,7 +761,7 @@ ETEXI
.args_type = "path:F,freq:i?,bits:i?,nchannels:i?", .args_type = "path:F,freq:i?,bits:i?,nchannels:i?",
.params = "path [frequency [bits [channels]]]", .params = "path [frequency [bits [channels]]]",
.help = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)", .help = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
.mhandler.cmd = hmp_wavcapture, .cmd = hmp_wavcapture,
}, },
STEXI STEXI
@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]] @item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
@ -782,7 +782,7 @@ ETEXI
.args_type = "n:i", .args_type = "n:i",
.params = "capture index", .params = "capture index",
.help = "stop capture", .help = "stop capture",
.mhandler.cmd = hmp_stopcapture, .cmd = hmp_stopcapture,
}, },
STEXI STEXI
@item stopcapture @var{index} @item stopcapture @var{index}
@ -798,7 +798,7 @@ ETEXI
.args_type = "val:l,size:i,filename:s", .args_type = "val:l,size:i,filename:s",
.params = "addr size file", .params = "addr size file",
.help = "save to disk virtual memory dump starting at 'addr' of size 'size'", .help = "save to disk virtual memory dump starting at 'addr' of size 'size'",
.mhandler.cmd = hmp_memsave, .cmd = hmp_memsave,
}, },
STEXI STEXI
@ -812,7 +812,7 @@ ETEXI
.args_type = "val:l,size:i,filename:s", .args_type = "val:l,size:i,filename:s",
.params = "addr size file", .params = "addr size file",
.help = "save to disk physical memory dump starting at 'addr' of size 'size'", .help = "save to disk physical memory dump starting at 'addr' of size 'size'",
.mhandler.cmd = hmp_pmemsave, .cmd = hmp_pmemsave,
}, },
STEXI STEXI
@ -826,7 +826,7 @@ ETEXI
.args_type = "bootdevice:s", .args_type = "bootdevice:s",
.params = "bootdevice", .params = "bootdevice",
.help = "define new values for the boot device list", .help = "define new values for the boot device list",
.mhandler.cmd = hmp_boot_set, .cmd = hmp_boot_set,
}, },
STEXI STEXI
@ -844,7 +844,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "inject an NMI", .help = "inject an NMI",
.mhandler.cmd = hmp_nmi, .cmd = hmp_nmi,
}, },
STEXI STEXI
@item nmi @var{cpu} @item nmi @var{cpu}
@ -858,7 +858,7 @@ ETEXI
.args_type = "device:s,data:s", .args_type = "device:s,data:s",
.params = "device data", .params = "device data",
.help = "Write to a ring buffer character device", .help = "Write to a ring buffer character device",
.mhandler.cmd = hmp_ringbuf_write, .cmd = hmp_ringbuf_write,
.command_completion = ringbuf_write_completion, .command_completion = ringbuf_write_completion,
}, },
@ -875,7 +875,7 @@ ETEXI
.args_type = "device:s,size:i", .args_type = "device:s,size:i",
.params = "device size", .params = "device size",
.help = "Read from a ring buffer character device", .help = "Read from a ring buffer character device",
.mhandler.cmd = hmp_ringbuf_read, .cmd = hmp_ringbuf_read,
.command_completion = ringbuf_write_completion, .command_completion = ringbuf_write_completion,
}, },
@ -901,7 +901,7 @@ ETEXI
" full copy of disk\n\t\t\t -i for migration without " " full copy of disk\n\t\t\t -i for migration without "
"shared storage with incremental copy of disk " "shared storage with incremental copy of disk "
"(base image shared between src and destination)", "(base image shared between src and destination)",
.mhandler.cmd = hmp_migrate, .cmd = hmp_migrate,
}, },
@ -918,7 +918,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "", .params = "",
.help = "cancel the current VM migration", .help = "cancel the current VM migration",
.mhandler.cmd = hmp_migrate_cancel, .cmd = hmp_migrate_cancel,
}, },
STEXI STEXI
@ -933,7 +933,7 @@ ETEXI
.args_type = "uri:s", .args_type = "uri:s",
.params = "uri", .params = "uri",
.help = "Continue an incoming migration from an -incoming defer", .help = "Continue an incoming migration from an -incoming defer",
.mhandler.cmd = hmp_migrate_incoming, .cmd = hmp_migrate_incoming,
}, },
STEXI STEXI
@ -954,7 +954,7 @@ ETEXI
"The cache size affects the number of cache misses." "The cache size affects the number of cache misses."
"In case of a high cache miss ratio you need to increase" "In case of a high cache miss ratio you need to increase"
" the cache size", " the cache size",
.mhandler.cmd = hmp_migrate_set_cache_size, .cmd = hmp_migrate_set_cache_size,
}, },
STEXI STEXI
@ -969,7 +969,7 @@ ETEXI
.params = "value", .params = "value",
.help = "set maximum speed (in bytes) for migrations. " .help = "set maximum speed (in bytes) for migrations. "
"Defaults to MB if no size suffix is specified, ie. B/K/M/G/T", "Defaults to MB if no size suffix is specified, ie. B/K/M/G/T",
.mhandler.cmd = hmp_migrate_set_speed, .cmd = hmp_migrate_set_speed,
}, },
STEXI STEXI
@ -983,7 +983,7 @@ ETEXI
.args_type = "value:T", .args_type = "value:T",
.params = "value", .params = "value",
.help = "set maximum tolerated downtime (in seconds) for migrations", .help = "set maximum tolerated downtime (in seconds) for migrations",
.mhandler.cmd = hmp_migrate_set_downtime, .cmd = hmp_migrate_set_downtime,
}, },
STEXI STEXI
@ -997,7 +997,7 @@ ETEXI
.args_type = "capability:s,state:b", .args_type = "capability:s,state:b",
.params = "capability state", .params = "capability state",
.help = "Enable/Disable the usage of a capability for migration", .help = "Enable/Disable the usage of a capability for migration",
.mhandler.cmd = hmp_migrate_set_capability, .cmd = hmp_migrate_set_capability,
.command_completion = migrate_set_capability_completion, .command_completion = migrate_set_capability_completion,
}, },
@ -1012,7 +1012,7 @@ ETEXI
.args_type = "parameter:s,value:s", .args_type = "parameter:s,value:s",
.params = "parameter value", .params = "parameter value",
.help = "Set the parameter for migration", .help = "Set the parameter for migration",
.mhandler.cmd = hmp_migrate_set_parameter, .cmd = hmp_migrate_set_parameter,
.command_completion = migrate_set_parameter_completion, .command_completion = migrate_set_parameter_completion,
}, },
@ -1029,7 +1029,7 @@ ETEXI
.help = "Followup to a migration command to switch the migration" .help = "Followup to a migration command to switch the migration"
" to postcopy mode. The postcopy-ram capability must " " to postcopy mode. The postcopy-ram capability must "
"be set before the original migration command.", "be set before the original migration command.",
.mhandler.cmd = hmp_migrate_start_postcopy, .cmd = hmp_migrate_start_postcopy,
}, },
STEXI STEXI
@ -1044,7 +1044,7 @@ ETEXI
.args_type = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?", .args_type = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
.params = "protocol hostname port tls-port cert-subject", .params = "protocol hostname port tls-port cert-subject",
.help = "set migration information for remote display", .help = "set migration information for remote display",
.mhandler.cmd = hmp_client_migrate_info, .cmd = hmp_client_migrate_info,
}, },
STEXI STEXI
@ -1067,7 +1067,7 @@ ETEXI
"-s: dump in kdump-compressed format, with snappy compression.\n\t\t\t" "-s: dump in kdump-compressed format, with snappy compression.\n\t\t\t"
"begin: the starting physical address.\n\t\t\t" "begin: the starting physical address.\n\t\t\t"
"length: the memory size, in bytes.", "length: the memory size, in bytes.",
.mhandler.cmd = hmp_dump_guest_memory, .cmd = hmp_dump_guest_memory,
}, },
@ -1094,7 +1094,7 @@ ETEXI
.args_type = "filename:F", .args_type = "filename:F",
.params = "", .params = "",
.help = "Save guest storage keys into file 'filename'.\n", .help = "Save guest storage keys into file 'filename'.\n",
.mhandler.cmd = hmp_dump_skeys, .cmd = hmp_dump_skeys,
}, },
#endif #endif
@ -1116,7 +1116,7 @@ ETEXI
"The default format is qcow2. The -n flag requests QEMU\n\t\t\t" "The default format is qcow2. The -n flag requests QEMU\n\t\t\t"
"to reuse the image found in new-image-file, instead of\n\t\t\t" "to reuse the image found in new-image-file, instead of\n\t\t\t"
"recreating it from scratch.", "recreating it from scratch.",
.mhandler.cmd = hmp_snapshot_blkdev, .cmd = hmp_snapshot_blkdev,
}, },
STEXI STEXI
@ -1132,7 +1132,7 @@ ETEXI
.help = "take an internal snapshot of device.\n\t\t\t" .help = "take an internal snapshot of device.\n\t\t\t"
"The format of the image used by device must\n\t\t\t" "The format of the image used by device must\n\t\t\t"
"support it, such as qcow2.\n\t\t\t", "support it, such as qcow2.\n\t\t\t",
.mhandler.cmd = hmp_snapshot_blkdev_internal, .cmd = hmp_snapshot_blkdev_internal,
}, },
STEXI STEXI
@ -1150,7 +1150,7 @@ ETEXI
"the snapshot matching both id and name.\n\t\t\t" "the snapshot matching both id and name.\n\t\t\t"
"The format of the image used by device must\n\t\t\t" "The format of the image used by device must\n\t\t\t"
"support it, such as qcow2.\n\t\t\t", "support it, such as qcow2.\n\t\t\t",
.mhandler.cmd = hmp_snapshot_delete_blkdev_internal, .cmd = hmp_snapshot_delete_blkdev_internal,
}, },
STEXI STEXI
@ -1171,7 +1171,7 @@ ETEXI
"in new-image-file, instead of recreating it from scratch.\n\t\t\t" "in new-image-file, instead of recreating it from scratch.\n\t\t\t"
"The -f flag requests QEMU to copy the whole disk,\n\t\t\t" "The -f flag requests QEMU to copy the whole disk,\n\t\t\t"
"so that the result does not need a backing file.\n\t\t\t", "so that the result does not need a backing file.\n\t\t\t",
.mhandler.cmd = hmp_drive_mirror, .cmd = hmp_drive_mirror,
}, },
STEXI STEXI
@item drive_mirror @item drive_mirror
@ -1194,7 +1194,7 @@ ETEXI
"so that the result does not need a backing file.\n\t\t\t" "so that the result does not need a backing file.\n\t\t\t"
"The -c flag requests QEMU to compress backup data\n\t\t\t" "The -c flag requests QEMU to compress backup data\n\t\t\t"
"(if the target format supports it).\n\t\t\t", "(if the target format supports it).\n\t\t\t",
.mhandler.cmd = hmp_drive_backup, .cmd = hmp_drive_backup,
}, },
STEXI STEXI
@item drive_backup @item drive_backup
@ -1212,7 +1212,7 @@ ETEXI
"[,snapshot=on|off][,cache=on|off]\n" "[,snapshot=on|off][,cache=on|off]\n"
"[,readonly=on|off][,copy-on-read=on|off]", "[,readonly=on|off][,copy-on-read=on|off]",
.help = "add drive to PCI storage controller", .help = "add drive to PCI storage controller",
.mhandler.cmd = hmp_drive_add, .cmd = hmp_drive_add,
}, },
STEXI STEXI
@ -1236,7 +1236,7 @@ ETEXI
"<error_status> = error string or 32bit\n\t\t\t" "<error_status> = error string or 32bit\n\t\t\t"
"<tlb header> = 32bit x 4\n\t\t\t" "<tlb header> = 32bit x 4\n\t\t\t"
"<tlb header prefix> = 32bit x 4", "<tlb header prefix> = 32bit x 4",
.mhandler.cmd = hmp_pcie_aer_inject_error, .cmd = hmp_pcie_aer_inject_error,
}, },
STEXI STEXI
@ -1250,7 +1250,7 @@ ETEXI
.args_type = "device:s,opts:s?", .args_type = "device:s,opts:s?",
.params = "tap|user|socket|vde|netmap|bridge|vhost-user|dump [options]", .params = "tap|user|socket|vde|netmap|bridge|vhost-user|dump [options]",
.help = "add host VLAN client", .help = "add host VLAN client",
.mhandler.cmd = hmp_host_net_add, .cmd = hmp_host_net_add,
.command_completion = host_net_add_completion, .command_completion = host_net_add_completion,
}, },
@ -1265,7 +1265,7 @@ ETEXI
.args_type = "vlan_id:i,device:s", .args_type = "vlan_id:i,device:s",
.params = "vlan_id name", .params = "vlan_id name",
.help = "remove host VLAN client", .help = "remove host VLAN client",
.mhandler.cmd = hmp_host_net_remove, .cmd = hmp_host_net_remove,
.command_completion = host_net_remove_completion, .command_completion = host_net_remove_completion,
}, },
@ -1280,7 +1280,7 @@ ETEXI
.args_type = "netdev:O", .args_type = "netdev:O",
.params = "[user|tap|socket|vde|bridge|hubport|netmap|vhost-user],id=str[,prop=value][,...]", .params = "[user|tap|socket|vde|bridge|hubport|netmap|vhost-user],id=str[,prop=value][,...]",
.help = "add host network device", .help = "add host network device",
.mhandler.cmd = hmp_netdev_add, .cmd = hmp_netdev_add,
.command_completion = netdev_add_completion, .command_completion = netdev_add_completion,
}, },
@ -1295,7 +1295,7 @@ ETEXI
.args_type = "id:s", .args_type = "id:s",
.params = "id", .params = "id",
.help = "remove host network device", .help = "remove host network device",
.mhandler.cmd = hmp_netdev_del, .cmd = hmp_netdev_del,
.command_completion = netdev_del_completion, .command_completion = netdev_del_completion,
}, },
@ -1310,7 +1310,7 @@ ETEXI
.args_type = "object:O", .args_type = "object:O",
.params = "[qom-type=]type,id=str[,prop=value][,...]", .params = "[qom-type=]type,id=str[,prop=value][,...]",
.help = "create QOM object", .help = "create QOM object",
.mhandler.cmd = hmp_object_add, .cmd = hmp_object_add,
.command_completion = object_add_completion, .command_completion = object_add_completion,
}, },
@ -1325,7 +1325,7 @@ ETEXI
.args_type = "id:s", .args_type = "id:s",
.params = "id", .params = "id",
.help = "destroy QOM object", .help = "destroy QOM object",
.mhandler.cmd = hmp_object_del, .cmd = hmp_object_del,
.command_completion = object_del_completion, .command_completion = object_del_completion,
}, },
@ -1341,7 +1341,7 @@ ETEXI
.args_type = "arg1:s,arg2:s?,arg3:s?", .args_type = "arg1:s,arg2:s?,arg3:s?",
.params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport", .params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
.help = "redirect TCP or UDP connections from host to guest (requires -net user)", .help = "redirect TCP or UDP connections from host to guest (requires -net user)",
.mhandler.cmd = hmp_hostfwd_add, .cmd = hmp_hostfwd_add,
}, },
#endif #endif
STEXI STEXI
@ -1356,7 +1356,7 @@ ETEXI
.args_type = "arg1:s,arg2:s?,arg3:s?", .args_type = "arg1:s,arg2:s?,arg3:s?",
.params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport", .params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
.help = "remove host-to-guest TCP or UDP redirection", .help = "remove host-to-guest TCP or UDP redirection",
.mhandler.cmd = hmp_hostfwd_remove, .cmd = hmp_hostfwd_remove,
}, },
#endif #endif
@ -1371,7 +1371,7 @@ ETEXI
.args_type = "value:M", .args_type = "value:M",
.params = "target", .params = "target",
.help = "request VM to change its memory allocation (in MB)", .help = "request VM to change its memory allocation (in MB)",
.mhandler.cmd = hmp_balloon, .cmd = hmp_balloon,
}, },
STEXI STEXI
@ -1385,7 +1385,7 @@ ETEXI
.args_type = "name:s,up:b", .args_type = "name:s,up:b",
.params = "name on|off", .params = "name on|off",
.help = "change the link status of a network adapter", .help = "change the link status of a network adapter",
.mhandler.cmd = hmp_set_link, .cmd = hmp_set_link,
.command_completion = set_link_completion, .command_completion = set_link_completion,
}, },
@ -1400,7 +1400,7 @@ ETEXI
.args_type = "action:s", .args_type = "action:s",
.params = "[reset|shutdown|poweroff|pause|debug|none]", .params = "[reset|shutdown|poweroff|pause|debug|none]",
.help = "change watchdog action", .help = "change watchdog action",
.mhandler.cmd = hmp_watchdog_action, .cmd = hmp_watchdog_action,
.command_completion = watchdog_action_completion, .command_completion = watchdog_action_completion,
}, },
@ -1415,7 +1415,7 @@ ETEXI
.args_type = "aclname:s", .args_type = "aclname:s",
.params = "aclname", .params = "aclname",
.help = "list rules in the access control list", .help = "list rules in the access control list",
.mhandler.cmd = hmp_acl_show, .cmd = hmp_acl_show,
}, },
STEXI STEXI
@ -1432,7 +1432,7 @@ ETEXI
.args_type = "aclname:s,policy:s", .args_type = "aclname:s,policy:s",
.params = "aclname allow|deny", .params = "aclname allow|deny",
.help = "set default access control list policy", .help = "set default access control list policy",
.mhandler.cmd = hmp_acl_policy, .cmd = hmp_acl_policy,
}, },
STEXI STEXI
@ -1448,7 +1448,7 @@ ETEXI
.args_type = "aclname:s,match:s,policy:s,index:i?", .args_type = "aclname:s,match:s,policy:s,index:i?",
.params = "aclname match allow|deny [index]", .params = "aclname match allow|deny [index]",
.help = "add a match rule to the access control list", .help = "add a match rule to the access control list",
.mhandler.cmd = hmp_acl_add, .cmd = hmp_acl_add,
}, },
STEXI STEXI
@ -1467,7 +1467,7 @@ ETEXI
.args_type = "aclname:s,match:s", .args_type = "aclname:s,match:s",
.params = "aclname match", .params = "aclname match",
.help = "remove a match rule from the access control list", .help = "remove a match rule from the access control list",
.mhandler.cmd = hmp_acl_remove, .cmd = hmp_acl_remove,
}, },
STEXI STEXI
@ -1481,7 +1481,7 @@ ETEXI
.args_type = "aclname:s", .args_type = "aclname:s",
.params = "aclname", .params = "aclname",
.help = "reset the access control list", .help = "reset the access control list",
.mhandler.cmd = hmp_acl_reset, .cmd = hmp_acl_reset,
}, },
STEXI STEXI
@ -1496,7 +1496,7 @@ ETEXI
.args_type = "all:-a,writable:-w,uri:s", .args_type = "all:-a,writable:-w,uri:s",
.params = "nbd_server_start [-a] [-w] host:port", .params = "nbd_server_start [-a] [-w] host:port",
.help = "serve block devices on the given host and port", .help = "serve block devices on the given host and port",
.mhandler.cmd = hmp_nbd_server_start, .cmd = hmp_nbd_server_start,
}, },
STEXI STEXI
@item nbd_server_start @var{host}:@var{port} @item nbd_server_start @var{host}:@var{port}
@ -1512,7 +1512,7 @@ ETEXI
.args_type = "writable:-w,device:B", .args_type = "writable:-w,device:B",
.params = "nbd_server_add [-w] device", .params = "nbd_server_add [-w] device",
.help = "export a block device via NBD", .help = "export a block device via NBD",
.mhandler.cmd = hmp_nbd_server_add, .cmd = hmp_nbd_server_add,
}, },
STEXI STEXI
@item nbd_server_add @var{device} @item nbd_server_add @var{device}
@ -1527,7 +1527,7 @@ ETEXI
.args_type = "", .args_type = "",
.params = "nbd_server_stop", .params = "nbd_server_stop",
.help = "stop serving block devices using the NBD protocol", .help = "stop serving block devices using the NBD protocol",
.mhandler.cmd = hmp_nbd_server_stop, .cmd = hmp_nbd_server_stop,
}, },
STEXI STEXI
@item nbd_server_stop @item nbd_server_stop
@ -1543,7 +1543,7 @@ ETEXI
.args_type = "broadcast:-b,cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l", .args_type = "broadcast:-b,cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
.params = "[-b] cpu bank status mcgstatus addr misc", .params = "[-b] cpu bank status mcgstatus addr misc",
.help = "inject a MCE on the given CPU [and broadcast to other CPUs with -b option]", .help = "inject a MCE on the given CPU [and broadcast to other CPUs with -b option]",
.mhandler.cmd = hmp_mce, .cmd = hmp_mce,
}, },
#endif #endif
@ -1558,7 +1558,7 @@ ETEXI
.args_type = "fdname:s", .args_type = "fdname:s",
.params = "getfd name", .params = "getfd name",
.help = "receive a file descriptor via SCM rights and assign it a name", .help = "receive a file descriptor via SCM rights and assign it a name",
.mhandler.cmd = hmp_getfd, .cmd = hmp_getfd,
}, },
STEXI STEXI
@ -1574,7 +1574,7 @@ ETEXI
.args_type = "fdname:s", .args_type = "fdname:s",
.params = "closefd name", .params = "closefd name",
.help = "close a file descriptor previously passed via SCM rights", .help = "close a file descriptor previously passed via SCM rights",
.mhandler.cmd = hmp_closefd, .cmd = hmp_closefd,
}, },
STEXI STEXI
@ -1590,7 +1590,7 @@ ETEXI
.args_type = "device:B,password:s", .args_type = "device:B,password:s",
.params = "block_passwd device password", .params = "block_passwd device password",
.help = "set the password of encrypted block devices", .help = "set the password of encrypted block devices",
.mhandler.cmd = hmp_block_passwd, .cmd = hmp_block_passwd,
}, },
STEXI STEXI
@ -1604,7 +1604,7 @@ ETEXI
.args_type = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l", .args_type = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l",
.params = "device bps bps_rd bps_wr iops iops_rd iops_wr", .params = "device bps bps_rd bps_wr iops iops_rd iops_wr",
.help = "change I/O throttle limits for a block drive", .help = "change I/O throttle limits for a block drive",
.mhandler.cmd = hmp_block_set_io_throttle, .cmd = hmp_block_set_io_throttle,
}, },
STEXI STEXI
@ -1618,7 +1618,7 @@ ETEXI
.args_type = "protocol:s,password:s,connected:s?", .args_type = "protocol:s,password:s,connected:s?",
.params = "protocol password action-if-connected", .params = "protocol password action-if-connected",
.help = "set spice/vnc password", .help = "set spice/vnc password",
.mhandler.cmd = hmp_set_password, .cmd = hmp_set_password,
}, },
STEXI STEXI
@ -1637,7 +1637,7 @@ ETEXI
.args_type = "protocol:s,time:s", .args_type = "protocol:s,time:s",
.params = "protocol time", .params = "protocol time",
.help = "set spice/vnc password expire-time", .help = "set spice/vnc password expire-time",
.mhandler.cmd = hmp_expire_password, .cmd = hmp_expire_password,
}, },
STEXI STEXI
@ -1668,7 +1668,7 @@ ETEXI
.args_type = "args:s", .args_type = "args:s",
.params = "args", .params = "args",
.help = "add chardev", .help = "add chardev",
.mhandler.cmd = hmp_chardev_add, .cmd = hmp_chardev_add,
.command_completion = chardev_add_completion, .command_completion = chardev_add_completion,
}, },
@ -1684,7 +1684,7 @@ ETEXI
.args_type = "id:s", .args_type = "id:s",
.params = "id", .params = "id",
.help = "remove chardev", .help = "remove chardev",
.mhandler.cmd = hmp_chardev_remove, .cmd = hmp_chardev_remove,
.command_completion = chardev_remove_completion, .command_completion = chardev_remove_completion,
}, },
@ -1700,7 +1700,7 @@ ETEXI
.args_type = "device:B,command:s", .args_type = "device:B,command:s",
.params = "[device] \"[command]\"", .params = "[device] \"[command]\"",
.help = "run a qemu-io command on a block device", .help = "run a qemu-io command on a block device",
.mhandler.cmd = hmp_qemu_io, .cmd = hmp_qemu_io,
}, },
STEXI STEXI
@ -1715,7 +1715,7 @@ ETEXI
.args_type = "id:i", .args_type = "id:i",
.params = "id", .params = "id",
.help = "add cpu", .help = "add cpu",
.mhandler.cmd = hmp_cpu_add, .cmd = hmp_cpu_add,
}, },
STEXI STEXI
@ -1729,7 +1729,7 @@ ETEXI
.args_type = "path:s?", .args_type = "path:s?",
.params = "path", .params = "path",
.help = "list QOM properties", .help = "list QOM properties",
.mhandler.cmd = hmp_qom_list, .cmd = hmp_qom_list,
}, },
STEXI STEXI
@ -1742,7 +1742,7 @@ ETEXI
.args_type = "path:s,property:s,value:s", .args_type = "path:s,property:s,value:s",
.params = "path property value", .params = "path property value",
.help = "set QOM property", .help = "set QOM property",
.mhandler.cmd = hmp_qom_set, .cmd = hmp_qom_set,
}, },
STEXI STEXI
@ -1755,8 +1755,8 @@ ETEXI
.args_type = "item:s?", .args_type = "item:s?",
.params = "[subcommand]", .params = "[subcommand]",
.help = "show various information about the system state", .help = "show various information about the system state",
.mhandler.cmd = hmp_info_help, .cmd = hmp_info_help,
.sub_table = info_cmds, .sub_table = info_cmds,
}, },
STEXI STEXI

View File

@ -130,13 +130,10 @@ typedef struct mon_cmd_t {
const char *args_type; const char *args_type;
const char *params; const char *params;
const char *help; const char *help;
union { void (*cmd)(Monitor *mon, const QDict *qdict);
void (*cmd)(Monitor *mon, const QDict *qdict); /* @sub_table is a list of 2nd level of commands. If it does not exist,
void (*cmd_new)(QDict *params, QObject **ret_data, Error **errp); * cmd should be used. If it exists, sub_table[?].cmd should be
} mhandler; * used, and cmd of 1st level plays the role of help function.
/* @sub_table is a list of 2nd level of commands. If it do not exist,
* mhandler should be used. If it exist, sub_table[?].mhandler should be
* used, and mhandler of 1st level plays the role of help function.
*/ */
struct mon_cmd_t *sub_table; struct mon_cmd_t *sub_table;
void (*command_completion)(ReadLineState *rs, int nb_args, const char *str); void (*command_completion)(ReadLineState *rs, int nb_args, const char *str);
@ -3005,7 +3002,7 @@ static void handle_hmp_command(Monitor *mon, const char *cmdline)
return; return;
} }
cmd->mhandler.cmd(mon, qdict); cmd->cmd(mon, qdict);
QDECREF(qdict); QDECREF(qdict);
} }