12313086aSBlue SwirlHXCOMM Use DEFHEADING() to define headings in both help text and texi 22313086aSBlue SwirlHXCOMM Text between STEXI and ETEXI are copied to texi version and 32313086aSBlue SwirlHXCOMM discarded from C version 42313086aSBlue SwirlHXCOMM DEF(command, args, callback, arg_string, help) is used to construct 52313086aSBlue SwirlHXCOMM monitor commands 62313086aSBlue SwirlHXCOMM HXCOMM can be used for comments, discarded from both texi and C 72313086aSBlue Swirl 82313086aSBlue SwirlSTEXI 92313086aSBlue Swirl@table @option 102313086aSBlue SwirlETEXI 112313086aSBlue Swirl 12d7f9b689SLuiz Capitulino { 13d7f9b689SLuiz Capitulino .name = "help|?", 14d7f9b689SLuiz Capitulino .args_type = "name:s?", 15d7f9b689SLuiz Capitulino .params = "[cmd]", 16d7f9b689SLuiz Capitulino .help = "show the help", 17af4ce882SLuiz Capitulino .mhandler.cmd = do_help_cmd, 18d7f9b689SLuiz Capitulino }, 19d7f9b689SLuiz Capitulino 202313086aSBlue SwirlSTEXI 212313086aSBlue Swirl@item help or ? [@var{cmd}] 2270fcbbe7SStefan Weil@findex help 232313086aSBlue SwirlShow the help for all commands or just for command @var{cmd}. 242313086aSBlue SwirlETEXI 252313086aSBlue Swirl 26d7f9b689SLuiz Capitulino { 27d7f9b689SLuiz Capitulino .name = "commit", 28d7f9b689SLuiz Capitulino .args_type = "device:B", 29d7f9b689SLuiz Capitulino .params = "device|all", 30d7f9b689SLuiz Capitulino .help = "commit changes to the disk images (if -snapshot is used) or backing files", 31af4ce882SLuiz Capitulino .mhandler.cmd = do_commit, 32d7f9b689SLuiz Capitulino }, 33d7f9b689SLuiz Capitulino 342313086aSBlue SwirlSTEXI 352313086aSBlue Swirl@item commit 3670fcbbe7SStefan Weil@findex commit 372313086aSBlue SwirlCommit changes to the disk images (if -snapshot is used) or backing files. 382313086aSBlue SwirlETEXI 392313086aSBlue Swirl 40d7f9b689SLuiz Capitulino { 41d7f9b689SLuiz Capitulino .name = "info", 42d7f9b689SLuiz Capitulino .args_type = "item:s?", 43d7f9b689SLuiz Capitulino .params = "[subcommand]", 44d7f9b689SLuiz Capitulino .help = "show various information about the system state", 4513c7425eSLuiz Capitulino .user_print = monitor_user_noop, 46261394dbSLuiz Capitulino .mhandler.cmd_new = do_info, 47d7f9b689SLuiz Capitulino }, 48d7f9b689SLuiz Capitulino 492313086aSBlue SwirlSTEXI 502313086aSBlue Swirl@item info @var{subcommand} 5170fcbbe7SStefan Weil@findex info 522313086aSBlue SwirlShow various information about the system state. 532313086aSBlue Swirl 542313086aSBlue Swirl@table @option 552313086aSBlue Swirl@item info version 562313086aSBlue Swirlshow the version of QEMU 572313086aSBlue Swirl@item info network 582313086aSBlue Swirlshow the various VLANs and the associated devices 592313086aSBlue Swirl@item info chardev 602313086aSBlue Swirlshow the character devices 612313086aSBlue Swirl@item info block 622313086aSBlue Swirlshow the block devices 632313086aSBlue Swirl@item info block 642313086aSBlue Swirlshow block device statistics 652313086aSBlue Swirl@item info registers 662313086aSBlue Swirlshow the cpu registers 672313086aSBlue Swirl@item info cpus 682313086aSBlue Swirlshow infos for each CPU 692313086aSBlue Swirl@item info history 702313086aSBlue Swirlshow the command line history 712313086aSBlue Swirl@item info irq 722313086aSBlue Swirlshow the interrupts statistics (if available) 732313086aSBlue Swirl@item info pic 742313086aSBlue Swirlshow i8259 (PIC) state 752313086aSBlue Swirl@item info pci 762313086aSBlue Swirlshow emulated PCI device info 772313086aSBlue Swirl@item info tlb 782313086aSBlue Swirlshow virtual to physical memory mappings (i386 only) 792313086aSBlue Swirl@item info mem 802313086aSBlue Swirlshow the active virtual memory mappings (i386 only) 812313086aSBlue Swirl@item info hpet 822313086aSBlue Swirlshow state of HPET (i386 only) 832313086aSBlue Swirl@item info kvm 842313086aSBlue Swirlshow KVM information 852313086aSBlue Swirl@item info usb 862313086aSBlue Swirlshow USB devices plugged on the virtual USB hub 872313086aSBlue Swirl@item info usbhost 882313086aSBlue Swirlshow all USB host devices 892313086aSBlue Swirl@item info profile 902313086aSBlue Swirlshow profiling information 912313086aSBlue Swirl@item info capture 922313086aSBlue Swirlshow information about active capturing 932313086aSBlue Swirl@item info snapshots 942313086aSBlue Swirlshow list of VM snapshots 952313086aSBlue Swirl@item info status 962313086aSBlue Swirlshow the current VM status (running|paused) 972313086aSBlue Swirl@item info pcmcia 982313086aSBlue Swirlshow guest PCMCIA status 992313086aSBlue Swirl@item info mice 1002313086aSBlue Swirlshow which guest mouse is receiving events 1012313086aSBlue Swirl@item info vnc 1022313086aSBlue Swirlshow the vnc server status 1032313086aSBlue Swirl@item info name 1042313086aSBlue Swirlshow the current VM name 1052313086aSBlue Swirl@item info uuid 1062313086aSBlue Swirlshow the current VM UUID 1072313086aSBlue Swirl@item info cpustats 1082313086aSBlue Swirlshow CPU statistics 1096dbe553fSJan Kiszka@item info usernet 1106dbe553fSJan Kiszkashow user network stack connection states 1112313086aSBlue Swirl@item info migrate 1122313086aSBlue Swirlshow migration status 1132313086aSBlue Swirl@item info balloon 1142313086aSBlue Swirlshow balloon information 1152313086aSBlue Swirl@item info qtree 1162313086aSBlue Swirlshow device tree 1172313086aSBlue Swirl@end table 1182313086aSBlue SwirlETEXI 1192313086aSBlue Swirl 120d7f9b689SLuiz Capitulino { 121d7f9b689SLuiz Capitulino .name = "q|quit", 122d7f9b689SLuiz Capitulino .args_type = "", 123d7f9b689SLuiz Capitulino .params = "", 124d7f9b689SLuiz Capitulino .help = "quit the emulator", 125b223f35fSLuiz Capitulino .user_print = monitor_user_noop, 126261394dbSLuiz Capitulino .mhandler.cmd_new = do_quit, 127d7f9b689SLuiz Capitulino }, 128d7f9b689SLuiz Capitulino 1292313086aSBlue SwirlSTEXI 1302313086aSBlue Swirl@item q or quit 13170fcbbe7SStefan Weil@findex quit 1322313086aSBlue SwirlQuit the emulator. 1332313086aSBlue SwirlETEXI 1342313086aSBlue Swirl 135d7f9b689SLuiz Capitulino { 136d7f9b689SLuiz Capitulino .name = "eject", 13778d714e0SLuiz Capitulino .args_type = "force:-f,device:B", 138d7f9b689SLuiz Capitulino .params = "[-f] device", 139d7f9b689SLuiz Capitulino .help = "eject a removable medium (use -f to force it)", 140e1c923a6SLuiz Capitulino .user_print = monitor_user_noop, 141261394dbSLuiz Capitulino .mhandler.cmd_new = do_eject, 142d7f9b689SLuiz Capitulino }, 143d7f9b689SLuiz Capitulino 1442313086aSBlue SwirlSTEXI 1452313086aSBlue Swirl@item eject [-f] @var{device} 14670fcbbe7SStefan Weil@findex eject 1472313086aSBlue SwirlEject a removable medium (use -f to force it). 1482313086aSBlue SwirlETEXI 1492313086aSBlue Swirl 150d7f9b689SLuiz Capitulino { 151d7f9b689SLuiz Capitulino .name = "change", 152d7f9b689SLuiz Capitulino .args_type = "device:B,target:F,arg:s?", 153d7f9b689SLuiz Capitulino .params = "device filename [format]", 154d7f9b689SLuiz Capitulino .help = "change a removable medium, optional format", 155ec3b82afSMarkus Armbruster .user_print = monitor_user_noop, 156261394dbSLuiz Capitulino .mhandler.cmd_new = do_change, 157d7f9b689SLuiz Capitulino }, 158d7f9b689SLuiz Capitulino 1592313086aSBlue SwirlSTEXI 1602313086aSBlue Swirl@item change @var{device} @var{setting} 16170fcbbe7SStefan Weil@findex change 1622313086aSBlue Swirl 1632313086aSBlue SwirlChange the configuration of a device. 1642313086aSBlue Swirl 1652313086aSBlue Swirl@table @option 1662313086aSBlue Swirl@item change @var{diskdevice} @var{filename} [@var{format}] 1672313086aSBlue SwirlChange the medium for a removable disk device to point to @var{filename}. eg 1682313086aSBlue Swirl 1692313086aSBlue Swirl@example 1702313086aSBlue Swirl(qemu) change ide1-cd0 /path/to/some.iso 1712313086aSBlue Swirl@end example 1722313086aSBlue Swirl 1732313086aSBlue Swirl@var{format} is optional. 1742313086aSBlue Swirl 1752313086aSBlue Swirl@item change vnc @var{display},@var{options} 1762313086aSBlue SwirlChange the configuration of the VNC server. The valid syntax for @var{display} 1772313086aSBlue Swirland @var{options} are described at @ref{sec_invocation}. eg 1782313086aSBlue Swirl 1792313086aSBlue Swirl@example 1802313086aSBlue Swirl(qemu) change vnc localhost:1 1812313086aSBlue Swirl@end example 1822313086aSBlue Swirl 1832313086aSBlue Swirl@item change vnc password [@var{password}] 1842313086aSBlue Swirl 1852313086aSBlue SwirlChange the password associated with the VNC server. If the new password is not 1862313086aSBlue Swirlsupplied, the monitor will prompt for it to be entered. VNC passwords are only 1872313086aSBlue Swirlsignificant up to 8 letters. eg 1882313086aSBlue Swirl 1892313086aSBlue Swirl@example 1902313086aSBlue Swirl(qemu) change vnc password 1912313086aSBlue SwirlPassword: ******** 1922313086aSBlue Swirl@end example 1932313086aSBlue Swirl 1942313086aSBlue Swirl@end table 1952313086aSBlue SwirlETEXI 1962313086aSBlue Swirl 197d7f9b689SLuiz Capitulino { 198d7f9b689SLuiz Capitulino .name = "screendump", 199d7f9b689SLuiz Capitulino .args_type = "filename:F", 200d7f9b689SLuiz Capitulino .params = "filename", 201d7f9b689SLuiz Capitulino .help = "save screen into PPM image 'filename'", 202f1dc58e0SLuiz Capitulino .user_print = monitor_user_noop, 203f1dc58e0SLuiz Capitulino .mhandler.cmd_new = do_screen_dump, 204d7f9b689SLuiz Capitulino }, 205d7f9b689SLuiz Capitulino 2062313086aSBlue SwirlSTEXI 2072313086aSBlue Swirl@item screendump @var{filename} 20870fcbbe7SStefan Weil@findex screendump 2092313086aSBlue SwirlSave screen into PPM image @var{filename}. 2102313086aSBlue SwirlETEXI 2112313086aSBlue Swirl 212d7f9b689SLuiz Capitulino { 213d7f9b689SLuiz Capitulino .name = "logfile", 214d7f9b689SLuiz Capitulino .args_type = "filename:F", 215d7f9b689SLuiz Capitulino .params = "filename", 216d7f9b689SLuiz Capitulino .help = "output logs to 'filename'", 217af4ce882SLuiz Capitulino .mhandler.cmd = do_logfile, 218d7f9b689SLuiz Capitulino }, 219d7f9b689SLuiz Capitulino 2202313086aSBlue SwirlSTEXI 2212313086aSBlue Swirl@item logfile @var{filename} 22270fcbbe7SStefan Weil@findex logfile 2232313086aSBlue SwirlOutput logs to @var{filename}. 2242313086aSBlue SwirlETEXI 2252313086aSBlue Swirl 226d7f9b689SLuiz Capitulino { 227d7f9b689SLuiz Capitulino .name = "log", 228d7f9b689SLuiz Capitulino .args_type = "items:s", 229d7f9b689SLuiz Capitulino .params = "item1[,...]", 230d7f9b689SLuiz Capitulino .help = "activate logging of the specified items to '/tmp/qemu.log'", 231af4ce882SLuiz Capitulino .mhandler.cmd = do_log, 232d7f9b689SLuiz Capitulino }, 233d7f9b689SLuiz Capitulino 2342313086aSBlue SwirlSTEXI 2352313086aSBlue Swirl@item log @var{item1}[,...] 23670fcbbe7SStefan Weil@findex log 2372313086aSBlue SwirlActivate logging of the specified items to @file{/tmp/qemu.log}. 2382313086aSBlue SwirlETEXI 2392313086aSBlue Swirl 240d7f9b689SLuiz Capitulino { 241d7f9b689SLuiz Capitulino .name = "savevm", 242d7f9b689SLuiz Capitulino .args_type = "name:s?", 243d7f9b689SLuiz Capitulino .params = "[tag|id]", 244d7f9b689SLuiz Capitulino .help = "save a VM snapshot. If no tag or id are provided, a new snapshot is created", 245af4ce882SLuiz Capitulino .mhandler.cmd = do_savevm, 246d7f9b689SLuiz Capitulino }, 247d7f9b689SLuiz Capitulino 2482313086aSBlue SwirlSTEXI 2492313086aSBlue Swirl@item savevm [@var{tag}|@var{id}] 25070fcbbe7SStefan Weil@findex savevm 2512313086aSBlue SwirlCreate a snapshot of the whole virtual machine. If @var{tag} is 2522313086aSBlue Swirlprovided, it is used as human readable identifier. If there is already 2532313086aSBlue Swirla snapshot with the same tag or ID, it is replaced. More info at 2542313086aSBlue Swirl@ref{vm_snapshots}. 2552313086aSBlue SwirlETEXI 2562313086aSBlue Swirl 257d7f9b689SLuiz Capitulino { 258d7f9b689SLuiz Capitulino .name = "loadvm", 259d7f9b689SLuiz Capitulino .args_type = "name:s", 260d7f9b689SLuiz Capitulino .params = "tag|id", 261d7f9b689SLuiz Capitulino .help = "restore a VM snapshot from its tag or id", 262af4ce882SLuiz Capitulino .mhandler.cmd = do_loadvm, 263d7f9b689SLuiz Capitulino }, 264d7f9b689SLuiz Capitulino 2652313086aSBlue SwirlSTEXI 2662313086aSBlue Swirl@item loadvm @var{tag}|@var{id} 26770fcbbe7SStefan Weil@findex loadvm 2682313086aSBlue SwirlSet the whole virtual machine to the snapshot identified by the tag 2692313086aSBlue Swirl@var{tag} or the unique snapshot ID @var{id}. 2702313086aSBlue SwirlETEXI 2712313086aSBlue Swirl 272d7f9b689SLuiz Capitulino { 273d7f9b689SLuiz Capitulino .name = "delvm", 274d7f9b689SLuiz Capitulino .args_type = "name:s", 275d7f9b689SLuiz Capitulino .params = "tag|id", 276d7f9b689SLuiz Capitulino .help = "delete a VM snapshot from its tag or id", 277af4ce882SLuiz Capitulino .mhandler.cmd = do_delvm, 278d7f9b689SLuiz Capitulino }, 279d7f9b689SLuiz Capitulino 2802313086aSBlue SwirlSTEXI 2812313086aSBlue Swirl@item delvm @var{tag}|@var{id} 28270fcbbe7SStefan Weil@findex delvm 2832313086aSBlue SwirlDelete the snapshot identified by @var{tag} or @var{id}. 2842313086aSBlue SwirlETEXI 2852313086aSBlue Swirl 286d7f9b689SLuiz Capitulino { 287d7f9b689SLuiz Capitulino .name = "singlestep", 288d7f9b689SLuiz Capitulino .args_type = "option:s?", 289d7f9b689SLuiz Capitulino .params = "[on|off]", 290d7f9b689SLuiz Capitulino .help = "run emulation in singlestep mode or switch to normal mode", 291af4ce882SLuiz Capitulino .mhandler.cmd = do_singlestep, 292d7f9b689SLuiz Capitulino }, 293d7f9b689SLuiz Capitulino 2942313086aSBlue SwirlSTEXI 2952313086aSBlue Swirl@item singlestep [off] 29670fcbbe7SStefan Weil@findex singlestep 2972313086aSBlue SwirlRun the emulation in single step mode. 2982313086aSBlue SwirlIf called with option off, the emulation returns to normal mode. 2992313086aSBlue SwirlETEXI 3002313086aSBlue Swirl 301d7f9b689SLuiz Capitulino { 302d7f9b689SLuiz Capitulino .name = "stop", 303d7f9b689SLuiz Capitulino .args_type = "", 304d7f9b689SLuiz Capitulino .params = "", 305d7f9b689SLuiz Capitulino .help = "stop emulation", 306e0c97bdeSLuiz Capitulino .user_print = monitor_user_noop, 307261394dbSLuiz Capitulino .mhandler.cmd_new = do_stop, 308d7f9b689SLuiz Capitulino }, 309d7f9b689SLuiz Capitulino 3102313086aSBlue SwirlSTEXI 3112313086aSBlue Swirl@item stop 31270fcbbe7SStefan Weil@findex stop 3132313086aSBlue SwirlStop emulation. 3142313086aSBlue SwirlETEXI 3152313086aSBlue Swirl 316d7f9b689SLuiz Capitulino { 317d7f9b689SLuiz Capitulino .name = "c|cont", 318d7f9b689SLuiz Capitulino .args_type = "", 319d7f9b689SLuiz Capitulino .params = "", 320d7f9b689SLuiz Capitulino .help = "resume emulation", 321a1f896a0SLuiz Capitulino .user_print = monitor_user_noop, 322261394dbSLuiz Capitulino .mhandler.cmd_new = do_cont, 323d7f9b689SLuiz Capitulino }, 324d7f9b689SLuiz Capitulino 3252313086aSBlue SwirlSTEXI 3262313086aSBlue Swirl@item c or cont 32770fcbbe7SStefan Weil@findex cont 3282313086aSBlue SwirlResume emulation. 3292313086aSBlue SwirlETEXI 3302313086aSBlue Swirl 331d7f9b689SLuiz Capitulino { 332d7f9b689SLuiz Capitulino .name = "gdbserver", 333d7f9b689SLuiz Capitulino .args_type = "device:s?", 334d7f9b689SLuiz Capitulino .params = "[device]", 335d7f9b689SLuiz Capitulino .help = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'", 336af4ce882SLuiz Capitulino .mhandler.cmd = do_gdbserver, 337d7f9b689SLuiz Capitulino }, 338d7f9b689SLuiz Capitulino 3392313086aSBlue SwirlSTEXI 3402313086aSBlue Swirl@item gdbserver [@var{port}] 34170fcbbe7SStefan Weil@findex gdbserver 3422313086aSBlue SwirlStart gdbserver session (default @var{port}=1234) 3432313086aSBlue SwirlETEXI 3442313086aSBlue Swirl 345d7f9b689SLuiz Capitulino { 346d7f9b689SLuiz Capitulino .name = "x", 347d7f9b689SLuiz Capitulino .args_type = "fmt:/,addr:l", 348d7f9b689SLuiz Capitulino .params = "/fmt addr", 349d7f9b689SLuiz Capitulino .help = "virtual memory dump starting at 'addr'", 350af4ce882SLuiz Capitulino .mhandler.cmd = do_memory_dump, 351d7f9b689SLuiz Capitulino }, 352d7f9b689SLuiz Capitulino 3532313086aSBlue SwirlSTEXI 3542313086aSBlue Swirl@item x/fmt @var{addr} 35570fcbbe7SStefan Weil@findex x 3562313086aSBlue SwirlVirtual memory dump starting at @var{addr}. 3572313086aSBlue SwirlETEXI 3582313086aSBlue Swirl 359d7f9b689SLuiz Capitulino { 360d7f9b689SLuiz Capitulino .name = "xp", 361d7f9b689SLuiz Capitulino .args_type = "fmt:/,addr:l", 362d7f9b689SLuiz Capitulino .params = "/fmt addr", 363d7f9b689SLuiz Capitulino .help = "physical memory dump starting at 'addr'", 364af4ce882SLuiz Capitulino .mhandler.cmd = do_physical_memory_dump, 365d7f9b689SLuiz Capitulino }, 366d7f9b689SLuiz Capitulino 3672313086aSBlue SwirlSTEXI 3682313086aSBlue Swirl@item xp /@var{fmt} @var{addr} 36970fcbbe7SStefan Weil@findex xp 3702313086aSBlue SwirlPhysical memory dump starting at @var{addr}. 3712313086aSBlue Swirl 3722313086aSBlue Swirl@var{fmt} is a format which tells the command how to format the 3732313086aSBlue Swirldata. Its syntax is: @option{/@{count@}@{format@}@{size@}} 3742313086aSBlue Swirl 3752313086aSBlue Swirl@table @var 3762313086aSBlue Swirl@item count 3772313086aSBlue Swirlis the number of items to be dumped. 3782313086aSBlue Swirl 3792313086aSBlue Swirl@item format 3802313086aSBlue Swirlcan be x (hex), d (signed decimal), u (unsigned decimal), o (octal), 3812313086aSBlue Swirlc (char) or i (asm instruction). 3822313086aSBlue Swirl 3832313086aSBlue Swirl@item size 3842313086aSBlue Swirlcan be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86, 3852313086aSBlue Swirl@code{h} or @code{w} can be specified with the @code{i} format to 3862313086aSBlue Swirlrespectively select 16 or 32 bit code instruction size. 3872313086aSBlue Swirl 3882313086aSBlue Swirl@end table 3892313086aSBlue Swirl 3902313086aSBlue SwirlExamples: 3912313086aSBlue Swirl@itemize 3922313086aSBlue Swirl@item 3932313086aSBlue SwirlDump 10 instructions at the current instruction pointer: 3942313086aSBlue Swirl@example 3952313086aSBlue Swirl(qemu) x/10i $eip 3962313086aSBlue Swirl0x90107063: ret 3972313086aSBlue Swirl0x90107064: sti 3982313086aSBlue Swirl0x90107065: lea 0x0(%esi,1),%esi 3992313086aSBlue Swirl0x90107069: lea 0x0(%edi,1),%edi 4002313086aSBlue Swirl0x90107070: ret 4012313086aSBlue Swirl0x90107071: jmp 0x90107080 4022313086aSBlue Swirl0x90107073: nop 4032313086aSBlue Swirl0x90107074: nop 4042313086aSBlue Swirl0x90107075: nop 4052313086aSBlue Swirl0x90107076: nop 4062313086aSBlue Swirl@end example 4072313086aSBlue Swirl 4082313086aSBlue Swirl@item 4092313086aSBlue SwirlDump 80 16 bit values at the start of the video memory. 4102313086aSBlue Swirl@smallexample 4112313086aSBlue Swirl(qemu) xp/80hx 0xb8000 4122313086aSBlue Swirl0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42 4132313086aSBlue Swirl0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41 4142313086aSBlue Swirl0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72 4152313086aSBlue Swirl0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73 4162313086aSBlue Swirl0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20 4172313086aSBlue Swirl0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720 4182313086aSBlue Swirl0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 4192313086aSBlue Swirl0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 4202313086aSBlue Swirl0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 4212313086aSBlue Swirl0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 4222313086aSBlue Swirl@end smallexample 4232313086aSBlue Swirl@end itemize 4242313086aSBlue SwirlETEXI 4252313086aSBlue Swirl 426d7f9b689SLuiz Capitulino { 427d7f9b689SLuiz Capitulino .name = "p|print", 428d7f9b689SLuiz Capitulino .args_type = "fmt:/,val:l", 429d7f9b689SLuiz Capitulino .params = "/fmt expr", 430d7f9b689SLuiz Capitulino .help = "print expression value (use $reg for CPU register access)", 431af4ce882SLuiz Capitulino .mhandler.cmd = do_print, 432d7f9b689SLuiz Capitulino }, 433d7f9b689SLuiz Capitulino 4342313086aSBlue SwirlSTEXI 4352313086aSBlue Swirl@item p or print/@var{fmt} @var{expr} 43670fcbbe7SStefan Weil@findex print 4372313086aSBlue Swirl 4382313086aSBlue SwirlPrint expression value. Only the @var{format} part of @var{fmt} is 4392313086aSBlue Swirlused. 4402313086aSBlue SwirlETEXI 4412313086aSBlue Swirl 442d7f9b689SLuiz Capitulino { 443d7f9b689SLuiz Capitulino .name = "i", 444d7f9b689SLuiz Capitulino .args_type = "fmt:/,addr:i,index:i.", 445d7f9b689SLuiz Capitulino .params = "/fmt addr", 446d7f9b689SLuiz Capitulino .help = "I/O port read", 447af4ce882SLuiz Capitulino .mhandler.cmd = do_ioport_read, 448d7f9b689SLuiz Capitulino }, 449d7f9b689SLuiz Capitulino 4502313086aSBlue SwirlSTEXI 4512313086aSBlue SwirlRead I/O port. 4522313086aSBlue SwirlETEXI 4532313086aSBlue Swirl 454d7f9b689SLuiz Capitulino { 455d7f9b689SLuiz Capitulino .name = "o", 456d7f9b689SLuiz Capitulino .args_type = "fmt:/,addr:i,val:i", 457d7f9b689SLuiz Capitulino .params = "/fmt addr value", 458d7f9b689SLuiz Capitulino .help = "I/O port write", 459af4ce882SLuiz Capitulino .mhandler.cmd = do_ioport_write, 460d7f9b689SLuiz Capitulino }, 461d7f9b689SLuiz Capitulino 462f114784fSJan KiszkaSTEXI 463f114784fSJan KiszkaWrite to I/O port. 464f114784fSJan KiszkaETEXI 4652313086aSBlue Swirl 466d7f9b689SLuiz Capitulino { 467d7f9b689SLuiz Capitulino .name = "sendkey", 468d7f9b689SLuiz Capitulino .args_type = "string:s,hold_time:i?", 469d7f9b689SLuiz Capitulino .params = "keys [hold_ms]", 470d7f9b689SLuiz Capitulino .help = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)", 471af4ce882SLuiz Capitulino .mhandler.cmd = do_sendkey, 472d7f9b689SLuiz Capitulino }, 473d7f9b689SLuiz Capitulino 4742313086aSBlue SwirlSTEXI 4752313086aSBlue Swirl@item sendkey @var{keys} 47670fcbbe7SStefan Weil@findex sendkey 4772313086aSBlue Swirl 4782313086aSBlue SwirlSend @var{keys} to the emulator. @var{keys} could be the name of the 4792313086aSBlue Swirlkey or @code{#} followed by the raw value in either decimal or hexadecimal 4802313086aSBlue Swirlformat. Use @code{-} to press several keys simultaneously. Example: 4812313086aSBlue Swirl@example 4822313086aSBlue Swirlsendkey ctrl-alt-f1 4832313086aSBlue Swirl@end example 4842313086aSBlue Swirl 4852313086aSBlue SwirlThis command is useful to send keys that your graphical user interface 4862313086aSBlue Swirlintercepts at low level, such as @code{ctrl-alt-f1} in X Window. 4872313086aSBlue SwirlETEXI 4882313086aSBlue Swirl 489d7f9b689SLuiz Capitulino { 490d7f9b689SLuiz Capitulino .name = "system_reset", 491d7f9b689SLuiz Capitulino .args_type = "", 492d7f9b689SLuiz Capitulino .params = "", 493d7f9b689SLuiz Capitulino .help = "reset the system", 494c80d259eSLuiz Capitulino .user_print = monitor_user_noop, 495261394dbSLuiz Capitulino .mhandler.cmd_new = do_system_reset, 496d7f9b689SLuiz Capitulino }, 497d7f9b689SLuiz Capitulino 4982313086aSBlue SwirlSTEXI 4992313086aSBlue Swirl@item system_reset 50070fcbbe7SStefan Weil@findex system_reset 5012313086aSBlue Swirl 5022313086aSBlue SwirlReset the system. 5032313086aSBlue SwirlETEXI 5042313086aSBlue Swirl 505d7f9b689SLuiz Capitulino { 506d7f9b689SLuiz Capitulino .name = "system_powerdown", 507d7f9b689SLuiz Capitulino .args_type = "", 508d7f9b689SLuiz Capitulino .params = "", 509d7f9b689SLuiz Capitulino .help = "send system power down event", 51043076664SLuiz Capitulino .user_print = monitor_user_noop, 511261394dbSLuiz Capitulino .mhandler.cmd_new = do_system_powerdown, 512d7f9b689SLuiz Capitulino }, 513d7f9b689SLuiz Capitulino 5142313086aSBlue SwirlSTEXI 5152313086aSBlue Swirl@item system_powerdown 51670fcbbe7SStefan Weil@findex system_powerdown 5172313086aSBlue Swirl 5182313086aSBlue SwirlPower down the system (if supported). 5192313086aSBlue SwirlETEXI 5202313086aSBlue Swirl 521d7f9b689SLuiz Capitulino { 522d7f9b689SLuiz Capitulino .name = "sum", 523d7f9b689SLuiz Capitulino .args_type = "start:i,size:i", 524d7f9b689SLuiz Capitulino .params = "addr size", 525d7f9b689SLuiz Capitulino .help = "compute the checksum of a memory region", 526af4ce882SLuiz Capitulino .mhandler.cmd = do_sum, 527d7f9b689SLuiz Capitulino }, 528d7f9b689SLuiz Capitulino 5292313086aSBlue SwirlSTEXI 5302313086aSBlue Swirl@item sum @var{addr} @var{size} 53170fcbbe7SStefan Weil@findex sum 5322313086aSBlue Swirl 5332313086aSBlue SwirlCompute the checksum of a memory region. 5342313086aSBlue SwirlETEXI 5352313086aSBlue Swirl 536d7f9b689SLuiz Capitulino { 537d7f9b689SLuiz Capitulino .name = "usb_add", 538d7f9b689SLuiz Capitulino .args_type = "devname:s", 539d7f9b689SLuiz Capitulino .params = "device", 540d7f9b689SLuiz Capitulino .help = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')", 541af4ce882SLuiz Capitulino .mhandler.cmd = do_usb_add, 542d7f9b689SLuiz Capitulino }, 543d7f9b689SLuiz Capitulino 5442313086aSBlue SwirlSTEXI 5452313086aSBlue Swirl@item usb_add @var{devname} 54670fcbbe7SStefan Weil@findex usb_add 5472313086aSBlue Swirl 5482313086aSBlue SwirlAdd the USB device @var{devname}. For details of available devices see 5492313086aSBlue Swirl@ref{usb_devices} 5502313086aSBlue SwirlETEXI 5512313086aSBlue Swirl 552d7f9b689SLuiz Capitulino { 553d7f9b689SLuiz Capitulino .name = "usb_del", 554d7f9b689SLuiz Capitulino .args_type = "devname:s", 555d7f9b689SLuiz Capitulino .params = "device", 556d7f9b689SLuiz Capitulino .help = "remove USB device 'bus.addr'", 557af4ce882SLuiz Capitulino .mhandler.cmd = do_usb_del, 558d7f9b689SLuiz Capitulino }, 559d7f9b689SLuiz Capitulino 5602313086aSBlue SwirlSTEXI 5612313086aSBlue Swirl@item usb_del @var{devname} 56270fcbbe7SStefan Weil@findex usb_del 5632313086aSBlue Swirl 5642313086aSBlue SwirlRemove the USB device @var{devname} from the QEMU virtual USB 5652313086aSBlue Swirlhub. @var{devname} has the syntax @code{bus.addr}. Use the monitor 5662313086aSBlue Swirlcommand @code{info usb} to see the devices you can remove. 5672313086aSBlue SwirlETEXI 5682313086aSBlue Swirl 569d7f9b689SLuiz Capitulino { 570d7f9b689SLuiz Capitulino .name = "device_add", 571c7e4e8ceSMarkus Armbruster .args_type = "device:O", 572c7e4e8ceSMarkus Armbruster .params = "driver[,prop=value][,...]", 573d7f9b689SLuiz Capitulino .help = "add device, like -device on the command line", 5748bc27249SMarkus Armbruster .user_print = monitor_user_noop, 5758bc27249SMarkus Armbruster .mhandler.cmd_new = do_device_add, 576d7f9b689SLuiz Capitulino }, 577d7f9b689SLuiz Capitulino 5783418bd25SGerd HoffmannSTEXI 5793418bd25SGerd Hoffmann@item device_add @var{config} 58070fcbbe7SStefan Weil@findex device_add 5813418bd25SGerd Hoffmann 5823418bd25SGerd HoffmannAdd device. 5833418bd25SGerd HoffmannETEXI 5843418bd25SGerd Hoffmann 585d7f9b689SLuiz Capitulino { 586d7f9b689SLuiz Capitulino .name = "device_del", 587d7f9b689SLuiz Capitulino .args_type = "id:s", 588d7f9b689SLuiz Capitulino .params = "device", 589d7f9b689SLuiz Capitulino .help = "remove device", 59017a38eaaSMarkus Armbruster .user_print = monitor_user_noop, 59117a38eaaSMarkus Armbruster .mhandler.cmd_new = do_device_del, 592d7f9b689SLuiz Capitulino }, 593d7f9b689SLuiz Capitulino 5943418bd25SGerd HoffmannSTEXI 5953418bd25SGerd Hoffmann@item device_del @var{id} 59670fcbbe7SStefan Weil@findex device_del 5973418bd25SGerd Hoffmann 5983418bd25SGerd HoffmannRemove device @var{id}. 5993418bd25SGerd HoffmannETEXI 6003418bd25SGerd Hoffmann 601d7f9b689SLuiz Capitulino { 602d7f9b689SLuiz Capitulino .name = "cpu", 603d7f9b689SLuiz Capitulino .args_type = "index:i", 604d7f9b689SLuiz Capitulino .params = "index", 605d7f9b689SLuiz Capitulino .help = "set the default CPU", 60681a1b45aSMarkus Armbruster .user_print = monitor_user_noop, 607261394dbSLuiz Capitulino .mhandler.cmd_new = do_cpu_set, 608d7f9b689SLuiz Capitulino }, 6093418bd25SGerd Hoffmann 6102313086aSBlue SwirlSTEXI 611c427ea9cSMarkus Armbruster@item cpu @var{index} 612c427ea9cSMarkus Armbruster@findex cpu 6132313086aSBlue SwirlSet the default CPU. 6142313086aSBlue SwirlETEXI 6152313086aSBlue Swirl 616d7f9b689SLuiz Capitulino { 617d7f9b689SLuiz Capitulino .name = "mouse_move", 618d7f9b689SLuiz Capitulino .args_type = "dx_str:s,dy_str:s,dz_str:s?", 619d7f9b689SLuiz Capitulino .params = "dx dy [dz]", 620d7f9b689SLuiz Capitulino .help = "send mouse move events", 621af4ce882SLuiz Capitulino .mhandler.cmd = do_mouse_move, 622d7f9b689SLuiz Capitulino }, 623d7f9b689SLuiz Capitulino 6242313086aSBlue SwirlSTEXI 6252313086aSBlue Swirl@item mouse_move @var{dx} @var{dy} [@var{dz}] 62670fcbbe7SStefan Weil@findex mouse_move 6272313086aSBlue SwirlMove the active mouse to the specified coordinates @var{dx} @var{dy} 6282313086aSBlue Swirlwith optional scroll axis @var{dz}. 6292313086aSBlue SwirlETEXI 6302313086aSBlue Swirl 631d7f9b689SLuiz Capitulino { 632d7f9b689SLuiz Capitulino .name = "mouse_button", 633d7f9b689SLuiz Capitulino .args_type = "button_state:i", 634d7f9b689SLuiz Capitulino .params = "state", 635d7f9b689SLuiz Capitulino .help = "change mouse button state (1=L, 2=M, 4=R)", 636af4ce882SLuiz Capitulino .mhandler.cmd = do_mouse_button, 637d7f9b689SLuiz Capitulino }, 638d7f9b689SLuiz Capitulino 6392313086aSBlue SwirlSTEXI 6402313086aSBlue Swirl@item mouse_button @var{val} 64170fcbbe7SStefan Weil@findex mouse_button 6422313086aSBlue SwirlChange the active mouse button state @var{val} (1=L, 2=M, 4=R). 6432313086aSBlue SwirlETEXI 6442313086aSBlue Swirl 645d7f9b689SLuiz Capitulino { 646d7f9b689SLuiz Capitulino .name = "mouse_set", 647d7f9b689SLuiz Capitulino .args_type = "index:i", 648d7f9b689SLuiz Capitulino .params = "index", 649d7f9b689SLuiz Capitulino .help = "set which mouse device receives events", 650af4ce882SLuiz Capitulino .mhandler.cmd = do_mouse_set, 651d7f9b689SLuiz Capitulino }, 652d7f9b689SLuiz Capitulino 6532313086aSBlue SwirlSTEXI 6542313086aSBlue Swirl@item mouse_set @var{index} 65570fcbbe7SStefan Weil@findex mouse_set 6562313086aSBlue SwirlSet which mouse device receives events at given @var{index}, index 6572313086aSBlue Swirlcan be obtained with 6582313086aSBlue Swirl@example 6592313086aSBlue Swirlinfo mice 6602313086aSBlue Swirl@end example 6612313086aSBlue SwirlETEXI 6622313086aSBlue Swirl 6632313086aSBlue Swirl#ifdef HAS_AUDIO 664d7f9b689SLuiz Capitulino { 665d7f9b689SLuiz Capitulino .name = "wavcapture", 666d7f9b689SLuiz Capitulino .args_type = "path:F,freq:i?,bits:i?,nchannels:i?", 667d7f9b689SLuiz Capitulino .params = "path [frequency [bits [channels]]]", 668d7f9b689SLuiz Capitulino .help = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)", 669af4ce882SLuiz Capitulino .mhandler.cmd = do_wav_capture, 670d7f9b689SLuiz Capitulino }, 6712313086aSBlue Swirl#endif 6722313086aSBlue SwirlSTEXI 6732313086aSBlue Swirl@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]] 67470fcbbe7SStefan Weil@findex wavcapture 6752313086aSBlue SwirlCapture audio into @var{filename}. Using sample rate @var{frequency} 6762313086aSBlue Swirlbits per sample @var{bits} and number of channels @var{channels}. 6772313086aSBlue Swirl 6782313086aSBlue SwirlDefaults: 6792313086aSBlue Swirl@itemize @minus 6802313086aSBlue Swirl@item Sample rate = 44100 Hz - CD quality 6812313086aSBlue Swirl@item Bits = 16 6822313086aSBlue Swirl@item Number of channels = 2 - Stereo 6832313086aSBlue Swirl@end itemize 6842313086aSBlue SwirlETEXI 6852313086aSBlue Swirl 6862313086aSBlue Swirl#ifdef HAS_AUDIO 687d7f9b689SLuiz Capitulino { 688d7f9b689SLuiz Capitulino .name = "stopcapture", 689d7f9b689SLuiz Capitulino .args_type = "n:i", 690d7f9b689SLuiz Capitulino .params = "capture index", 691d7f9b689SLuiz Capitulino .help = "stop capture", 692af4ce882SLuiz Capitulino .mhandler.cmd = do_stop_capture, 693d7f9b689SLuiz Capitulino }, 6942313086aSBlue Swirl#endif 6952313086aSBlue SwirlSTEXI 6962313086aSBlue Swirl@item stopcapture @var{index} 69770fcbbe7SStefan Weil@findex stopcapture 6982313086aSBlue SwirlStop capture with a given @var{index}, index can be obtained with 6992313086aSBlue Swirl@example 7002313086aSBlue Swirlinfo capture 7012313086aSBlue Swirl@end example 7022313086aSBlue SwirlETEXI 7032313086aSBlue Swirl 704d7f9b689SLuiz Capitulino { 705d7f9b689SLuiz Capitulino .name = "memsave", 706d7f9b689SLuiz Capitulino .args_type = "val:l,size:i,filename:s", 707d7f9b689SLuiz Capitulino .params = "addr size file", 708d7f9b689SLuiz Capitulino .help = "save to disk virtual memory dump starting at 'addr' of size 'size'", 70957e09454SLuiz Capitulino .user_print = monitor_user_noop, 710261394dbSLuiz Capitulino .mhandler.cmd_new = do_memory_save, 711d7f9b689SLuiz Capitulino }, 712d7f9b689SLuiz Capitulino 7132313086aSBlue SwirlSTEXI 7142313086aSBlue Swirl@item memsave @var{addr} @var{size} @var{file} 71570fcbbe7SStefan Weil@findex memsave 7162313086aSBlue Swirlsave to disk virtual memory dump starting at @var{addr} of size @var{size}. 7172313086aSBlue SwirlETEXI 7182313086aSBlue Swirl 719d7f9b689SLuiz Capitulino { 720d7f9b689SLuiz Capitulino .name = "pmemsave", 721d7f9b689SLuiz Capitulino .args_type = "val:l,size:i,filename:s", 722d7f9b689SLuiz Capitulino .params = "addr size file", 723d7f9b689SLuiz Capitulino .help = "save to disk physical memory dump starting at 'addr' of size 'size'", 72418f5a8bfSLuiz Capitulino .user_print = monitor_user_noop, 725261394dbSLuiz Capitulino .mhandler.cmd_new = do_physical_memory_save, 726d7f9b689SLuiz Capitulino }, 727d7f9b689SLuiz Capitulino 7282313086aSBlue SwirlSTEXI 7292313086aSBlue Swirl@item pmemsave @var{addr} @var{size} @var{file} 73070fcbbe7SStefan Weil@findex pmemsave 7312313086aSBlue Swirlsave to disk physical memory dump starting at @var{addr} of size @var{size}. 7322313086aSBlue SwirlETEXI 7332313086aSBlue Swirl 734d7f9b689SLuiz Capitulino { 735d7f9b689SLuiz Capitulino .name = "boot_set", 736d7f9b689SLuiz Capitulino .args_type = "bootdevice:s", 737d7f9b689SLuiz Capitulino .params = "bootdevice", 738d7f9b689SLuiz Capitulino .help = "define new values for the boot device list", 739af4ce882SLuiz Capitulino .mhandler.cmd = do_boot_set, 740d7f9b689SLuiz Capitulino }, 741d7f9b689SLuiz Capitulino 7422313086aSBlue SwirlSTEXI 7432313086aSBlue Swirl@item boot_set @var{bootdevicelist} 74470fcbbe7SStefan Weil@findex boot_set 7452313086aSBlue Swirl 7462313086aSBlue SwirlDefine new values for the boot device list. Those values will override 7472313086aSBlue Swirlthe values specified on the command line through the @code{-boot} option. 7482313086aSBlue Swirl 7492313086aSBlue SwirlThe values that can be specified here depend on the machine type, but are 7502313086aSBlue Swirlthe same that can be specified in the @code{-boot} command line option. 7512313086aSBlue SwirlETEXI 7522313086aSBlue Swirl 7532313086aSBlue Swirl#if defined(TARGET_I386) 754d7f9b689SLuiz Capitulino { 755d7f9b689SLuiz Capitulino .name = "nmi", 756d7f9b689SLuiz Capitulino .args_type = "cpu_index:i", 757d7f9b689SLuiz Capitulino .params = "cpu", 758d7f9b689SLuiz Capitulino .help = "inject an NMI on the given CPU", 759af4ce882SLuiz Capitulino .mhandler.cmd = do_inject_nmi, 760d7f9b689SLuiz Capitulino }, 7612313086aSBlue Swirl#endif 7622313086aSBlue SwirlSTEXI 7632313086aSBlue Swirl@item nmi @var{cpu} 76470fcbbe7SStefan Weil@findex nmi 7652313086aSBlue SwirlInject an NMI on the given CPU (x86 only). 7662313086aSBlue SwirlETEXI 7672313086aSBlue Swirl 768d7f9b689SLuiz Capitulino { 769d7f9b689SLuiz Capitulino .name = "migrate", 770fbc3d96cSlirans@il.ibm.com .args_type = "detach:-d,blk:-b,inc:-i,uri:s", 771fbc3d96cSlirans@il.ibm.com .params = "[-d] [-b] [-i] uri", 772fbc3d96cSlirans@il.ibm.com .help = "migrate to URI (using -d to not wait for completion)" 773fbc3d96cSlirans@il.ibm.com "\n\t\t\t -b for migration without shared storage with" 774fbc3d96cSlirans@il.ibm.com " full copy of disk\n\t\t\t -i for migration without " 775fbc3d96cSlirans@il.ibm.com "shared storage with incremental copy of disk " 776fbc3d96cSlirans@il.ibm.com "(base image shared between src and destination)", 7775f79da00SLuiz Capitulino .user_print = monitor_user_noop, 778261394dbSLuiz Capitulino .mhandler.cmd_new = do_migrate, 779d7f9b689SLuiz Capitulino }, 780d7f9b689SLuiz Capitulino 781fbc3d96cSlirans@il.ibm.com 7822313086aSBlue SwirlSTEXI 783fbc3d96cSlirans@il.ibm.com@item migrate [-d] [-b] [-i] @var{uri} 78470fcbbe7SStefan Weil@findex migrate 7852313086aSBlue SwirlMigrate to @var{uri} (using -d to not wait for completion). 786fbc3d96cSlirans@il.ibm.com -b for migration with full copy of disk 787fbc3d96cSlirans@il.ibm.com -i for migration with incremental copy of disk (base image is shared) 7882313086aSBlue SwirlETEXI 7892313086aSBlue Swirl 790d7f9b689SLuiz Capitulino { 791d7f9b689SLuiz Capitulino .name = "migrate_cancel", 792d7f9b689SLuiz Capitulino .args_type = "", 793d7f9b689SLuiz Capitulino .params = "", 794d7f9b689SLuiz Capitulino .help = "cancel the current VM migration", 795911d2963SLuiz Capitulino .user_print = monitor_user_noop, 796261394dbSLuiz Capitulino .mhandler.cmd_new = do_migrate_cancel, 797d7f9b689SLuiz Capitulino }, 798d7f9b689SLuiz Capitulino 7992313086aSBlue SwirlSTEXI 8002313086aSBlue Swirl@item migrate_cancel 80170fcbbe7SStefan Weil@findex migrate_cancel 8022313086aSBlue SwirlCancel the current VM migration. 8032313086aSBlue SwirlETEXI 8042313086aSBlue Swirl 805d7f9b689SLuiz Capitulino { 806d7f9b689SLuiz Capitulino .name = "migrate_set_speed", 807ee9545daSMarkus Armbruster .args_type = "value:f", 808d7f9b689SLuiz Capitulino .params = "value", 809d7f9b689SLuiz Capitulino .help = "set maximum speed (in bytes) for migrations", 8105fd9083cSMarkus Armbruster .user_print = monitor_user_noop, 811261394dbSLuiz Capitulino .mhandler.cmd_new = do_migrate_set_speed, 812d7f9b689SLuiz Capitulino }, 813d7f9b689SLuiz Capitulino 8142313086aSBlue SwirlSTEXI 8152313086aSBlue Swirl@item migrate_set_speed @var{value} 81670fcbbe7SStefan Weil@findex migrate_set_speed 8172313086aSBlue SwirlSet maximum speed to @var{value} (in bytes) for migrations. 8182313086aSBlue SwirlETEXI 8192313086aSBlue Swirl 820d7f9b689SLuiz Capitulino { 821d7f9b689SLuiz Capitulino .name = "migrate_set_downtime", 822b0fbf7d3SMarkus Armbruster .args_type = "value:T", 823d7f9b689SLuiz Capitulino .params = "value", 824d7f9b689SLuiz Capitulino .help = "set maximum tolerated downtime (in seconds) for migrations", 825c6027f56SMarkus Armbruster .user_print = monitor_user_noop, 826261394dbSLuiz Capitulino .mhandler.cmd_new = do_migrate_set_downtime, 827d7f9b689SLuiz Capitulino }, 8282ea42952SGlauber Costa 8292ea42952SGlauber CostaSTEXI 8302ea42952SGlauber Costa@item migrate_set_downtime @var{second} 83170fcbbe7SStefan Weil@findex migrate_set_downtime 8322ea42952SGlauber CostaSet maximum tolerated downtime (in seconds) for migration. 8332ea42952SGlauber CostaETEXI 8342ea42952SGlauber Costa 8352313086aSBlue Swirl#if defined(TARGET_I386) 836d7f9b689SLuiz Capitulino { 837d7f9b689SLuiz Capitulino .name = "drive_add", 838d7f9b689SLuiz Capitulino .args_type = "pci_addr:s,opts:s", 839d7f9b689SLuiz Capitulino .params = "[[<domain>:]<bus>:]<slot>\n" 8402313086aSBlue Swirl "[file=file][,if=type][,bus=n]\n" 8412313086aSBlue Swirl "[,unit=m][,media=d][index=i]\n" 8422313086aSBlue Swirl "[,cyls=c,heads=h,secs=s[,trans=t]]\n" 8432313086aSBlue Swirl "[snapshot=on|off][,cache=on|off]", 844d7f9b689SLuiz Capitulino .help = "add drive to PCI storage controller", 845af4ce882SLuiz Capitulino .mhandler.cmd = drive_hot_add, 846d7f9b689SLuiz Capitulino }, 8472313086aSBlue Swirl#endif 848d7f9b689SLuiz Capitulino 8492313086aSBlue SwirlSTEXI 8502313086aSBlue Swirl@item drive_add 85170fcbbe7SStefan Weil@findex drive_add 8522313086aSBlue SwirlAdd drive to PCI storage controller. 8532313086aSBlue SwirlETEXI 8542313086aSBlue Swirl 8552313086aSBlue Swirl#if defined(TARGET_I386) 856d7f9b689SLuiz Capitulino { 857d7f9b689SLuiz Capitulino .name = "pci_add", 858d7f9b689SLuiz Capitulino .args_type = "pci_addr:s,type:s,opts:s?", 859d7f9b689SLuiz Capitulino .params = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...", 860d7f9b689SLuiz Capitulino .help = "hot-add PCI device", 861*6c6a58aeSMarkus Armbruster .mhandler.cmd = pci_device_hot_add, 862d7f9b689SLuiz Capitulino }, 8632313086aSBlue Swirl#endif 864d7f9b689SLuiz Capitulino 8652313086aSBlue SwirlSTEXI 8662313086aSBlue Swirl@item pci_add 86770fcbbe7SStefan Weil@findex pci_add 8682313086aSBlue SwirlHot-add PCI device. 8692313086aSBlue SwirlETEXI 8702313086aSBlue Swirl 8712313086aSBlue Swirl#if defined(TARGET_I386) 872d7f9b689SLuiz Capitulino { 873d7f9b689SLuiz Capitulino .name = "pci_del", 874d7f9b689SLuiz Capitulino .args_type = "pci_addr:s", 875d7f9b689SLuiz Capitulino .params = "[[<domain>:]<bus>:]<slot>", 876d7f9b689SLuiz Capitulino .help = "hot remove PCI device", 8776848d827SLuiz Capitulino .user_print = monitor_user_noop, 878261394dbSLuiz Capitulino .mhandler.cmd_new = do_pci_device_hot_remove, 879d7f9b689SLuiz Capitulino }, 8802313086aSBlue Swirl#endif 881d7f9b689SLuiz Capitulino 8822313086aSBlue SwirlSTEXI 8832313086aSBlue Swirl@item pci_del 88470fcbbe7SStefan Weil@findex pci_del 8852313086aSBlue SwirlHot remove PCI device. 8862313086aSBlue SwirlETEXI 8872313086aSBlue Swirl 888d7f9b689SLuiz Capitulino { 889d7f9b689SLuiz Capitulino .name = "host_net_add", 890d7f9b689SLuiz Capitulino .args_type = "device:s,opts:s?", 891d7f9b689SLuiz Capitulino .params = "tap|user|socket|vde|dump [options]", 892d7f9b689SLuiz Capitulino .help = "add host VLAN client", 893af4ce882SLuiz Capitulino .mhandler.cmd = net_host_device_add, 894d7f9b689SLuiz Capitulino }, 895d7f9b689SLuiz Capitulino 8962313086aSBlue SwirlSTEXI 8972313086aSBlue Swirl@item host_net_add 89870fcbbe7SStefan Weil@findex host_net_add 8992313086aSBlue SwirlAdd host VLAN client. 9002313086aSBlue SwirlETEXI 9012313086aSBlue Swirl 902d7f9b689SLuiz Capitulino { 903d7f9b689SLuiz Capitulino .name = "host_net_remove", 904d7f9b689SLuiz Capitulino .args_type = "vlan_id:i,device:s", 905d7f9b689SLuiz Capitulino .params = "vlan_id name", 906d7f9b689SLuiz Capitulino .help = "remove host VLAN client", 907af4ce882SLuiz Capitulino .mhandler.cmd = net_host_device_remove, 908d7f9b689SLuiz Capitulino }, 909d7f9b689SLuiz Capitulino 9102313086aSBlue SwirlSTEXI 9112313086aSBlue Swirl@item host_net_remove 91270fcbbe7SStefan Weil@findex host_net_remove 9132313086aSBlue SwirlRemove host VLAN client. 9142313086aSBlue SwirlETEXI 9152313086aSBlue Swirl 916ae82d324SMarkus Armbruster { 917ae82d324SMarkus Armbruster .name = "netdev_add", 918ae82d324SMarkus Armbruster .args_type = "netdev:O", 919ae82d324SMarkus Armbruster .params = "[user|tap|socket],id=str[,prop=value][,...]", 920ae82d324SMarkus Armbruster .help = "add host network device", 921ae82d324SMarkus Armbruster .user_print = monitor_user_noop, 922ae82d324SMarkus Armbruster .mhandler.cmd_new = do_netdev_add, 923ae82d324SMarkus Armbruster }, 924ae82d324SMarkus Armbruster 925ae82d324SMarkus ArmbrusterSTEXI 926ae82d324SMarkus Armbruster@item netdev_add 927ae82d324SMarkus Armbruster@findex netdev_add 928ae82d324SMarkus ArmbrusterAdd host network device. 929ae82d324SMarkus ArmbrusterETEXI 930ae82d324SMarkus Armbruster 931ae82d324SMarkus Armbruster { 932ae82d324SMarkus Armbruster .name = "netdev_del", 933ae82d324SMarkus Armbruster .args_type = "id:s", 934ae82d324SMarkus Armbruster .params = "id", 935ae82d324SMarkus Armbruster .help = "remove host network device", 936ae82d324SMarkus Armbruster .user_print = monitor_user_noop, 937ae82d324SMarkus Armbruster .mhandler.cmd_new = do_netdev_del, 938ae82d324SMarkus Armbruster }, 939ae82d324SMarkus Armbruster 940ae82d324SMarkus ArmbrusterSTEXI 941ae82d324SMarkus Armbruster@item netdev_del 942ae82d324SMarkus Armbruster@findex netdev_del 943ae82d324SMarkus ArmbrusterRemove host network device. 944ae82d324SMarkus ArmbrusterETEXI 945ae82d324SMarkus Armbruster 9462313086aSBlue Swirl#ifdef CONFIG_SLIRP 947d7f9b689SLuiz Capitulino { 948d7f9b689SLuiz Capitulino .name = "hostfwd_add", 949d7f9b689SLuiz Capitulino .args_type = "arg1:s,arg2:s?,arg3:s?", 950d7f9b689SLuiz Capitulino .params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport", 951d7f9b689SLuiz Capitulino .help = "redirect TCP or UDP connections from host to guest (requires -net user)", 952af4ce882SLuiz Capitulino .mhandler.cmd = net_slirp_hostfwd_add, 953d7f9b689SLuiz Capitulino }, 95421413d68SMarkus Armbruster#endif 95521413d68SMarkus ArmbrusterSTEXI 95621413d68SMarkus Armbruster@item hostfwd_add 95721413d68SMarkus Armbruster@findex hostfwd_add 95821413d68SMarkus ArmbrusterRedirect TCP or UDP connections from host to guest (requires -net user). 95921413d68SMarkus ArmbrusterETEXI 960d7f9b689SLuiz Capitulino 96121413d68SMarkus Armbruster#ifdef CONFIG_SLIRP 962d7f9b689SLuiz Capitulino { 963d7f9b689SLuiz Capitulino .name = "hostfwd_remove", 964d7f9b689SLuiz Capitulino .args_type = "arg1:s,arg2:s?,arg3:s?", 965d7f9b689SLuiz Capitulino .params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport", 966d7f9b689SLuiz Capitulino .help = "remove host-to-guest TCP or UDP redirection", 967af4ce882SLuiz Capitulino .mhandler.cmd = net_slirp_hostfwd_remove, 968d7f9b689SLuiz Capitulino }, 969d7f9b689SLuiz Capitulino 9702313086aSBlue Swirl#endif 9712313086aSBlue SwirlSTEXI 97221413d68SMarkus Armbruster@item hostfwd_remove 97321413d68SMarkus Armbruster@findex hostfwd_remove 97421413d68SMarkus ArmbrusterRemove host-to-guest TCP or UDP redirection. 9752313086aSBlue SwirlETEXI 9762313086aSBlue Swirl 977d7f9b689SLuiz Capitulino { 978d7f9b689SLuiz Capitulino .name = "balloon", 9793b0bd6ecSLuiz Capitulino .args_type = "value:M", 980d7f9b689SLuiz Capitulino .params = "target", 981d7f9b689SLuiz Capitulino .help = "request VM to change it's memory allocation (in MB)", 98283fb1de2SLuiz Capitulino .user_print = monitor_user_noop, 983625a5befSAdam Litke .mhandler.cmd_async = do_balloon, 984625a5befSAdam Litke .async = 1, 985d7f9b689SLuiz Capitulino }, 986d7f9b689SLuiz Capitulino 9872313086aSBlue SwirlSTEXI 9882313086aSBlue Swirl@item balloon @var{value} 98970fcbbe7SStefan Weil@findex balloon 9902313086aSBlue SwirlRequest VM to change its memory allocation to @var{value} (in MB). 9912313086aSBlue SwirlETEXI 9922313086aSBlue Swirl 993d7f9b689SLuiz Capitulino { 994d7f9b689SLuiz Capitulino .name = "set_link", 995c9b26a4cSMarkus Armbruster .args_type = "name:s,up:b", 996c9b26a4cSMarkus Armbruster .params = "name on|off", 997d7f9b689SLuiz Capitulino .help = "change the link status of a network adapter", 9985369e3c0SMarkus Armbruster .user_print = monitor_user_noop, 9995369e3c0SMarkus Armbruster .mhandler.cmd_new = do_set_link, 1000d7f9b689SLuiz Capitulino }, 1001d7f9b689SLuiz Capitulino 10022313086aSBlue SwirlSTEXI 1003c9b26a4cSMarkus Armbruster@item set_link @var{name} [on|off] 100470fcbbe7SStefan Weil@findex set_link 1005c9b26a4cSMarkus ArmbrusterSwitch link @var{name} on (i.e. up) or off (i.e. down). 10062313086aSBlue SwirlETEXI 10072313086aSBlue Swirl 1008d7f9b689SLuiz Capitulino { 1009d7f9b689SLuiz Capitulino .name = "watchdog_action", 1010d7f9b689SLuiz Capitulino .args_type = "action:s", 1011d7f9b689SLuiz Capitulino .params = "[reset|shutdown|poweroff|pause|debug|none]", 1012d7f9b689SLuiz Capitulino .help = "change watchdog action", 1013af4ce882SLuiz Capitulino .mhandler.cmd = do_watchdog_action, 1014d7f9b689SLuiz Capitulino }, 1015d7f9b689SLuiz Capitulino 10162313086aSBlue SwirlSTEXI 10172313086aSBlue Swirl@item watchdog_action 101870fcbbe7SStefan Weil@findex watchdog_action 10192313086aSBlue SwirlChange watchdog action. 10202313086aSBlue SwirlETEXI 10212313086aSBlue Swirl 1022d7f9b689SLuiz Capitulino { 1023d7f9b689SLuiz Capitulino .name = "acl_show", 1024d7f9b689SLuiz Capitulino .args_type = "aclname:s", 1025d7f9b689SLuiz Capitulino .params = "aclname", 1026d7f9b689SLuiz Capitulino .help = "list rules in the access control list", 1027af4ce882SLuiz Capitulino .mhandler.cmd = do_acl_show, 1028d7f9b689SLuiz Capitulino }, 1029d7f9b689SLuiz Capitulino 10302313086aSBlue SwirlSTEXI 103115dfcd45SJan Kiszka@item acl_show @var{aclname} 103270fcbbe7SStefan Weil@findex acl_show 103315dfcd45SJan KiszkaList all the matching rules in the access control list, and the default 103415dfcd45SJan Kiszkapolicy. There are currently two named access control lists, 103515dfcd45SJan Kiszka@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client 103615dfcd45SJan Kiszkacertificate distinguished name, and SASL username respectively. 103715dfcd45SJan KiszkaETEXI 10382313086aSBlue Swirl 1039d7f9b689SLuiz Capitulino { 1040d7f9b689SLuiz Capitulino .name = "acl_policy", 1041d7f9b689SLuiz Capitulino .args_type = "aclname:s,policy:s", 1042d7f9b689SLuiz Capitulino .params = "aclname allow|deny", 1043d7f9b689SLuiz Capitulino .help = "set default access control list policy", 1044af4ce882SLuiz Capitulino .mhandler.cmd = do_acl_policy, 1045d7f9b689SLuiz Capitulino }, 1046d7f9b689SLuiz Capitulino 104715dfcd45SJan KiszkaSTEXI 1048cbbfacc6SJan Kiszka@item acl_policy @var{aclname} @code{allow|deny} 104970fcbbe7SStefan Weil@findex acl_policy 105015dfcd45SJan KiszkaSet the default access control list policy, used in the event that 10512313086aSBlue Swirlnone of the explicit rules match. The default policy at startup is 105215dfcd45SJan Kiszkaalways @code{deny}. 105315dfcd45SJan KiszkaETEXI 105415dfcd45SJan Kiszka 1055d7f9b689SLuiz Capitulino { 1056d7f9b689SLuiz Capitulino .name = "acl_add", 1057d7f9b689SLuiz Capitulino .args_type = "aclname:s,match:s,policy:s,index:i?", 1058d7f9b689SLuiz Capitulino .params = "aclname match allow|deny [index]", 1059d7f9b689SLuiz Capitulino .help = "add a match rule to the access control list", 1060af4ce882SLuiz Capitulino .mhandler.cmd = do_acl_add, 1061d7f9b689SLuiz Capitulino }, 1062d7f9b689SLuiz Capitulino 106315dfcd45SJan KiszkaSTEXI 10640e4aec98SMarkus Armbruster@item acl_add @var{aclname} @var{match} @code{allow|deny} [@var{index}] 10650e4aec98SMarkus Armbruster@findex acl_add 106615dfcd45SJan KiszkaAdd a match rule to the access control list, allowing or denying access. 106715dfcd45SJan KiszkaThe match will normally be an exact username or x509 distinguished name, 106815dfcd45SJan Kiszkabut can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to 106915dfcd45SJan Kiszkaallow all users in the @code{EXAMPLE.COM} kerberos realm. The match will 10702313086aSBlue Swirlnormally be appended to the end of the ACL, but can be inserted 107115dfcd45SJan Kiszkaearlier in the list if the optional @var{index} parameter is supplied. 107215dfcd45SJan KiszkaETEXI 107315dfcd45SJan Kiszka 1074d7f9b689SLuiz Capitulino { 1075d7f9b689SLuiz Capitulino .name = "acl_remove", 1076d7f9b689SLuiz Capitulino .args_type = "aclname:s,match:s", 1077d7f9b689SLuiz Capitulino .params = "aclname match", 1078d7f9b689SLuiz Capitulino .help = "remove a match rule from the access control list", 1079af4ce882SLuiz Capitulino .mhandler.cmd = do_acl_remove, 1080d7f9b689SLuiz Capitulino }, 1081d7f9b689SLuiz Capitulino 108215dfcd45SJan KiszkaSTEXI 108315dfcd45SJan Kiszka@item acl_remove @var{aclname} @var{match} 108470fcbbe7SStefan Weil@findex acl_remove 108515dfcd45SJan KiszkaRemove the specified match rule from the access control list. 108615dfcd45SJan KiszkaETEXI 108715dfcd45SJan Kiszka 1088d7f9b689SLuiz Capitulino { 1089d7f9b689SLuiz Capitulino .name = "acl_reset", 1090d7f9b689SLuiz Capitulino .args_type = "aclname:s", 1091d7f9b689SLuiz Capitulino .params = "aclname", 1092d7f9b689SLuiz Capitulino .help = "reset the access control list", 1093af4ce882SLuiz Capitulino .mhandler.cmd = do_acl_reset, 1094d7f9b689SLuiz Capitulino }, 1095d7f9b689SLuiz Capitulino 109615dfcd45SJan KiszkaSTEXI 10970e4aec98SMarkus Armbruster@item acl_reset @var{aclname} 10980e4aec98SMarkus Armbruster@findex acl_reset 109915dfcd45SJan KiszkaRemove all matches from the access control list, and set the default 11002313086aSBlue Swirlpolicy back to @code{deny}. 11012313086aSBlue SwirlETEXI 11022313086aSBlue Swirl 110379c4f6b0SHuang Ying#if defined(TARGET_I386) 1104d7f9b689SLuiz Capitulino 1105d7f9b689SLuiz Capitulino { 1106d7f9b689SLuiz Capitulino .name = "mce", 1107d7f9b689SLuiz Capitulino .args_type = "cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l", 1108d7f9b689SLuiz Capitulino .params = "cpu bank status mcgstatus addr misc", 1109d7f9b689SLuiz Capitulino .help = "inject a MCE on the given CPU", 1110af4ce882SLuiz Capitulino .mhandler.cmd = do_inject_mce, 1111d7f9b689SLuiz Capitulino }, 1112d7f9b689SLuiz Capitulino 111379c4f6b0SHuang Ying#endif 111479c4f6b0SHuang YingSTEXI 111579c4f6b0SHuang Ying@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc} 111670fcbbe7SStefan Weil@findex mce (x86) 111779c4f6b0SHuang YingInject an MCE on the given CPU (x86 only). 111879c4f6b0SHuang YingETEXI 111979c4f6b0SHuang Ying 1120d7f9b689SLuiz Capitulino { 1121d7f9b689SLuiz Capitulino .name = "getfd", 1122d7f9b689SLuiz Capitulino .args_type = "fdname:s", 1123d7f9b689SLuiz Capitulino .params = "getfd name", 1124d7f9b689SLuiz Capitulino .help = "receive a file descriptor via SCM rights and assign it a name", 1125f0d6000aSLuiz Capitulino .user_print = monitor_user_noop, 1126261394dbSLuiz Capitulino .mhandler.cmd_new = do_getfd, 1127d7f9b689SLuiz Capitulino }, 1128d7f9b689SLuiz Capitulino 1129f07918fdSMark McLoughlinSTEXI 1130f07918fdSMark McLoughlin@item getfd @var{fdname} 113170fcbbe7SStefan Weil@findex getfd 1132f07918fdSMark McLoughlinIf a file descriptor is passed alongside this command using the SCM_RIGHTS 1133f07918fdSMark McLoughlinmechanism on unix sockets, it is stored using the name @var{fdname} for 1134f07918fdSMark McLoughlinlater use by other monitor commands. 1135f07918fdSMark McLoughlinETEXI 1136f07918fdSMark McLoughlin 1137d7f9b689SLuiz Capitulino { 1138d7f9b689SLuiz Capitulino .name = "closefd", 1139d7f9b689SLuiz Capitulino .args_type = "fdname:s", 1140d7f9b689SLuiz Capitulino .params = "closefd name", 1141d7f9b689SLuiz Capitulino .help = "close a file descriptor previously passed via SCM rights", 114218f3a515SLuiz Capitulino .user_print = monitor_user_noop, 1143261394dbSLuiz Capitulino .mhandler.cmd_new = do_closefd, 1144d7f9b689SLuiz Capitulino }, 1145d7f9b689SLuiz Capitulino 1146f07918fdSMark McLoughlinSTEXI 1147f07918fdSMark McLoughlin@item closefd @var{fdname} 114870fcbbe7SStefan Weil@findex closefd 1149f07918fdSMark McLoughlinClose the file descriptor previously assigned to @var{fdname} using the 1150f07918fdSMark McLoughlin@code{getfd} command. This is only needed if the file descriptor was never 1151f07918fdSMark McLoughlinused by another monitor command. 1152f07918fdSMark McLoughlinETEXI 1153f07918fdSMark McLoughlin 1154a3a55a2eSLuiz Capitulino { 1155a3a55a2eSLuiz Capitulino .name = "block_passwd", 1156a3a55a2eSLuiz Capitulino .args_type = "device:B,password:s", 1157a3a55a2eSLuiz Capitulino .params = "block_passwd device password", 1158a3a55a2eSLuiz Capitulino .help = "set the password of encrypted block devices", 1159a3a55a2eSLuiz Capitulino .user_print = monitor_user_noop, 1160261394dbSLuiz Capitulino .mhandler.cmd_new = do_block_set_passwd, 1161a3a55a2eSLuiz Capitulino }, 1162a3a55a2eSLuiz Capitulino 1163a3a55a2eSLuiz CapitulinoSTEXI 1164a3a55a2eSLuiz Capitulino@item block_passwd @var{device} @var{password} 116570fcbbe7SStefan Weil@findex block_passwd 1166a3a55a2eSLuiz CapitulinoSet the encrypted device @var{device} password to @var{password} 1167a3a55a2eSLuiz CapitulinoETEXI 1168a3a55a2eSLuiz Capitulino 11694a7e1190SLuiz Capitulino { 11704a7e1190SLuiz Capitulino .name = "qmp_capabilities", 11714a7e1190SLuiz Capitulino .args_type = "", 11724a7e1190SLuiz Capitulino .params = "", 11734a7e1190SLuiz Capitulino .help = "enable QMP capabilities", 11744a7e1190SLuiz Capitulino .user_print = monitor_user_noop, 1175261394dbSLuiz Capitulino .mhandler.cmd_new = do_qmp_capabilities, 11764a7e1190SLuiz Capitulino }, 11774a7e1190SLuiz Capitulino 11784a7e1190SLuiz CapitulinoSTEXI 11794a7e1190SLuiz Capitulino@item qmp_capabilities 118054d7cf13SMarkus Armbruster@findex qmp_capabilities 11814a7e1190SLuiz CapitulinoEnable the specified QMP capabilities 11824a7e1190SLuiz CapitulinoETEXI 11834a7e1190SLuiz Capitulino 11842313086aSBlue SwirlSTEXI 11852313086aSBlue Swirl@end table 11862313086aSBlue SwirlETEXI 1187