[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 11/18] monitor: remove mhandler.cmd_new
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PULL 11/18] monitor: remove mhandler.cmd_new |
Date: |
Mon, 19 Sep 2016 18:41:27 +0200 |
From: Marc-André Lureau <address@hidden>
This is no longer necessary now that we aren't using middle mode
anymore.
Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>
---
docs/writing-qmp-commands.txt | 4 +-
hmp-commands-info.hx | 118 ++++++++++++------------
hmp-commands.hx | 208 +++++++++++++++++++++---------------------
monitor.c | 13 +--
4 files changed, 170 insertions(+), 173 deletions(-)
diff --git a/docs/writing-qmp-commands.txt b/docs/writing-qmp-commands.txt
index 0a66e0e..c425393 100644
--- a/docs/writing-qmp-commands.txt
+++ b/docs/writing-qmp-commands.txt
@@ -335,7 +335,7 @@ we should add it to the hmp-commands.hx file:
.args_type = "message:s?",
.params = "hello-world [message]",
.help = "Print message to the standard output",
- .mhandler.cmd = hmp_hello_world,
+ .cmd = hmp_hello_world,
},
STEXI
@@ -515,7 +515,7 @@ in the monitor.c file. The entry for the "info alarmclock"
follows:
.args_type = "",
.params = "",
.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.
diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx
index 74446c6..19729e5 100644
--- a/hmp-commands-info.hx
+++ b/hmp-commands-info.hx
@@ -18,7 +18,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show the version of QEMU",
- .mhandler.cmd = hmp_info_version,
+ .cmd = hmp_info_version,
},
STEXI
@@ -32,7 +32,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show the network state",
- .mhandler.cmd = hmp_info_network,
+ .cmd = hmp_info_network,
},
STEXI
@@ -46,7 +46,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show the character devices",
- .mhandler.cmd = hmp_info_chardev,
+ .cmd = hmp_info_chardev,
},
STEXI
@@ -61,7 +61,7 @@ ETEXI
.params = "[-n] [-v] [device]",
.help = "show info of one block device or all block devices "
"(-n: show named nodes; -v: show details)",
- .mhandler.cmd = hmp_info_block,
+ .cmd = hmp_info_block,
},
STEXI
@@ -75,7 +75,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show block device statistics",
- .mhandler.cmd = hmp_info_blockstats,
+ .cmd = hmp_info_blockstats,
},
STEXI
@@ -89,7 +89,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show progress of ongoing block device operations",
- .mhandler.cmd = hmp_info_block_jobs,
+ .cmd = hmp_info_block_jobs,
},
STEXI
@@ -103,7 +103,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show the cpu registers",
- .mhandler.cmd = hmp_info_registers,
+ .cmd = hmp_info_registers,
},
STEXI
@@ -118,7 +118,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show local apic state",
- .mhandler.cmd = hmp_info_local_apic,
+ .cmd = hmp_info_local_apic,
},
#endif
@@ -134,7 +134,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show io apic state",
- .mhandler.cmd = hmp_info_io_apic,
+ .cmd = hmp_info_io_apic,
},
#endif
@@ -149,7 +149,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show infos for each CPU",
- .mhandler.cmd = hmp_info_cpus,
+ .cmd = hmp_info_cpus,
},
STEXI
@@ -163,7 +163,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show the command line history",
- .mhandler.cmd = hmp_info_history,
+ .cmd = hmp_info_history,
},
STEXI
@@ -180,11 +180,11 @@ ETEXI
.params = "",
.help = "show the interrupts statistics (if available)",
#ifdef TARGET_SPARC
- .mhandler.cmd = sun4m_hmp_info_irq,
+ .cmd = sun4m_hmp_info_irq,
#elif defined(TARGET_LM32)
- .mhandler.cmd = lm32_hmp_info_irq,
+ .cmd = lm32_hmp_info_irq,
#else
- .mhandler.cmd = hmp_info_irq,
+ .cmd = hmp_info_irq,
#endif
},
@@ -200,11 +200,11 @@ ETEXI
.params = "",
.help = "show i8259 (PIC) state",
#ifdef TARGET_SPARC
- .mhandler.cmd = sun4m_hmp_info_pic,
+ .cmd = sun4m_hmp_info_pic,
#elif defined(TARGET_LM32)
- .mhandler.cmd = lm32_hmp_info_pic,
+ .cmd = lm32_hmp_info_pic,
#else
- .mhandler.cmd = hmp_info_pic,
+ .cmd = hmp_info_pic,
#endif
},
#endif
@@ -220,7 +220,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show PCI info",
- .mhandler.cmd = hmp_info_pci,
+ .cmd = hmp_info_pci,
},
STEXI
@@ -236,7 +236,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show virtual to physical memory mappings",
- .mhandler.cmd = hmp_info_tlb,
+ .cmd = hmp_info_tlb,
},
#endif
@@ -252,7 +252,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show the active virtual memory mappings",
- .mhandler.cmd = hmp_info_mem,
+ .cmd = hmp_info_mem,
},
#endif
@@ -267,7 +267,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show memory tree",
- .mhandler.cmd = hmp_info_mtree,
+ .cmd = hmp_info_mtree,
},
STEXI
@@ -281,7 +281,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show dynamic compiler info",
- .mhandler.cmd = hmp_info_jit,
+ .cmd = hmp_info_jit,
},
STEXI
@@ -295,7 +295,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show dynamic compiler opcode counters",
- .mhandler.cmd = hmp_info_opcount,
+ .cmd = hmp_info_opcount,
},
STEXI
@@ -309,7 +309,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show KVM information",
- .mhandler.cmd = hmp_info_kvm,
+ .cmd = hmp_info_kvm,
},
STEXI
@@ -323,7 +323,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show NUMA information",
- .mhandler.cmd = hmp_info_numa,
+ .cmd = hmp_info_numa,
},
STEXI
@@ -337,7 +337,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show guest USB devices",
- .mhandler.cmd = hmp_info_usb,
+ .cmd = hmp_info_usb,
},
STEXI
@@ -351,7 +351,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show host USB devices",
- .mhandler.cmd = hmp_info_usbhost,
+ .cmd = hmp_info_usbhost,
},
STEXI
@@ -365,7 +365,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show profiling information",
- .mhandler.cmd = hmp_info_profile,
+ .cmd = hmp_info_profile,
},
STEXI
@@ -379,7 +379,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show capture information",
- .mhandler.cmd = hmp_info_capture,
+ .cmd = hmp_info_capture,
},
STEXI
@@ -393,7 +393,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show the currently saved VM snapshots",
- .mhandler.cmd = hmp_info_snapshots,
+ .cmd = hmp_info_snapshots,
},
STEXI
@@ -407,7 +407,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show the current VM status (running|paused)",
- .mhandler.cmd = hmp_info_status,
+ .cmd = hmp_info_status,
},
STEXI
@@ -421,7 +421,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show which guest mouse is receiving events",
- .mhandler.cmd = hmp_info_mice,
+ .cmd = hmp_info_mice,
},
STEXI
@@ -435,7 +435,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show the vnc server status",
- .mhandler.cmd = hmp_info_vnc,
+ .cmd = hmp_info_vnc,
},
STEXI
@@ -450,7 +450,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show the spice server status",
- .mhandler.cmd = hmp_info_spice,
+ .cmd = hmp_info_spice,
},
#endif
@@ -465,7 +465,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show the current VM name",
- .mhandler.cmd = hmp_info_name,
+ .cmd = hmp_info_name,
},
STEXI
@@ -479,7 +479,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show the current VM UUID",
- .mhandler.cmd = hmp_info_uuid,
+ .cmd = hmp_info_uuid,
},
STEXI
@@ -493,7 +493,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show CPU statistics",
- .mhandler.cmd = hmp_info_cpustats,
+ .cmd = hmp_info_cpustats,
},
STEXI
@@ -508,7 +508,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show user network stack connection states",
- .mhandler.cmd = hmp_info_usernet,
+ .cmd = hmp_info_usernet,
},
#endif
@@ -523,7 +523,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show migration status",
- .mhandler.cmd = hmp_info_migrate,
+ .cmd = hmp_info_migrate,
},
STEXI
@@ -537,7 +537,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show current migration capabilities",
- .mhandler.cmd = hmp_info_migrate_capabilities,
+ .cmd = hmp_info_migrate_capabilities,
},
STEXI
@@ -551,7 +551,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show current migration parameters",
- .mhandler.cmd = hmp_info_migrate_parameters,
+ .cmd = hmp_info_migrate_parameters,
},
STEXI
@@ -565,7 +565,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show current migration xbzrle cache size",
- .mhandler.cmd = hmp_info_migrate_cache_size,
+ .cmd = hmp_info_migrate_cache_size,
},
STEXI
@@ -579,7 +579,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show balloon information",
- .mhandler.cmd = hmp_info_balloon,
+ .cmd = hmp_info_balloon,
},
STEXI
@@ -593,7 +593,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show device tree",
- .mhandler.cmd = hmp_info_qtree,
+ .cmd = hmp_info_qtree,
},
STEXI
@@ -607,7 +607,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show qdev device model list",
- .mhandler.cmd = hmp_info_qdm,
+ .cmd = hmp_info_qdm,
},
STEXI
@@ -621,7 +621,7 @@ ETEXI
.args_type = "path:s?",
.params = "[path]",
.help = "show QOM composition tree",
- .mhandler.cmd = hmp_info_qom_tree,
+ .cmd = hmp_info_qom_tree,
},
STEXI
@@ -635,7 +635,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show roms",
- .mhandler.cmd = hmp_info_roms,
+ .cmd = hmp_info_roms,
},
STEXI
@@ -650,7 +650,7 @@ ETEXI
.params = "[name] [vcpu]",
.help = "show available trace-events & their state "
"(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,
},
@@ -665,7 +665,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show the TPM device",
- .mhandler.cmd = hmp_info_tpm,
+ .cmd = hmp_info_tpm,
},
STEXI
@@ -679,7 +679,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show memory backends",
- .mhandler.cmd = hmp_info_memdev,
+ .cmd = hmp_info_memdev,
},
STEXI
@@ -693,7 +693,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show memory devices",
- .mhandler.cmd = hmp_info_memory_devices,
+ .cmd = hmp_info_memory_devices,
},
STEXI
@@ -707,7 +707,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "show iothreads",
- .mhandler.cmd = hmp_info_iothreads,
+ .cmd = hmp_info_iothreads,
},
STEXI
@@ -721,7 +721,7 @@ ETEXI
.args_type = "name:s",
.params = "name",
.help = "Show rocker switch",
- .mhandler.cmd = hmp_rocker,
+ .cmd = hmp_rocker,
},
STEXI
@@ -735,7 +735,7 @@ ETEXI
.args_type = "name:s",
.params = "name",
.help = "Show rocker ports",
- .mhandler.cmd = hmp_rocker_ports,
+ .cmd = hmp_rocker_ports,
},
STEXI
@@ -749,7 +749,7 @@ ETEXI
.args_type = "name:s,tbl_id:i?",
.params = "name [tbl_id]",
.help = "Show rocker OF-DPA flow tables",
- .mhandler.cmd = hmp_rocker_of_dpa_flows,
+ .cmd = hmp_rocker_of_dpa_flows,
},
STEXI
@@ -763,7 +763,7 @@ ETEXI
.args_type = "name:s,type:i?",
.params = "name [type]",
.help = "Show rocker OF-DPA groups",
- .mhandler.cmd = hmp_rocker_of_dpa_groups,
+ .cmd = hmp_rocker_of_dpa_groups,
},
STEXI
@@ -778,7 +778,7 @@ ETEXI
.args_type = "addr:l",
.params = "address",
.help = "Display the value of a storage key",
- .mhandler.cmd = hmp_info_skeys,
+ .cmd = hmp_info_skeys,
},
#endif
@@ -793,7 +793,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "Display the latest dump status",
- .mhandler.cmd = hmp_info_dump,
+ .cmd = hmp_info_dump,
},
STEXI
@@ -807,7 +807,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "Show information about hotpluggable CPUs",
- .mhandler.cmd = hmp_hotpluggable_cpus,
+ .cmd = hmp_hotpluggable_cpus,
},
STEXI
diff --git a/hmp-commands.hx b/hmp-commands.hx
index 74f32e5..06bef47 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -14,7 +14,7 @@ ETEXI
.args_type = "name:S?",
.params = "[cmd]",
.help = "show the help",
- .mhandler.cmd = do_help_cmd,
+ .cmd = do_help_cmd,
},
STEXI
@@ -28,7 +28,7 @@ ETEXI
.args_type = "device:B",
.params = "device|all",
.help = "commit changes to the disk images (if -snapshot is
used) or backing files",
- .mhandler.cmd = hmp_commit,
+ .cmd = hmp_commit,
},
STEXI
@@ -47,7 +47,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "quit the emulator",
- .mhandler.cmd = hmp_quit,
+ .cmd = hmp_quit,
},
STEXI
@@ -61,7 +61,7 @@ ETEXI
.args_type = "device:B,size:o",
.params = "device size",
.help = "resize a block image",
- .mhandler.cmd = hmp_block_resize,
+ .cmd = hmp_block_resize,
},
STEXI
@@ -78,7 +78,7 @@ ETEXI
.args_type = "device:B,speed:o?,base:s?",
.params = "device [speed [base]]",
.help = "copy data from a backing file into a block device",
- .mhandler.cmd = hmp_block_stream,
+ .cmd = hmp_block_stream,
},
STEXI
@@ -92,7 +92,7 @@ ETEXI
.args_type = "device:B,speed:o",
.params = "device speed",
.help = "set maximum speed for a background block operation",
- .mhandler.cmd = hmp_block_job_set_speed,
+ .cmd = hmp_block_job_set_speed,
},
STEXI
@@ -107,7 +107,7 @@ ETEXI
.params = "[-f] device",
.help = "stop an active background block operation (use -f"
"\n\t\t\t if the operation is currently paused)",
- .mhandler.cmd = hmp_block_job_cancel,
+ .cmd = hmp_block_job_cancel,
},
STEXI
@@ -121,7 +121,7 @@ ETEXI
.args_type = "device:B",
.params = "device",
.help = "stop an active background block operation",
- .mhandler.cmd = hmp_block_job_complete,
+ .cmd = hmp_block_job_complete,
},
STEXI
@@ -136,7 +136,7 @@ ETEXI
.args_type = "device:B",
.params = "device",
.help = "pause an active background block operation",
- .mhandler.cmd = hmp_block_job_pause,
+ .cmd = hmp_block_job_pause,
},
STEXI
@@ -150,7 +150,7 @@ ETEXI
.args_type = "device:B",
.params = "device",
.help = "resume a paused background block operation",
- .mhandler.cmd = hmp_block_job_resume,
+ .cmd = hmp_block_job_resume,
},
STEXI
@@ -164,7 +164,7 @@ ETEXI
.args_type = "force:-f,device:B",
.params = "[-f] device",
.help = "eject a removable medium (use -f to force it)",
- .mhandler.cmd = hmp_eject,
+ .cmd = hmp_eject,
},
STEXI
@@ -178,7 +178,7 @@ ETEXI
.args_type = "id:B",
.params = "device",
.help = "remove host block device",
- .mhandler.cmd = hmp_drive_del,
+ .cmd = hmp_drive_del,
},
STEXI
@@ -197,7 +197,7 @@ ETEXI
.args_type = "device:B,target:F,arg:s?,read-only-mode:s?",
.params = "device filename [format [read-only-mode]]",
.help = "change a removable medium, optional format",
- .mhandler.cmd = hmp_change,
+ .cmd = hmp_change,
},
STEXI
@@ -256,7 +256,7 @@ ETEXI
.args_type = "filename:F",
.params = "filename",
.help = "save screen into PPM image 'filename'",
- .mhandler.cmd = hmp_screendump,
+ .cmd = hmp_screendump,
},
STEXI
@@ -270,7 +270,7 @@ ETEXI
.args_type = "filename:F",
.params = "filename",
.help = "output logs to 'filename'",
- .mhandler.cmd = hmp_logfile,
+ .cmd = hmp_logfile,
},
STEXI
@@ -285,7 +285,7 @@ ETEXI
.params = "name on|off [vcpu]",
.help = "changes status of a specific trace event "
"(vcpu: vCPU to set, default is all)",
- .mhandler.cmd = hmp_trace_event,
+ .cmd = hmp_trace_event,
.command_completion = trace_event_completion,
},
@@ -301,7 +301,7 @@ ETEXI
.args_type = "op:s?,arg:F?",
.params = "on|off|flush|set [arg]",
.help = "open, close, or flush trace file, or set a new file
name",
- .mhandler.cmd = hmp_trace_file,
+ .cmd = hmp_trace_file,
},
STEXI
@@ -316,7 +316,7 @@ ETEXI
.args_type = "items:s",
.params = "item1[,...]",
.help = "activate logging of the specified items",
- .mhandler.cmd = hmp_log,
+ .cmd = hmp_log,
},
STEXI
@@ -330,7 +330,7 @@ ETEXI
.args_type = "name:s?",
.params = "[tag|id]",
.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
@@ -347,7 +347,7 @@ ETEXI
.args_type = "name:s",
.params = "tag|id",
.help = "restore a VM snapshot from its tag or id",
- .mhandler.cmd = hmp_loadvm,
+ .cmd = hmp_loadvm,
.command_completion = loadvm_completion,
},
@@ -363,7 +363,7 @@ ETEXI
.args_type = "name:s",
.params = "tag|id",
.help = "delete a VM snapshot from its tag or id",
- .mhandler.cmd = hmp_delvm,
+ .cmd = hmp_delvm,
.command_completion = delvm_completion,
},
@@ -378,7 +378,7 @@ ETEXI
.args_type = "option:s?",
.params = "[on|off]",
.help = "run emulation in singlestep mode or switch to normal
mode",
- .mhandler.cmd = hmp_singlestep,
+ .cmd = hmp_singlestep,
},
STEXI
@@ -393,7 +393,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "stop emulation",
- .mhandler.cmd = hmp_stop,
+ .cmd = hmp_stop,
},
STEXI
@@ -407,7 +407,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "resume emulation",
- .mhandler.cmd = hmp_cont,
+ .cmd = hmp_cont,
},
STEXI
@@ -421,7 +421,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "wakeup guest from suspend",
- .mhandler.cmd = hmp_system_wakeup,
+ .cmd = hmp_system_wakeup,
},
STEXI
@@ -435,7 +435,7 @@ ETEXI
.args_type = "device:s?",
.params = "[device]",
.help = "start gdbserver on given device (default 'tcp::1234'),
stop with 'none'",
- .mhandler.cmd = hmp_gdbserver,
+ .cmd = hmp_gdbserver,
},
STEXI
@@ -449,7 +449,7 @@ ETEXI
.args_type = "fmt:/,addr:l",
.params = "/fmt addr",
.help = "virtual memory dump starting at 'addr'",
- .mhandler.cmd = hmp_memory_dump,
+ .cmd = hmp_memory_dump,
},
STEXI
@@ -463,7 +463,7 @@ ETEXI
.args_type = "fmt:/,addr:l",
.params = "/fmt addr",
.help = "physical memory dump starting at 'addr'",
- .mhandler.cmd = hmp_physical_memory_dump,
+ .cmd = hmp_physical_memory_dump,
},
STEXI
@@ -530,7 +530,7 @@ ETEXI
.args_type = "fmt:/,val:l",
.params = "/fmt expr",
.help = "print expression value (use $reg for CPU register
access)",
- .mhandler.cmd = do_print,
+ .cmd = do_print,
},
STEXI
@@ -545,7 +545,7 @@ ETEXI
.args_type = "fmt:/,addr:i,index:i.",
.params = "/fmt addr",
.help = "I/O port read",
- .mhandler.cmd = hmp_ioport_read,
+ .cmd = hmp_ioport_read,
},
STEXI
@@ -559,7 +559,7 @@ ETEXI
.args_type = "fmt:/,addr:i,val:i",
.params = "/fmt addr value",
.help = "I/O port write",
- .mhandler.cmd = hmp_ioport_write,
+ .cmd = hmp_ioport_write,
},
STEXI
@@ -573,7 +573,7 @@ ETEXI
.args_type = "keys:s,hold-time:i?",
.params = "keys [hold_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,
},
@@ -596,7 +596,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "reset the system",
- .mhandler.cmd = hmp_system_reset,
+ .cmd = hmp_system_reset,
},
STEXI
@@ -610,7 +610,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "send system power down event",
- .mhandler.cmd = hmp_system_powerdown,
+ .cmd = hmp_system_powerdown,
},
STEXI
@@ -624,7 +624,7 @@ ETEXI
.args_type = "start:i,size:i",
.params = "addr size",
.help = "compute the checksum of a memory region",
- .mhandler.cmd = hmp_sum,
+ .cmd = hmp_sum,
},
STEXI
@@ -638,7 +638,7 @@ ETEXI
.args_type = "devname:s",
.params = "device",
.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
@@ -653,7 +653,7 @@ ETEXI
.args_type = "devname:s",
.params = "device",
.help = "remove USB device 'bus.addr'",
- .mhandler.cmd = hmp_usb_del,
+ .cmd = hmp_usb_del,
},
STEXI
@@ -669,7 +669,7 @@ ETEXI
.args_type = "device:O",
.params = "driver[,prop=value][,...]",
.help = "add device, like -device on the command line",
- .mhandler.cmd = hmp_device_add,
+ .cmd = hmp_device_add,
.command_completion = device_add_completion,
},
@@ -684,7 +684,7 @@ ETEXI
.args_type = "id:s",
.params = "device",
.help = "remove device",
- .mhandler.cmd = hmp_device_del,
+ .cmd = hmp_device_del,
.command_completion = device_del_completion,
},
@@ -700,7 +700,7 @@ ETEXI
.args_type = "index:i",
.params = "index",
.help = "set the default CPU",
- .mhandler.cmd = hmp_cpu,
+ .cmd = hmp_cpu,
},
STEXI
@@ -714,7 +714,7 @@ ETEXI
.args_type = "dx_str:s,dy_str:s,dz_str:s?",
.params = "dx dy [dz]",
.help = "send mouse move events",
- .mhandler.cmd = hmp_mouse_move,
+ .cmd = hmp_mouse_move,
},
STEXI
@@ -729,7 +729,7 @@ ETEXI
.args_type = "button_state:i",
.params = "state",
.help = "change mouse button state (1=L, 2=M, 4=R)",
- .mhandler.cmd = hmp_mouse_button,
+ .cmd = hmp_mouse_button,
},
STEXI
@@ -743,7 +743,7 @@ ETEXI
.args_type = "index:i",
.params = "index",
.help = "set which mouse device receives events",
- .mhandler.cmd = hmp_mouse_set,
+ .cmd = hmp_mouse_set,
},
STEXI
@@ -761,7 +761,7 @@ ETEXI
.args_type = "path:F,freq:i?,bits:i?,nchannels:i?",
.params = "path [frequency [bits [channels]]]",
.help = "capture audio to a wave file (default frequency=44100
bits=16 channels=2)",
- .mhandler.cmd = hmp_wavcapture,
+ .cmd = hmp_wavcapture,
},
STEXI
@item wavcapture @var{filename} address@hidden address@hidden address@hidden
@@ -782,7 +782,7 @@ ETEXI
.args_type = "n:i",
.params = "capture index",
.help = "stop capture",
- .mhandler.cmd = hmp_stopcapture,
+ .cmd = hmp_stopcapture,
},
STEXI
@item stopcapture @var{index}
@@ -798,7 +798,7 @@ ETEXI
.args_type = "val:l,size:i,filename:s",
.params = "addr size file",
.help = "save to disk virtual memory dump starting at 'addr' of
size 'size'",
- .mhandler.cmd = hmp_memsave,
+ .cmd = hmp_memsave,
},
STEXI
@@ -812,7 +812,7 @@ ETEXI
.args_type = "val:l,size:i,filename:s",
.params = "addr size file",
.help = "save to disk physical memory dump starting at 'addr' of
size 'size'",
- .mhandler.cmd = hmp_pmemsave,
+ .cmd = hmp_pmemsave,
},
STEXI
@@ -826,7 +826,7 @@ ETEXI
.args_type = "bootdevice:s",
.params = "bootdevice",
.help = "define new values for the boot device list",
- .mhandler.cmd = hmp_boot_set,
+ .cmd = hmp_boot_set,
},
STEXI
@@ -844,7 +844,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "inject an NMI",
- .mhandler.cmd = hmp_nmi,
+ .cmd = hmp_nmi,
},
STEXI
@item nmi @var{cpu}
@@ -858,7 +858,7 @@ ETEXI
.args_type = "device:s,data:s",
.params = "device data",
.help = "Write to a ring buffer character device",
- .mhandler.cmd = hmp_ringbuf_write,
+ .cmd = hmp_ringbuf_write,
.command_completion = ringbuf_write_completion,
},
@@ -875,7 +875,7 @@ ETEXI
.args_type = "device:s,size:i",
.params = "device size",
.help = "Read from a ring buffer character device",
- .mhandler.cmd = hmp_ringbuf_read,
+ .cmd = hmp_ringbuf_read,
.command_completion = ringbuf_write_completion,
},
@@ -901,7 +901,7 @@ ETEXI
" full copy of disk\n\t\t\t -i for migration without "
"shared storage with incremental copy of disk "
"(base image shared between src and destination)",
- .mhandler.cmd = hmp_migrate,
+ .cmd = hmp_migrate,
},
@@ -918,7 +918,7 @@ ETEXI
.args_type = "",
.params = "",
.help = "cancel the current VM migration",
- .mhandler.cmd = hmp_migrate_cancel,
+ .cmd = hmp_migrate_cancel,
},
STEXI
@@ -933,7 +933,7 @@ ETEXI
.args_type = "uri:s",
.params = "uri",
.help = "Continue an incoming migration from an -incoming defer",
- .mhandler.cmd = hmp_migrate_incoming,
+ .cmd = hmp_migrate_incoming,
},
STEXI
@@ -954,7 +954,7 @@ ETEXI
"The cache size affects the number of cache misses."
"In case of a high cache miss ratio you need to increase"
" the cache size",
- .mhandler.cmd = hmp_migrate_set_cache_size,
+ .cmd = hmp_migrate_set_cache_size,
},
STEXI
@@ -969,7 +969,7 @@ ETEXI
.params = "value",
.help = "set maximum speed (in bytes) for migrations. "
"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
@@ -983,7 +983,7 @@ ETEXI
.args_type = "value:T",
.params = "value",
.help = "set maximum tolerated downtime (in seconds) for
migrations",
- .mhandler.cmd = hmp_migrate_set_downtime,
+ .cmd = hmp_migrate_set_downtime,
},
STEXI
@@ -997,7 +997,7 @@ ETEXI
.args_type = "capability:s,state:b",
.params = "capability state",
.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,
},
@@ -1012,7 +1012,7 @@ ETEXI
.args_type = "parameter:s,value:s",
.params = "parameter value",
.help = "Set the parameter for migration",
- .mhandler.cmd = hmp_migrate_set_parameter,
+ .cmd = hmp_migrate_set_parameter,
.command_completion = migrate_set_parameter_completion,
},
@@ -1029,7 +1029,7 @@ ETEXI
.help = "Followup to a migration command to switch the migration"
" to postcopy mode. The postcopy-ram capability must "
"be set before the original migration command.",
- .mhandler.cmd = hmp_migrate_start_postcopy,
+ .cmd = hmp_migrate_start_postcopy,
},
STEXI
@@ -1044,7 +1044,7 @@ ETEXI
.args_type =
"protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
.params = "protocol hostname port tls-port cert-subject",
.help = "set migration information for remote display",
- .mhandler.cmd = hmp_client_migrate_info,
+ .cmd = hmp_client_migrate_info,
},
STEXI
@@ -1067,7 +1067,7 @@ ETEXI
"-s: dump in kdump-compressed format, with snappy
compression.\n\t\t\t"
"begin: the starting physical address.\n\t\t\t"
"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",
.params = "",
.help = "Save guest storage keys into file 'filename'.\n",
- .mhandler.cmd = hmp_dump_skeys,
+ .cmd = hmp_dump_skeys,
},
#endif
@@ -1116,7 +1116,7 @@ ETEXI
"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"
"recreating it from scratch.",
- .mhandler.cmd = hmp_snapshot_blkdev,
+ .cmd = hmp_snapshot_blkdev,
},
STEXI
@@ -1132,7 +1132,7 @@ ETEXI
.help = "take an internal snapshot of device.\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",
- .mhandler.cmd = hmp_snapshot_blkdev_internal,
+ .cmd = hmp_snapshot_blkdev_internal,
},
STEXI
@@ -1150,7 +1150,7 @@ ETEXI
"the snapshot matching both id and name.\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",
- .mhandler.cmd = hmp_snapshot_delete_blkdev_internal,
+ .cmd = hmp_snapshot_delete_blkdev_internal,
},
STEXI
@@ -1171,7 +1171,7 @@ ETEXI
"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"
"so that the result does not need a backing
file.\n\t\t\t",
- .mhandler.cmd = hmp_drive_mirror,
+ .cmd = hmp_drive_mirror,
},
STEXI
@item drive_mirror
@@ -1194,7 +1194,7 @@ ETEXI
"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"
"(if the target format supports it).\n\t\t\t",
- .mhandler.cmd = hmp_drive_backup,
+ .cmd = hmp_drive_backup,
},
STEXI
@item drive_backup
@@ -1212,7 +1212,7 @@ ETEXI
"[,snapshot=on|off][,cache=on|off]\n"
"[,readonly=on|off][,copy-on-read=on|off]",
.help = "add drive to PCI storage controller",
- .mhandler.cmd = hmp_drive_add,
+ .cmd = hmp_drive_add,
},
STEXI
@@ -1236,7 +1236,7 @@ ETEXI
"<error_status> = error string or 32bit\n\t\t\t"
"<tlb header> = 32bit x 4\n\t\t\t"
"<tlb header prefix> = 32bit x 4",
- .mhandler.cmd = hmp_pcie_aer_inject_error,
+ .cmd = hmp_pcie_aer_inject_error,
},
STEXI
@@ -1250,7 +1250,7 @@ ETEXI
.args_type = "device:s,opts:s?",
.params = "tap|user|socket|vde|netmap|bridge|vhost-user|dump
[options]",
.help = "add host VLAN client",
- .mhandler.cmd = hmp_host_net_add,
+ .cmd = hmp_host_net_add,
.command_completion = host_net_add_completion,
},
@@ -1265,7 +1265,7 @@ ETEXI
.args_type = "vlan_id:i,device:s",
.params = "vlan_id name",
.help = "remove host VLAN client",
- .mhandler.cmd = hmp_host_net_remove,
+ .cmd = hmp_host_net_remove,
.command_completion = host_net_remove_completion,
},
@@ -1280,7 +1280,7 @@ ETEXI
.args_type = "netdev:O",
.params =
"[user|tap|socket|vde|bridge|hubport|netmap|vhost-user],id=str[,prop=value][,...]",
.help = "add host network device",
- .mhandler.cmd = hmp_netdev_add,
+ .cmd = hmp_netdev_add,
.command_completion = netdev_add_completion,
},
@@ -1295,7 +1295,7 @@ ETEXI
.args_type = "id:s",
.params = "id",
.help = "remove host network device",
- .mhandler.cmd = hmp_netdev_del,
+ .cmd = hmp_netdev_del,
.command_completion = netdev_del_completion,
},
@@ -1310,7 +1310,7 @@ ETEXI
.args_type = "object:O",
.params = "[qom-type=]type,id=str[,prop=value][,...]",
.help = "create QOM object",
- .mhandler.cmd = hmp_object_add,
+ .cmd = hmp_object_add,
.command_completion = object_add_completion,
},
@@ -1325,7 +1325,7 @@ ETEXI
.args_type = "id:s",
.params = "id",
.help = "destroy QOM object",
- .mhandler.cmd = hmp_object_del,
+ .cmd = hmp_object_del,
.command_completion = object_del_completion,
},
@@ -1341,7 +1341,7 @@ ETEXI
.args_type = "arg1:s,arg2:s?,arg3:s?",
.params = "[vlan_id name]
[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
.help = "redirect TCP or UDP connections from host to guest
(requires -net user)",
- .mhandler.cmd = hmp_hostfwd_add,
+ .cmd = hmp_hostfwd_add,
},
#endif
STEXI
@@ -1356,7 +1356,7 @@ ETEXI
.args_type = "arg1:s,arg2:s?,arg3:s?",
.params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
.help = "remove host-to-guest TCP or UDP redirection",
- .mhandler.cmd = hmp_hostfwd_remove,
+ .cmd = hmp_hostfwd_remove,
},
#endif
@@ -1371,7 +1371,7 @@ ETEXI
.args_type = "value:M",
.params = "target",
.help = "request VM to change its memory allocation (in MB)",
- .mhandler.cmd = hmp_balloon,
+ .cmd = hmp_balloon,
},
STEXI
@@ -1385,7 +1385,7 @@ ETEXI
.args_type = "name:s,up:b",
.params = "name on|off",
.help = "change the link status of a network adapter",
- .mhandler.cmd = hmp_set_link,
+ .cmd = hmp_set_link,
.command_completion = set_link_completion,
},
@@ -1400,7 +1400,7 @@ ETEXI
.args_type = "action:s",
.params = "[reset|shutdown|poweroff|pause|debug|none]",
.help = "change watchdog action",
- .mhandler.cmd = hmp_watchdog_action,
+ .cmd = hmp_watchdog_action,
.command_completion = watchdog_action_completion,
},
@@ -1415,7 +1415,7 @@ ETEXI
.args_type = "aclname:s",
.params = "aclname",
.help = "list rules in the access control list",
- .mhandler.cmd = hmp_acl_show,
+ .cmd = hmp_acl_show,
},
STEXI
@@ -1432,7 +1432,7 @@ ETEXI
.args_type = "aclname:s,policy:s",
.params = "aclname allow|deny",
.help = "set default access control list policy",
- .mhandler.cmd = hmp_acl_policy,
+ .cmd = hmp_acl_policy,
},
STEXI
@@ -1448,7 +1448,7 @@ ETEXI
.args_type = "aclname:s,match:s,policy:s,index:i?",
.params = "aclname match allow|deny [index]",
.help = "add a match rule to the access control list",
- .mhandler.cmd = hmp_acl_add,
+ .cmd = hmp_acl_add,
},
STEXI
@@ -1467,7 +1467,7 @@ ETEXI
.args_type = "aclname:s,match:s",
.params = "aclname match",
.help = "remove a match rule from the access control list",
- .mhandler.cmd = hmp_acl_remove,
+ .cmd = hmp_acl_remove,
},
STEXI
@@ -1481,7 +1481,7 @@ ETEXI
.args_type = "aclname:s",
.params = "aclname",
.help = "reset the access control list",
- .mhandler.cmd = hmp_acl_reset,
+ .cmd = hmp_acl_reset,
},
STEXI
@@ -1496,7 +1496,7 @@ ETEXI
.args_type = "all:-a,writable:-w,uri:s",
.params = "nbd_server_start [-a] [-w] host:port",
.help = "serve block devices on the given host and port",
- .mhandler.cmd = hmp_nbd_server_start,
+ .cmd = hmp_nbd_server_start,
},
STEXI
@item nbd_server_start @var{host}:@var{port}
@@ -1512,7 +1512,7 @@ ETEXI
.args_type = "writable:-w,device:B",
.params = "nbd_server_add [-w] device",
.help = "export a block device via NBD",
- .mhandler.cmd = hmp_nbd_server_add,
+ .cmd = hmp_nbd_server_add,
},
STEXI
@item nbd_server_add @var{device}
@@ -1527,7 +1527,7 @@ ETEXI
.args_type = "",
.params = "nbd_server_stop",
.help = "stop serving block devices using the NBD protocol",
- .mhandler.cmd = hmp_nbd_server_stop,
+ .cmd = hmp_nbd_server_stop,
},
STEXI
@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",
.params = "[-b] cpu bank status mcgstatus addr misc",
.help = "inject a MCE on the given CPU [and broadcast to other
CPUs with -b option]",
- .mhandler.cmd = hmp_mce,
+ .cmd = hmp_mce,
},
#endif
@@ -1558,7 +1558,7 @@ ETEXI
.args_type = "fdname:s",
.params = "getfd name",
.help = "receive a file descriptor via SCM rights and assign it
a name",
- .mhandler.cmd = hmp_getfd,
+ .cmd = hmp_getfd,
},
STEXI
@@ -1574,7 +1574,7 @@ ETEXI
.args_type = "fdname:s",
.params = "closefd name",
.help = "close a file descriptor previously passed via SCM
rights",
- .mhandler.cmd = hmp_closefd,
+ .cmd = hmp_closefd,
},
STEXI
@@ -1590,7 +1590,7 @@ ETEXI
.args_type = "device:B,password:s",
.params = "block_passwd device password",
.help = "set the password of encrypted block devices",
- .mhandler.cmd = hmp_block_passwd,
+ .cmd = hmp_block_passwd,
},
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",
.params = "device bps bps_rd bps_wr iops iops_rd iops_wr",
.help = "change I/O throttle limits for a block drive",
- .mhandler.cmd = hmp_block_set_io_throttle,
+ .cmd = hmp_block_set_io_throttle,
},
STEXI
@@ -1618,7 +1618,7 @@ ETEXI
.args_type = "protocol:s,password:s,connected:s?",
.params = "protocol password action-if-connected",
.help = "set spice/vnc password",
- .mhandler.cmd = hmp_set_password,
+ .cmd = hmp_set_password,
},
STEXI
@@ -1637,7 +1637,7 @@ ETEXI
.args_type = "protocol:s,time:s",
.params = "protocol time",
.help = "set spice/vnc password expire-time",
- .mhandler.cmd = hmp_expire_password,
+ .cmd = hmp_expire_password,
},
STEXI
@@ -1668,7 +1668,7 @@ ETEXI
.args_type = "args:s",
.params = "args",
.help = "add chardev",
- .mhandler.cmd = hmp_chardev_add,
+ .cmd = hmp_chardev_add,
.command_completion = chardev_add_completion,
},
@@ -1684,7 +1684,7 @@ ETEXI
.args_type = "id:s",
.params = "id",
.help = "remove chardev",
- .mhandler.cmd = hmp_chardev_remove,
+ .cmd = hmp_chardev_remove,
.command_completion = chardev_remove_completion,
},
@@ -1700,7 +1700,7 @@ ETEXI
.args_type = "device:B,command:s",
.params = "[device] \"[command]\"",
.help = "run a qemu-io command on a block device",
- .mhandler.cmd = hmp_qemu_io,
+ .cmd = hmp_qemu_io,
},
STEXI
@@ -1715,7 +1715,7 @@ ETEXI
.args_type = "id:i",
.params = "id",
.help = "add cpu",
- .mhandler.cmd = hmp_cpu_add,
+ .cmd = hmp_cpu_add,
},
STEXI
@@ -1729,7 +1729,7 @@ ETEXI
.args_type = "path:s?",
.params = "path",
.help = "list QOM properties",
- .mhandler.cmd = hmp_qom_list,
+ .cmd = hmp_qom_list,
},
STEXI
@@ -1742,7 +1742,7 @@ ETEXI
.args_type = "path:s,property:s,value:s",
.params = "path property value",
.help = "set QOM property",
- .mhandler.cmd = hmp_qom_set,
+ .cmd = hmp_qom_set,
},
STEXI
@@ -1755,8 +1755,8 @@ ETEXI
.args_type = "item:s?",
.params = "[subcommand]",
.help = "show various information about the system state",
- .mhandler.cmd = hmp_info_help,
- .sub_table = info_cmds,
+ .cmd = hmp_info_help,
+ .sub_table = info_cmds,
},
STEXI
diff --git a/monitor.c b/monitor.c
index f50aa6e..d5d6e95 100644
--- a/monitor.c
+++ b/monitor.c
@@ -130,13 +130,10 @@ typedef struct mon_cmd_t {
const char *args_type;
const char *params;
const char *help;
- union {
- void (*cmd)(Monitor *mon, const QDict *qdict);
- void (*cmd_new)(QDict *params, QObject **ret_data, Error **errp);
- } mhandler;
- /* @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.
+ void (*cmd)(Monitor *mon, const QDict *qdict);
+ /* @sub_table is a list of 2nd level of commands. If it does not exist,
+ * cmd should be used. If it exists, sub_table[?].cmd should be
+ * used, and cmd of 1st level plays the role of help function.
*/
struct mon_cmd_t *sub_table;
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;
}
- cmd->mhandler.cmd(mon, qdict);
+ cmd->cmd(mon, qdict);
QDECREF(qdict);
}
--
2.5.5
- [Qemu-devel] [PULL 01/18] build-sys: define QEMU_VERSION_{MAJOR, MINOR, MICRO}, (continued)
- [Qemu-devel] [PULL 01/18] build-sys: define QEMU_VERSION_{MAJOR, MINOR, MICRO}, Markus Armbruster, 2016/09/19
- [Qemu-devel] [PULL 06/18] qapi: Support unregistering QMP commands, Markus Armbruster, 2016/09/19
- [Qemu-devel] [PULL 02/18] qapi-schema: use generated marshaller for 'qmp_capabilities', Markus Armbruster, 2016/09/19
- [Qemu-devel] [PULL 17/18] qmp-commands.hx: fix some styling, Markus Armbruster, 2016/09/19
- [Qemu-devel] [PULL 16/18] build-sys: remove qmp-commands-old.h, Markus Armbruster, 2016/09/19
- [Qemu-devel] [PULL 12/18] qapi: remove the "middle" mode, Markus Armbruster, 2016/09/19
- [Qemu-devel] [PULL 18/18] Replace qmp-commands.hx by docs/qmp-commands.txt, Markus Armbruster, 2016/09/19
- [Qemu-devel] [PULL 07/18] qmp: Hack to keep commands configuration-specific, Markus Armbruster, 2016/09/19
- [Qemu-devel] [PULL 09/18] monitor: use qmp_find_command() (using generated qapi code), Markus Armbruster, 2016/09/19
- [Qemu-devel] [PULL 15/18] monitor: use qmp_dispatch(), Markus Armbruster, 2016/09/19
- [Qemu-devel] [PULL 11/18] monitor: remove mhandler.cmd_new,
Markus Armbruster <=
- Re: [Qemu-devel] [PULL 00/18] QAPI patches for 2016-09-19, Peter Maydell, 2016/09/19