monitor: Convert mon_cmd_t initializations to C99 style

Patchworks-ID: 35335
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Luiz Capitulino 2009-10-07 13:41:50 -03:00 committed by Anthony Liguori
parent 3aa3dcfff6
commit d7f9b68971
2 changed files with 736 additions and 195 deletions

318
monitor.c
View File

@ -1813,84 +1813,262 @@ static const mon_cmd_t mon_cmds[] = {
/* Please update qemu-monitor.hx when adding or changing commands */ /* Please update qemu-monitor.hx when adding or changing commands */
static const mon_cmd_t info_cmds[] = { static const mon_cmd_t info_cmds[] = {
{ "version", "", do_info_version, {
"", "show the version of QEMU" }, .name = "version",
{ "network", "", do_info_network, .args_type = "",
"", "show the network state" }, .handler = do_info_version,
{ "chardev", "", qemu_chr_info, .params = "",
"", "show the character devices" }, .help = "show the version of QEMU",
{ "block", "", bdrv_info, },
"", "show the block devices" }, {
{ "blockstats", "", bdrv_info_stats, .name = "network",
"", "show block device statistics" }, .args_type = "",
{ "registers", "", do_info_registers, .handler = do_info_network,
"", "show the cpu registers" }, .params = "",
{ "cpus", "", do_info_cpus, .help = "show the network state",
"", "show infos for each CPU" }, },
{ "history", "", do_info_history, {
"", "show the command line history", }, .name = "chardev",
{ "irq", "", irq_info, .args_type = "",
"", "show the interrupts statistics (if available)", }, .handler = qemu_chr_info,
{ "pic", "", pic_info, .params = "",
"", "show i8259 (PIC) state", }, .help = "show the character devices",
{ "pci", "", pci_info, },
"", "show PCI info", }, {
.name = "block",
.args_type = "",
.handler = bdrv_info,
.params = "",
.help = "show the block devices",
},
{
.name = "blockstats",
.args_type = "",
.handler = bdrv_info_stats,
.params = "",
.help = "show block device statistics",
},
{
.name = "registers",
.args_type = "",
.handler = do_info_registers,
.params = "",
.help = "show the cpu registers",
},
{
.name = "cpus",
.args_type = "",
.handler = do_info_cpus,
.params = "",
.help = "show infos for each CPU",
},
{
.name = "history",
.args_type = "",
.handler = do_info_history,
.params = "",
.help = "show the command line history",
},
{
.name = "irq",
.args_type = "",
.handler = irq_info,
.params = "",
.help = "show the interrupts statistics (if available)",
},
{
.name = "pic",
.args_type = "",
.handler = pic_info,
.params = "",
.help = "show i8259 (PIC) state",
},
{
.name = "pci",
.args_type = "",
.handler = pci_info,
.params = "",
.help = "show PCI info",
},
#if defined(TARGET_I386) || defined(TARGET_SH4) #if defined(TARGET_I386) || defined(TARGET_SH4)
{ "tlb", "", tlb_info, {
"", "show virtual to physical memory mappings", }, .name = "tlb",
.args_type = "",
.handler = tlb_info,
.params = "",
.help = "show virtual to physical memory mappings",
},
#endif #endif
#if defined(TARGET_I386) #if defined(TARGET_I386)
{ "mem", "", mem_info, {
"", "show the active virtual memory mappings", }, .name = "mem",
{ "hpet", "", do_info_hpet, .args_type = "",
"", "show state of HPET", }, .handler = mem_info,
.params = "",
.help = "show the active virtual memory mappings",
},
{
.name = "hpet",
.args_type = "",
.handler = do_info_hpet,
.params = "",
.help = "show state of HPET",
},
#endif #endif
{ "jit", "", do_info_jit, {
"", "show dynamic compiler info", }, .name = "jit",
{ "kvm", "", do_info_kvm, .args_type = "",
"", "show KVM information", }, .handler = do_info_jit,
{ "numa", "", do_info_numa, .params = "",
"", "show NUMA information", }, .help = "show dynamic compiler info",
{ "usb", "", usb_info, },
"", "show guest USB devices", }, {
{ "usbhost", "", usb_host_info, .name = "kvm",
"", "show host USB devices", }, .args_type = "",
{ "profile", "", do_info_profile, .handler = do_info_kvm,
"", "show profiling information", }, .params = "",
{ "capture", "", do_info_capture, .help = "show KVM information",
"", "show capture information" }, },
{ "snapshots", "", do_info_snapshots, {
"", "show the currently saved VM snapshots" }, .name = "numa",
{ "status", "", do_info_status, .args_type = "",
"", "show the current VM status (running|paused)" }, .handler = do_info_numa,
{ "pcmcia", "", pcmcia_info, .params = "",
"", "show guest PCMCIA status" }, .help = "show NUMA information",
{ "mice", "", do_info_mice, },
"", "show which guest mouse is receiving events" }, {
{ "vnc", "", do_info_vnc, .name = "usb",
"", "show the vnc server status"}, .args_type = "",
{ "name", "", do_info_name, .handler = usb_info,
"", "show the current VM name" }, .params = "",
{ "uuid", "", do_info_uuid, .help = "show guest USB devices",
"", "show the current VM UUID" }, },
{
.name = "usbhost",
.args_type = "",
.handler = usb_host_info,
.params = "",
.help = "show host USB devices",
},
{
.name = "profile",
.args_type = "",
.handler = do_info_profile,
.params = "",
.help = "show profiling information",
},
{
.name = "capture",
.args_type = "",
.handler = do_info_capture,
.params = "",
.help = "show capture information",
},
{
.name = "snapshots",
.args_type = "",
.handler = do_info_snapshots,
.params = "",
.help = "show the currently saved VM snapshots",
},
{
.name = "status",
.args_type = "",
.handler = do_info_status,
.params = "",
.help = "show the current VM status (running|paused)",
},
{
.name = "pcmcia",
.args_type = "",
.handler = pcmcia_info,
.params = "",
.help = "show guest PCMCIA status",
},
{
.name = "mice",
.args_type = "",
.handler = do_info_mice,
.params = "",
.help = "show which guest mouse is receiving events",
},
{
.name = "vnc",
.args_type = "",
.handler = do_info_vnc,
.params = "",
.help = "show the vnc server status",
},
{
.name = "name",
.args_type = "",
.handler = do_info_name,
.params = "",
.help = "show the current VM name",
},
{
.name = "uuid",
.args_type = "",
.handler = do_info_uuid,
.params = "",
.help = "show the current VM UUID",
},
#if defined(TARGET_PPC) #if defined(TARGET_PPC)
{ "cpustats", "", do_info_cpu_stats, {
"", "show CPU statistics", }, .name = "cpustats",
.args_type = "",
.handler = do_info_cpu_stats,
.params = "",
.help = "show CPU statistics",
},
#endif #endif
#if defined(CONFIG_SLIRP) #if defined(CONFIG_SLIRP)
{ "usernet", "", do_info_usernet, {
"", "show user network stack connection states", }, .name = "usernet",
.args_type = "",
.handler = do_info_usernet,
.params = "",
.help = "show user network stack connection states",
},
#endif #endif
{ "migrate", "", do_info_migrate, "", "show migration status" }, {
{ "balloon", "", do_info_balloon, .name = "migrate",
"", "show balloon information" }, .args_type = "",
{ "qtree", "", do_info_qtree, .handler = do_info_migrate,
"", "show device tree" }, .params = "",
{ "qdm", "", do_info_qdm, .help = "show migration status",
"", "show qdev device model list" }, },
{ "roms", "", do_info_roms, {
"", "show roms" }, .name = "balloon",
{ NULL, NULL, }, .args_type = "",
.handler = do_info_balloon,
.params = "",
.help = "show balloon information",
},
{
.name = "qtree",
.args_type = "",
.handler = do_info_qtree,
.params = "",
.help = "show device tree",
},
{
.name = "qdm",
.args_type = "",
.handler = do_info_qdm,
.params = "",
.help = "show qdev device model list",
},
{
.name = "roms",
.args_type = "",
.handler = do_info_roms,
.params = "",
.help = "show roms",
},
{
.name = NULL,
},
}; };
/*******************************************************************/ /*******************************************************************/

View File

@ -9,21 +9,40 @@ STEXI
@table @option @table @option
ETEXI ETEXI
{ "help|?", "name:s?", do_help_cmd, "[cmd]", "show the help" }, {
.name = "help|?",
.args_type = "name:s?",
.handler = do_help_cmd,
.params = "[cmd]",
.help = "show the help",
},
STEXI STEXI
@item help or ? [@var{cmd}] @item help or ? [@var{cmd}]
Show the help for all commands or just for command @var{cmd}. Show the help for all commands or just for command @var{cmd}.
ETEXI ETEXI
{ "commit", "device:B", do_commit, {
"device|all", "commit changes to the disk images (if -snapshot is used) or backing files" }, .name = "commit",
.args_type = "device:B",
.handler = do_commit,
.params = "device|all",
.help = "commit changes to the disk images (if -snapshot is used) or backing files",
},
STEXI STEXI
@item commit @item commit
Commit changes to the disk images (if -snapshot is used) or backing files. Commit changes to the disk images (if -snapshot is used) or backing files.
ETEXI ETEXI
{ "info", "item:s?", do_info, {
"[subcommand]", "show various information about the system state" }, .name = "info",
.args_type = "item:s?",
.handler = do_info,
.params = "[subcommand]",
.help = "show various information about the system state",
},
STEXI STEXI
@item info @var{subcommand} @item info @var{subcommand}
Show various information about the system state. Show various information about the system state.
@ -94,22 +113,40 @@ show device tree
@end table @end table
ETEXI ETEXI
{ "q|quit", "", do_quit, {
"", "quit the emulator" }, .name = "q|quit",
.args_type = "",
.handler = do_quit,
.params = "",
.help = "quit the emulator",
},
STEXI STEXI
@item q or quit @item q or quit
Quit the emulator. Quit the emulator.
ETEXI ETEXI
{ "eject", "force:-f,filename:B", do_eject, {
"[-f] device", "eject a removable medium (use -f to force it)" }, .name = "eject",
.args_type = "force:-f,filename:B",
.handler = do_eject,
.params = "[-f] device",
.help = "eject a removable medium (use -f to force it)",
},
STEXI STEXI
@item eject [-f] @var{device} @item eject [-f] @var{device}
Eject a removable medium (use -f to force it). Eject a removable medium (use -f to force it).
ETEXI ETEXI
{ "change", "device:B,target:F,arg:s?", do_change, {
"device filename [format]", "change a removable medium, optional format" }, .name = "change",
.args_type = "device:B,target:F,arg:s?",
.handler = do_change,
.params = "device filename [format]",
.help = "change a removable medium, optional format",
},
STEXI STEXI
@item change @var{device} @var{setting} @item change @var{device} @var{setting}
@ -147,29 +184,53 @@ Password: ********
@end table @end table
ETEXI ETEXI
{ "screendump", "filename:F", do_screen_dump, {
"filename", "save screen into PPM image 'filename'" }, .name = "screendump",
.args_type = "filename:F",
.handler = do_screen_dump,
.params = "filename",
.help = "save screen into PPM image 'filename'",
},
STEXI STEXI
@item screendump @var{filename} @item screendump @var{filename}
Save screen into PPM image @var{filename}. Save screen into PPM image @var{filename}.
ETEXI ETEXI
{ "logfile", "filename:F", do_logfile, {
"filename", "output logs to 'filename'" }, .name = "logfile",
.args_type = "filename:F",
.handler = do_logfile,
.params = "filename",
.help = "output logs to 'filename'",
},
STEXI STEXI
@item logfile @var{filename} @item logfile @var{filename}
Output logs to @var{filename}. Output logs to @var{filename}.
ETEXI ETEXI
{ "log", "items:s", do_log, {
"item1[,...]", "activate logging of the specified items to '/tmp/qemu.log'" }, .name = "log",
.args_type = "items:s",
.handler = do_log,
.params = "item1[,...]",
.help = "activate logging of the specified items to '/tmp/qemu.log'",
},
STEXI STEXI
@item log @var{item1}[,...] @item log @var{item1}[,...]
Activate logging of the specified items to @file{/tmp/qemu.log}. Activate logging of the specified items to @file{/tmp/qemu.log}.
ETEXI ETEXI
{ "savevm", "name:s?", do_savevm, {
"[tag|id]", "save a VM snapshot. If no tag or id are provided, a new snapshot is created" }, .name = "savevm",
.args_type = "name:s?",
.handler = do_savevm,
.params = "[tag|id]",
.help = "save a VM snapshot. If no tag or id are provided, a new snapshot is created",
},
STEXI STEXI
@item savevm [@var{tag}|@var{id}] @item savevm [@var{tag}|@var{id}]
Create a snapshot of the whole virtual machine. If @var{tag} is Create a snapshot of the whole virtual machine. If @var{tag} is
@ -178,59 +239,107 @@ a snapshot with the same tag or ID, it is replaced. More info at
@ref{vm_snapshots}. @ref{vm_snapshots}.
ETEXI ETEXI
{ "loadvm", "name:s", do_loadvm, {
"tag|id", "restore a VM snapshot from its tag or id" }, .name = "loadvm",
.args_type = "name:s",
.handler = do_loadvm,
.params = "tag|id",
.help = "restore a VM snapshot from its tag or id",
},
STEXI STEXI
@item loadvm @var{tag}|@var{id} @item loadvm @var{tag}|@var{id}
Set the whole virtual machine to the snapshot identified by the tag Set the whole virtual machine to the snapshot identified by the tag
@var{tag} or the unique snapshot ID @var{id}. @var{tag} or the unique snapshot ID @var{id}.
ETEXI ETEXI
{ "delvm", "name:s", do_delvm, {
"tag|id", "delete a VM snapshot from its tag or id" }, .name = "delvm",
.args_type = "name:s",
.handler = do_delvm,
.params = "tag|id",
.help = "delete a VM snapshot from its tag or id",
},
STEXI STEXI
@item delvm @var{tag}|@var{id} @item delvm @var{tag}|@var{id}
Delete the snapshot identified by @var{tag} or @var{id}. Delete the snapshot identified by @var{tag} or @var{id}.
ETEXI ETEXI
{ "singlestep", "option:s?", do_singlestep, {
"[on|off]", "run emulation in singlestep mode or switch to normal mode", }, .name = "singlestep",
.args_type = "option:s?",
.handler = do_singlestep,
.params = "[on|off]",
.help = "run emulation in singlestep mode or switch to normal mode",
},
STEXI STEXI
@item singlestep [off] @item singlestep [off]
Run the emulation in single step mode. Run the emulation in single step mode.
If called with option off, the emulation returns to normal mode. If called with option off, the emulation returns to normal mode.
ETEXI ETEXI
{ "stop", "", do_stop, {
"", "stop emulation", }, .name = "stop",
.args_type = "",
.handler = do_stop,
.params = "",
.help = "stop emulation",
},
STEXI STEXI
@item stop @item stop
Stop emulation. Stop emulation.
ETEXI ETEXI
{ "c|cont", "", do_cont, {
"", "resume emulation", }, .name = "c|cont",
.args_type = "",
.handler = do_cont,
.params = "",
.help = "resume emulation",
},
STEXI STEXI
@item c or cont @item c or cont
Resume emulation. Resume emulation.
ETEXI ETEXI
{ "gdbserver", "device:s?", do_gdbserver, {
"[device]", "start gdbserver on given device (default 'tcp::1234'), stop with 'none'", }, .name = "gdbserver",
.args_type = "device:s?",
.handler = do_gdbserver,
.params = "[device]",
.help = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
},
STEXI STEXI
@item gdbserver [@var{port}] @item gdbserver [@var{port}]
Start gdbserver session (default @var{port}=1234) Start gdbserver session (default @var{port}=1234)
ETEXI ETEXI
{ "x", "fmt:/,addr:l", do_memory_dump, {
"/fmt addr", "virtual memory dump starting at 'addr'", }, .name = "x",
.args_type = "fmt:/,addr:l",
.handler = do_memory_dump,
.params = "/fmt addr",
.help = "virtual memory dump starting at 'addr'",
},
STEXI STEXI
@item x/fmt @var{addr} @item x/fmt @var{addr}
Virtual memory dump starting at @var{addr}. Virtual memory dump starting at @var{addr}.
ETEXI ETEXI
{ "xp", "fmt:/,addr:l", do_physical_memory_dump, {
"/fmt addr", "physical memory dump starting at 'addr'", }, .name = "xp",
.args_type = "fmt:/,addr:l",
.handler = do_physical_memory_dump,
.params = "/fmt addr",
.help = "physical memory dump starting at 'addr'",
},
STEXI STEXI
@item xp /@var{fmt} @var{addr} @item xp /@var{fmt} @var{addr}
Physical memory dump starting at @var{addr}. Physical memory dump starting at @var{addr}.
@ -289,8 +398,14 @@ Dump 80 16 bit values at the start of the video memory.
@end itemize @end itemize
ETEXI ETEXI
{ "p|print", "fmt:/,val:l", do_print, {
"/fmt expr", "print expression value (use $reg for CPU register access)", }, .name = "p|print",
.args_type = "fmt:/,val:l",
.handler = do_print,
.params = "/fmt expr",
.help = "print expression value (use $reg for CPU register access)",
},
STEXI STEXI
@item p or print/@var{fmt} @var{expr} @item p or print/@var{fmt} @var{expr}
@ -298,20 +413,38 @@ Print expression value. Only the @var{format} part of @var{fmt} is
used. used.
ETEXI ETEXI
{ "i", "fmt:/,addr:i,index:i.", do_ioport_read, {
"/fmt addr", "I/O port read" }, .name = "i",
.args_type = "fmt:/,addr:i,index:i.",
.handler = do_ioport_read,
.params = "/fmt addr",
.help = "I/O port read",
},
STEXI STEXI
Read I/O port. Read I/O port.
ETEXI ETEXI
{ "o", "fmt:/,addr:i,val:i", do_ioport_write, {
"/fmt addr value", "I/O port write" }, .name = "o",
.args_type = "fmt:/,addr:i,val:i",
.handler = do_ioport_write,
.params = "/fmt addr value",
.help = "I/O port write",
},
STEXI STEXI
Write to I/O port. Write to I/O port.
ETEXI ETEXI
{ "sendkey", "string:s,hold_time:i?", do_sendkey, {
"keys [hold_ms]", "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)" }, .name = "sendkey",
.args_type = "string:s,hold_time:i?",
.handler = do_sendkey,
.params = "keys [hold_ms]",
.help = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
},
STEXI STEXI
@item sendkey @var{keys} @item sendkey @var{keys}
@ -326,32 +459,56 @@ This command is useful to send keys that your graphical user interface
intercepts at low level, such as @code{ctrl-alt-f1} in X Window. intercepts at low level, such as @code{ctrl-alt-f1} in X Window.
ETEXI ETEXI
{ "system_reset", "", do_system_reset, {
"", "reset the system" }, .name = "system_reset",
.args_type = "",
.handler = do_system_reset,
.params = "",
.help = "reset the system",
},
STEXI STEXI
@item system_reset @item system_reset
Reset the system. Reset the system.
ETEXI ETEXI
{ "system_powerdown", "", do_system_powerdown, {
"", "send system power down event" }, .name = "system_powerdown",
.args_type = "",
.handler = do_system_powerdown,
.params = "",
.help = "send system power down event",
},
STEXI STEXI
@item system_powerdown @item system_powerdown
Power down the system (if supported). Power down the system (if supported).
ETEXI ETEXI
{ "sum", "start:i,size:i", do_sum, {
"addr size", "compute the checksum of a memory region" }, .name = "sum",
.args_type = "start:i,size:i",
.handler = do_sum,
.params = "addr size",
.help = "compute the checksum of a memory region",
},
STEXI STEXI
@item sum @var{addr} @var{size} @item sum @var{addr} @var{size}
Compute the checksum of a memory region. Compute the checksum of a memory region.
ETEXI ETEXI
{ "usb_add", "devname:s", do_usb_add, {
"device", "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')" }, .name = "usb_add",
.args_type = "devname:s",
.handler = do_usb_add,
.params = "device",
.help = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
},
STEXI STEXI
@item usb_add @var{devname} @item usb_add @var{devname}
@ -359,8 +516,14 @@ Add the USB device @var{devname}. For details of available devices see
@ref{usb_devices} @ref{usb_devices}
ETEXI ETEXI
{ "usb_del", "devname:s", do_usb_del, {
"device", "remove USB device 'bus.addr'" }, .name = "usb_del",
.args_type = "devname:s",
.handler = do_usb_del,
.params = "device",
.help = "remove USB device 'bus.addr'",
},
STEXI STEXI
@item usb_del @var{devname} @item usb_del @var{devname}
@ -369,45 +532,81 @@ hub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
command @code{info usb} to see the devices you can remove. command @code{info usb} to see the devices you can remove.
ETEXI ETEXI
{ "device_add", "config:s", do_device_add, {
"device", "add device, like -device on the command line" }, .name = "device_add",
.args_type = "config:s",
.handler = do_device_add,
.params = "device",
.help = "add device, like -device on the command line",
},
STEXI STEXI
@item device_add @var{config} @item device_add @var{config}
Add device. Add device.
ETEXI ETEXI
{ "device_del", "id:s", do_device_del, {
"device", "remove device" }, .name = "device_del",
.args_type = "id:s",
.handler = do_device_del,
.params = "device",
.help = "remove device",
},
STEXI STEXI
@item device_del @var{id} @item device_del @var{id}
Remove device @var{id}. Remove device @var{id}.
ETEXI ETEXI
{ "cpu", "index:i", do_cpu_set, "index", "set the default CPU" }, {
.name = "cpu",
.args_type = "index:i",
.handler = do_cpu_set,
.params = "index",
.help = "set the default CPU",
},
STEXI STEXI
Set the default CPU. Set the default CPU.
ETEXI ETEXI
{ "mouse_move", "dx_str:s,dy_str:s,dz_str:s?", do_mouse_move, {
"dx dy [dz]", "send mouse move events" }, .name = "mouse_move",
.args_type = "dx_str:s,dy_str:s,dz_str:s?",
.handler = do_mouse_move,
.params = "dx dy [dz]",
.help = "send mouse move events",
},
STEXI STEXI
@item mouse_move @var{dx} @var{dy} [@var{dz}] @item mouse_move @var{dx} @var{dy} [@var{dz}]
Move the active mouse to the specified coordinates @var{dx} @var{dy} Move the active mouse to the specified coordinates @var{dx} @var{dy}
with optional scroll axis @var{dz}. with optional scroll axis @var{dz}.
ETEXI ETEXI
{ "mouse_button", "button_state:i", do_mouse_button, {
"state", "change mouse button state (1=L, 2=M, 4=R)" }, .name = "mouse_button",
.args_type = "button_state:i",
.handler = do_mouse_button,
.params = "state",
.help = "change mouse button state (1=L, 2=M, 4=R)",
},
STEXI STEXI
@item mouse_button @var{val} @item mouse_button @var{val}
Change the active mouse button state @var{val} (1=L, 2=M, 4=R). Change the active mouse button state @var{val} (1=L, 2=M, 4=R).
ETEXI ETEXI
{ "mouse_set", "index:i", do_mouse_set, {
"index", "set which mouse device receives events" }, .name = "mouse_set",
.args_type = "index:i",
.handler = do_mouse_set,
.params = "index",
.help = "set which mouse device receives events",
},
STEXI STEXI
@item mouse_set @var{index} @item mouse_set @var{index}
Set which mouse device receives events at given @var{index}, index Set which mouse device receives events at given @var{index}, index
@ -418,9 +617,13 @@ info mice
ETEXI ETEXI
#ifdef HAS_AUDIO #ifdef HAS_AUDIO
{ "wavcapture", "path:F,freq:i?,bits:i?,nchannels:i?", do_wav_capture, {
"path [frequency [bits [channels]]]", .name = "wavcapture",
"capture audio to a wave file (default frequency=44100 bits=16 channels=2)" }, .args_type = "path:F,freq:i?,bits:i?,nchannels:i?",
.handler = do_wav_capture,
.params = "path [frequency [bits [channels]]]",
.help = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
},
#endif #endif
STEXI STEXI
@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]] @item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
@ -436,8 +639,13 @@ Defaults:
ETEXI ETEXI
#ifdef HAS_AUDIO #ifdef HAS_AUDIO
{ "stopcapture", "n:i", do_stop_capture, {
"capture index", "stop capture" }, .name = "stopcapture",
.args_type = "n:i",
.handler = do_stop_capture,
.params = "capture index",
.help = "stop capture",
},
#endif #endif
STEXI STEXI
@item stopcapture @var{index} @item stopcapture @var{index}
@ -447,22 +655,40 @@ info capture
@end example @end example
ETEXI ETEXI
{ "memsave", "val:l,size:i,filename:s", do_memory_save, {
"addr size file", "save to disk virtual memory dump starting at 'addr' of size 'size'", }, .name = "memsave",
.args_type = "val:l,size:i,filename:s",
.handler = do_memory_save,
.params = "addr size file",
.help = "save to disk virtual memory dump starting at 'addr' of size 'size'",
},
STEXI STEXI
@item memsave @var{addr} @var{size} @var{file} @item memsave @var{addr} @var{size} @var{file}
save to disk virtual memory dump starting at @var{addr} of size @var{size}. save to disk virtual memory dump starting at @var{addr} of size @var{size}.
ETEXI ETEXI
{ "pmemsave", "val:l,size:i,filename:s", do_physical_memory_save, {
"addr size file", "save to disk physical memory dump starting at 'addr' of size 'size'", }, .name = "pmemsave",
.args_type = "val:l,size:i,filename:s",
.handler = do_physical_memory_save,
.params = "addr size file",
.help = "save to disk physical memory dump starting at 'addr' of size 'size'",
},
STEXI STEXI
@item pmemsave @var{addr} @var{size} @var{file} @item pmemsave @var{addr} @var{size} @var{file}
save to disk physical memory dump starting at @var{addr} of size @var{size}. save to disk physical memory dump starting at @var{addr} of size @var{size}.
ETEXI ETEXI
{ "boot_set", "bootdevice:s", do_boot_set, {
"bootdevice", "define new values for the boot device list" }, .name = "boot_set",
.args_type = "bootdevice:s",
.handler = do_boot_set,
.params = "bootdevice",
.help = "define new values for the boot device list",
},
STEXI STEXI
@item boot_set @var{bootdevicelist} @item boot_set @var{bootdevicelist}
@ -474,37 +700,65 @@ the same that can be specified in the @code{-boot} command line option.
ETEXI ETEXI
#if defined(TARGET_I386) #if defined(TARGET_I386)
{ "nmi", "cpu_index:i", do_inject_nmi, {
"cpu", "inject an NMI on the given CPU", }, .name = "nmi",
.args_type = "cpu_index:i",
.handler = do_inject_nmi,
.params = "cpu",
.help = "inject an NMI on the given CPU",
},
#endif #endif
STEXI STEXI
@item nmi @var{cpu} @item nmi @var{cpu}
Inject an NMI on the given CPU (x86 only). Inject an NMI on the given CPU (x86 only).
ETEXI ETEXI
{ "migrate", "detach:-d,uri:s", do_migrate, {
"[-d] uri", "migrate to URI (using -d to not wait for completion)" }, .name = "migrate",
.args_type = "detach:-d,uri:s",
.handler = do_migrate,
.params = "[-d] uri",
.help = "migrate to URI (using -d to not wait for completion)",
},
STEXI STEXI
@item migrate [-d] @var{uri} @item migrate [-d] @var{uri}
Migrate to @var{uri} (using -d to not wait for completion). Migrate to @var{uri} (using -d to not wait for completion).
ETEXI ETEXI
{ "migrate_cancel", "", do_migrate_cancel, {
"", "cancel the current VM migration" }, .name = "migrate_cancel",
.args_type = "",
.handler = do_migrate_cancel,
.params = "",
.help = "cancel the current VM migration",
},
STEXI STEXI
@item migrate_cancel @item migrate_cancel
Cancel the current VM migration. Cancel the current VM migration.
ETEXI ETEXI
{ "migrate_set_speed", "value:s", do_migrate_set_speed, {
"value", "set maximum speed (in bytes) for migrations" }, .name = "migrate_set_speed",
.args_type = "value:s",
.handler = do_migrate_set_speed,
.params = "value",
.help = "set maximum speed (in bytes) for migrations",
},
STEXI STEXI
@item migrate_set_speed @var{value} @item migrate_set_speed @var{value}
Set maximum speed to @var{value} (in bytes) for migrations. Set maximum speed to @var{value} (in bytes) for migrations.
ETEXI ETEXI
{ "migrate_set_downtime", "value:s", do_migrate_set_downtime, {
"value", "set maximum tolerated downtime (in seconds) for migrations" }, .name = "migrate_set_downtime",
.args_type = "value:s",
.handler = do_migrate_set_downtime,
.params = "value",
.help = "set maximum tolerated downtime (in seconds) for migrations",
},
STEXI STEXI
@item migrate_set_downtime @var{second} @item migrate_set_downtime @var{second}
@ -512,85 +766,150 @@ Set maximum tolerated downtime (in seconds) for migration.
ETEXI ETEXI
#if defined(TARGET_I386) #if defined(TARGET_I386)
{ "drive_add", "pci_addr:s,opts:s", drive_hot_add, {
"[[<domain>:]<bus>:]<slot>\n" .name = "drive_add",
"[file=file][,if=type][,bus=n]\n" .args_type = "pci_addr:s,opts:s",
"[,unit=m][,media=d][index=i]\n" .handler = drive_hot_add,
"[,cyls=c,heads=h,secs=s[,trans=t]]\n" .params = "[[<domain>:]<bus>:]<slot>\n"
"[snapshot=on|off][,cache=on|off]", "[file=file][,if=type][,bus=n]\n"
"add drive to PCI storage controller" }, "[,unit=m][,media=d][index=i]\n"
"[,cyls=c,heads=h,secs=s[,trans=t]]\n"
"[snapshot=on|off][,cache=on|off]",
.help = "add drive to PCI storage controller",
},
#endif #endif
STEXI STEXI
@item drive_add @item drive_add
Add drive to PCI storage controller. Add drive to PCI storage controller.
ETEXI ETEXI
#if defined(TARGET_I386) #if defined(TARGET_I386)
{ "pci_add", "pci_addr:s,type:s,opts:s?", pci_device_hot_add, "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...", "hot-add PCI device" }, {
.name = "pci_add",
.args_type = "pci_addr:s,type:s,opts:s?",
.handler = pci_device_hot_add,
.params = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
.help = "hot-add PCI device",
},
#endif #endif
STEXI STEXI
@item pci_add @item pci_add
Hot-add PCI device. Hot-add PCI device.
ETEXI ETEXI
#if defined(TARGET_I386) #if defined(TARGET_I386)
{ "pci_del", "pci_addr:s", do_pci_device_hot_remove, "[[<domain>:]<bus>:]<slot>", "hot remove PCI device" }, {
.name = "pci_del",
.args_type = "pci_addr:s",
.handler = do_pci_device_hot_remove,
.params = "[[<domain>:]<bus>:]<slot>",
.help = "hot remove PCI device",
},
#endif #endif
STEXI STEXI
@item pci_del @item pci_del
Hot remove PCI device. Hot remove PCI device.
ETEXI ETEXI
{ "host_net_add", "device:s,opts:s?", net_host_device_add, {
"tap|user|socket|vde|dump [options]", "add host VLAN client" }, .name = "host_net_add",
.args_type = "device:s,opts:s?",
.handler = net_host_device_add,
.params = "tap|user|socket|vde|dump [options]",
.help = "add host VLAN client",
},
STEXI STEXI
@item host_net_add @item host_net_add
Add host VLAN client. Add host VLAN client.
ETEXI ETEXI
{ "host_net_remove", "vlan_id:i,device:s", net_host_device_remove, {
"vlan_id name", "remove host VLAN client" }, .name = "host_net_remove",
.args_type = "vlan_id:i,device:s",
.handler = net_host_device_remove,
.params = "vlan_id name",
.help = "remove host VLAN client",
},
STEXI STEXI
@item host_net_remove @item host_net_remove
Remove host VLAN client. Remove host VLAN client.
ETEXI ETEXI
#ifdef CONFIG_SLIRP #ifdef CONFIG_SLIRP
{ "hostfwd_add", "arg1:s,arg2:s?,arg3:s?", net_slirp_hostfwd_add, {
"[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport", .name = "hostfwd_add",
"redirect TCP or UDP connections from host to guest (requires -net user)" }, .args_type = "arg1:s,arg2:s?,arg3:s?",
{ "hostfwd_remove", "arg1:s,arg2:s?,arg3:s?", net_slirp_hostfwd_remove, .handler = net_slirp_hostfwd_add,
"[vlan_id name] [tcp|udp]:[hostaddr]:hostport", .params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
"remove host-to-guest TCP or UDP redirection" }, .help = "redirect TCP or UDP connections from host to guest (requires -net user)",
},
{
.name = "hostfwd_remove",
.args_type = "arg1:s,arg2:s?,arg3:s?",
.handler = net_slirp_hostfwd_remove,
.params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
.help = "remove host-to-guest TCP or UDP redirection",
},
#endif #endif
STEXI STEXI
@item host_net_redir @item host_net_redir
Redirect TCP or UDP connections from host to guest (requires -net user). Redirect TCP or UDP connections from host to guest (requires -net user).
ETEXI ETEXI
{ "balloon", "value:i", do_balloon, {
"target", "request VM to change it's memory allocation (in MB)" }, .name = "balloon",
.args_type = "value:i",
.handler = do_balloon,
.params = "target",
.help = "request VM to change it's memory allocation (in MB)",
},
STEXI STEXI
@item balloon @var{value} @item balloon @var{value}
Request VM to change its memory allocation to @var{value} (in MB). Request VM to change its memory allocation to @var{value} (in MB).
ETEXI ETEXI
{ "set_link", "name:s,up_or_down:s", do_set_link, {
"name up|down", "change the link status of a network adapter" }, .name = "set_link",
.args_type = "name:s,up_or_down:s",
.handler = do_set_link,
.params = "name up|down",
.help = "change the link status of a network adapter",
},
STEXI STEXI
@item set_link @var{name} [up|down] @item set_link @var{name} [up|down]
Set link @var{name} up or down. Set link @var{name} up or down.
ETEXI ETEXI
{ "watchdog_action", "action:s", do_watchdog_action, {
"[reset|shutdown|poweroff|pause|debug|none]", "change watchdog action" }, .name = "watchdog_action",
.args_type = "action:s",
.handler = do_watchdog_action,
.params = "[reset|shutdown|poweroff|pause|debug|none]",
.help = "change watchdog action",
},
STEXI STEXI
@item watchdog_action @item watchdog_action
Change watchdog action. Change watchdog action.
ETEXI ETEXI
{ "acl_show", "aclname:s", do_acl_show, "aclname", {
"list rules in the access control list" }, .name = "acl_show",
.args_type = "aclname:s",
.handler = do_acl_show,
.params = "aclname",
.help = "list rules in the access control list",
},
STEXI STEXI
@item acl_show @var{aclname} @item acl_show @var{aclname}
List all the matching rules in the access control list, and the default List all the matching rules in the access control list, and the default
@ -599,8 +918,14 @@ policy. There are currently two named access control lists,
certificate distinguished name, and SASL username respectively. certificate distinguished name, and SASL username respectively.
ETEXI ETEXI
{ "acl_policy", "aclname:s,policy:s", do_acl_policy, "aclname allow|deny", {
"set default access control list policy" }, .name = "acl_policy",
.args_type = "aclname:s,policy:s",
.handler = do_acl_policy,
.params = "aclname allow|deny",
.help = "set default access control list policy",
},
STEXI STEXI
@item acl_policy @var{aclname} @code{allow|deny} @item acl_policy @var{aclname} @code{allow|deny}
Set the default access control list policy, used in the event that Set the default access control list policy, used in the event that
@ -608,8 +933,14 @@ none of the explicit rules match. The default policy at startup is
always @code{deny}. always @code{deny}.
ETEXI ETEXI
{ "acl_add", "aclname:s,match:s,policy:s,index:i?", do_acl_add, "aclname match allow|deny [index]", {
"add a match rule to the access control list" }, .name = "acl_add",
.args_type = "aclname:s,match:s,policy:s,index:i?",
.handler = do_acl_add,
.params = "aclname match allow|deny [index]",
.help = "add a match rule to the access control list",
},
STEXI STEXI
@item acl_allow @var{aclname} @var{match} @code{allow|deny} [@var{index}] @item acl_allow @var{aclname} @var{match} @code{allow|deny} [@var{index}]
Add a match rule to the access control list, allowing or denying access. Add a match rule to the access control list, allowing or denying access.
@ -620,15 +951,27 @@ normally be appended to the end of the ACL, but can be inserted
earlier in the list if the optional @var{index} parameter is supplied. earlier in the list if the optional @var{index} parameter is supplied.
ETEXI ETEXI
{ "acl_remove", "aclname:s,match:s", do_acl_remove, "aclname match", {
"remove a match rule from the access control list" }, .name = "acl_remove",
.args_type = "aclname:s,match:s",
.handler = do_acl_remove,
.params = "aclname match",
.help = "remove a match rule from the access control list",
},
STEXI STEXI
@item acl_remove @var{aclname} @var{match} @item acl_remove @var{aclname} @var{match}
Remove the specified match rule from the access control list. Remove the specified match rule from the access control list.
ETEXI ETEXI
{ "acl_reset", "aclname:s", do_acl_reset, "aclname", {
"reset the access control list" }, .name = "acl_reset",
.args_type = "aclname:s",
.handler = do_acl_reset,
.params = "aclname",
.help = "reset the access control list",
},
STEXI STEXI
@item acl_remove @var{aclname} @var{match} @item acl_remove @var{aclname} @var{match}
Remove all matches from the access control list, and set the default Remove all matches from the access control list, and set the default
@ -636,15 +979,29 @@ policy back to @code{deny}.
ETEXI ETEXI
#if defined(TARGET_I386) #if defined(TARGET_I386)
{ "mce", "cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l", do_inject_mce, "cpu bank status mcgstatus addr misc", "inject a MCE on the given CPU"},
{
.name = "mce",
.args_type = "cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
.handler = do_inject_mce,
.params = "cpu bank status mcgstatus addr misc",
.help = "inject a MCE on the given CPU",
},
#endif #endif
STEXI STEXI
@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc} @item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
Inject an MCE on the given CPU (x86 only). Inject an MCE on the given CPU (x86 only).
ETEXI ETEXI
{ "getfd", "fdname:s", do_getfd, "getfd name", {
"receive a file descriptor via SCM rights and assign it a name" }, .name = "getfd",
.args_type = "fdname:s",
.handler = do_getfd,
.params = "getfd name",
.help = "receive a file descriptor via SCM rights and assign it a name",
},
STEXI STEXI
@item getfd @var{fdname} @item getfd @var{fdname}
If a file descriptor is passed alongside this command using the SCM_RIGHTS If a file descriptor is passed alongside this command using the SCM_RIGHTS
@ -652,8 +1009,14 @@ mechanism on unix sockets, it is stored using the name @var{fdname} for
later use by other monitor commands. later use by other monitor commands.
ETEXI ETEXI
{ "closefd", "fdname:s", do_closefd, "closefd name", {
"close a file descriptor previously passed via SCM rights" }, .name = "closefd",
.args_type = "fdname:s",
.handler = do_closefd,
.params = "closefd name",
.help = "close a file descriptor previously passed via SCM rights",
},
STEXI STEXI
@item closefd @var{fdname} @item closefd @var{fdname}
Close the file descriptor previously assigned to @var{fdname} using the Close the file descriptor previously assigned to @var{fdname} using the