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|?", 14129be006SWenchao Xia .args_type = "name:S?", 15d7f9b689SLuiz Capitulino .params = "[cmd]", 16d7f9b689SLuiz Capitulino .help = "show the help", 172b9e3576SMarc-André Lureau .cmd = do_help_cmd, 1831785f1bSDr. David Alan Gilbert .flags = "p", 19d7f9b689SLuiz Capitulino }, 20d7f9b689SLuiz Capitulino 212313086aSBlue SwirlSTEXI 222313086aSBlue Swirl@item help or ? [@var{cmd}] 2370fcbbe7SStefan Weil@findex help 242313086aSBlue SwirlShow the help for all commands or just for command @var{cmd}. 252313086aSBlue SwirlETEXI 262313086aSBlue Swirl 27d7f9b689SLuiz Capitulino { 28d7f9b689SLuiz Capitulino .name = "commit", 29d7f9b689SLuiz Capitulino .args_type = "device:B", 30d7f9b689SLuiz Capitulino .params = "device|all", 31d7f9b689SLuiz Capitulino .help = "commit changes to the disk images (if -snapshot is used) or backing files", 322b9e3576SMarc-André Lureau .cmd = hmp_commit, 33d7f9b689SLuiz Capitulino }, 34d7f9b689SLuiz Capitulino 352313086aSBlue SwirlSTEXI 362313086aSBlue Swirl@item commit 3770fcbbe7SStefan Weil@findex commit 382313086aSBlue SwirlCommit changes to the disk images (if -snapshot is used) or backing files. 3937222900SJeff CodyIf the backing file is smaller than the snapshot, then the backing file will be 4037222900SJeff Codyresized to be the same size as the snapshot. If the snapshot is smaller than 4137222900SJeff Codythe backing file, the backing file will not be truncated. If you want the 4237222900SJeff Codybacking file to match the size of the smaller snapshot, you can safely truncate 4337222900SJeff Codyit yourself once the commit operation successfully completes. 442313086aSBlue SwirlETEXI 452313086aSBlue Swirl 46d7f9b689SLuiz Capitulino { 47d7f9b689SLuiz Capitulino .name = "q|quit", 48d7f9b689SLuiz Capitulino .args_type = "", 49d7f9b689SLuiz Capitulino .params = "", 50d7f9b689SLuiz Capitulino .help = "quit the emulator", 512b9e3576SMarc-André Lureau .cmd = hmp_quit, 52d7f9b689SLuiz Capitulino }, 53d7f9b689SLuiz Capitulino 542313086aSBlue SwirlSTEXI 552313086aSBlue Swirl@item q or quit 5670fcbbe7SStefan Weil@findex quit 572313086aSBlue SwirlQuit the emulator. 582313086aSBlue SwirlETEXI 592313086aSBlue Swirl 60d7f9b689SLuiz Capitulino { 618e8581e6SDr. David Alan Gilbert .name = "exit_preconfig", 628e8581e6SDr. David Alan Gilbert .args_type = "", 638e8581e6SDr. David Alan Gilbert .params = "", 648e8581e6SDr. David Alan Gilbert .help = "exit the preconfig state", 658e8581e6SDr. David Alan Gilbert .cmd = hmp_exit_preconfig, 668e8581e6SDr. David Alan Gilbert .flags = "p", 678e8581e6SDr. David Alan Gilbert }, 688e8581e6SDr. David Alan Gilbert 698e8581e6SDr. David Alan GilbertSTEXI 708e8581e6SDr. David Alan Gilbert@item exit_preconfig 718e8581e6SDr. David Alan Gilbert@findex exit_preconfig 728e8581e6SDr. David Alan GilbertThis command makes QEMU exit the preconfig state and proceed with 738e8581e6SDr. David Alan GilbertVM initialization using configuration data provided on the command line 748e8581e6SDr. David Alan Gilbertand via the QMP monitor during the preconfig state. The command is only 758e8581e6SDr. David Alan Gilbertavailable during the preconfig state (i.e. when the --preconfig command 768e8581e6SDr. David Alan Gilbertline option was in use). 778e8581e6SDr. David Alan GilbertETEXI 788e8581e6SDr. David Alan Gilbert 798e8581e6SDr. David Alan Gilbert { 806d4a2b3aSChristoph Hellwig .name = "block_resize", 816d4a2b3aSChristoph Hellwig .args_type = "device:B,size:o", 826d4a2b3aSChristoph Hellwig .params = "device size", 836d4a2b3aSChristoph Hellwig .help = "resize a block image", 842b9e3576SMarc-André Lureau .cmd = hmp_block_resize, 856d4a2b3aSChristoph Hellwig }, 866d4a2b3aSChristoph Hellwig 876d4a2b3aSChristoph HellwigSTEXI 886d4a2b3aSChristoph Hellwig@item block_resize 896d4a2b3aSChristoph Hellwig@findex block_resize 906d4a2b3aSChristoph HellwigResize a block image while a guest is running. Usually requires guest 916d4a2b3aSChristoph Hellwigaction to see the updated size. Resize to a lower size is supported, 926d4a2b3aSChristoph Hellwigbut should be used with extreme caution. Note that this command only 936d4a2b3aSChristoph Hellwigresizes image files, it can not resize block devices like LVM volumes. 946d4a2b3aSChristoph HellwigETEXI 956d4a2b3aSChristoph Hellwig 9612bd451fSStefan Hajnoczi { 9712bd451fSStefan Hajnoczi .name = "block_stream", 98c83c66c3SStefan Hajnoczi .args_type = "device:B,speed:o?,base:s?", 99c83c66c3SStefan Hajnoczi .params = "device [speed [base]]", 10012bd451fSStefan Hajnoczi .help = "copy data from a backing file into a block device", 1012b9e3576SMarc-André Lureau .cmd = hmp_block_stream, 10212bd451fSStefan Hajnoczi }, 10312bd451fSStefan Hajnoczi 10412bd451fSStefan HajnocziSTEXI 10512bd451fSStefan Hajnoczi@item block_stream 10612bd451fSStefan Hajnoczi@findex block_stream 10712bd451fSStefan HajnocziCopy data from a backing file into a block device. 10812bd451fSStefan HajnocziETEXI 1096d4a2b3aSChristoph Hellwig 1106d4a2b3aSChristoph Hellwig { 1112d47c6e9SStefan Hajnoczi .name = "block_job_set_speed", 112882ec7ceSStefan Hajnoczi .args_type = "device:B,speed:o", 113882ec7ceSStefan Hajnoczi .params = "device speed", 1142d47c6e9SStefan Hajnoczi .help = "set maximum speed for a background block operation", 1152b9e3576SMarc-André Lureau .cmd = hmp_block_job_set_speed, 1162d47c6e9SStefan Hajnoczi }, 1172d47c6e9SStefan Hajnoczi 1182d47c6e9SStefan HajnocziSTEXI 1194451b799SPaolo Bonzini@item block_job_set_speed 1204451b799SPaolo Bonzini@findex block_job_set_speed 1212d47c6e9SStefan HajnocziSet maximum speed for a background block operation. 1222d47c6e9SStefan HajnocziETEXI 1232d47c6e9SStefan Hajnoczi 1242d47c6e9SStefan Hajnoczi { 125370521a1SStefan Hajnoczi .name = "block_job_cancel", 1266e37fb81SPaolo Bonzini .args_type = "force:-f,device:B", 1276e37fb81SPaolo Bonzini .params = "[-f] device", 1286e37fb81SPaolo Bonzini .help = "stop an active background block operation (use -f" 129b76e4458SLiang Li "\n\t\t\t if you want to abort the operation immediately" 130b76e4458SLiang Li "\n\t\t\t instead of keep running until data is in sync)", 1312b9e3576SMarc-André Lureau .cmd = hmp_block_job_cancel, 132370521a1SStefan Hajnoczi }, 133370521a1SStefan Hajnoczi 134370521a1SStefan HajnocziSTEXI 135370521a1SStefan Hajnoczi@item block_job_cancel 136370521a1SStefan Hajnoczi@findex block_job_cancel 137aeae883bSPaolo BonziniStop an active background block operation (streaming, mirroring). 138aeae883bSPaolo BonziniETEXI 139aeae883bSPaolo Bonzini 140aeae883bSPaolo Bonzini { 141aeae883bSPaolo Bonzini .name = "block_job_complete", 142aeae883bSPaolo Bonzini .args_type = "device:B", 143aeae883bSPaolo Bonzini .params = "device", 144aeae883bSPaolo Bonzini .help = "stop an active background block operation", 1452b9e3576SMarc-André Lureau .cmd = hmp_block_job_complete, 146aeae883bSPaolo Bonzini }, 147aeae883bSPaolo Bonzini 148aeae883bSPaolo BonziniSTEXI 149aeae883bSPaolo Bonzini@item block_job_complete 150aeae883bSPaolo Bonzini@findex block_job_complete 151aeae883bSPaolo BonziniManually trigger completion of an active background block operation. 152aeae883bSPaolo BonziniFor mirroring, this will switch the device to the destination path. 153370521a1SStefan HajnocziETEXI 154370521a1SStefan Hajnoczi 155370521a1SStefan Hajnoczi { 1566e37fb81SPaolo Bonzini .name = "block_job_pause", 1576e37fb81SPaolo Bonzini .args_type = "device:B", 1586e37fb81SPaolo Bonzini .params = "device", 1596e37fb81SPaolo Bonzini .help = "pause an active background block operation", 1602b9e3576SMarc-André Lureau .cmd = hmp_block_job_pause, 1616e37fb81SPaolo Bonzini }, 1626e37fb81SPaolo Bonzini 1636e37fb81SPaolo BonziniSTEXI 1646e37fb81SPaolo Bonzini@item block_job_pause 1656e37fb81SPaolo Bonzini@findex block_job_pause 1666e37fb81SPaolo BonziniPause an active block streaming operation. 1676e37fb81SPaolo BonziniETEXI 1686e37fb81SPaolo Bonzini 1696e37fb81SPaolo Bonzini { 1706e37fb81SPaolo Bonzini .name = "block_job_resume", 1716e37fb81SPaolo Bonzini .args_type = "device:B", 1726e37fb81SPaolo Bonzini .params = "device", 1736e37fb81SPaolo Bonzini .help = "resume a paused background block operation", 1742b9e3576SMarc-André Lureau .cmd = hmp_block_job_resume, 1756e37fb81SPaolo Bonzini }, 1766e37fb81SPaolo Bonzini 1776e37fb81SPaolo BonziniSTEXI 1786e37fb81SPaolo Bonzini@item block_job_resume 1796e37fb81SPaolo Bonzini@findex block_job_resume 1806e37fb81SPaolo BonziniResume a paused block streaming operation. 1816e37fb81SPaolo BonziniETEXI 1826e37fb81SPaolo Bonzini 1836e37fb81SPaolo Bonzini { 184d7f9b689SLuiz Capitulino .name = "eject", 18578d714e0SLuiz Capitulino .args_type = "force:-f,device:B", 186d7f9b689SLuiz Capitulino .params = "[-f] device", 187d7f9b689SLuiz Capitulino .help = "eject a removable medium (use -f to force it)", 1882b9e3576SMarc-André Lureau .cmd = hmp_eject, 189d7f9b689SLuiz Capitulino }, 190d7f9b689SLuiz Capitulino 1912313086aSBlue SwirlSTEXI 1922313086aSBlue Swirl@item eject [-f] @var{device} 19370fcbbe7SStefan Weil@findex eject 1942313086aSBlue SwirlEject a removable medium (use -f to force it). 1952313086aSBlue SwirlETEXI 1962313086aSBlue Swirl 197d7f9b689SLuiz Capitulino { 1989063f814SRyan Harper .name = "drive_del", 199f7bdc41aSHani Benhabiles .args_type = "id:B", 2009063f814SRyan Harper .params = "device", 2019063f814SRyan Harper .help = "remove host block device", 2022b9e3576SMarc-André Lureau .cmd = hmp_drive_del, 2039063f814SRyan Harper }, 2049063f814SRyan Harper 2059063f814SRyan HarperSTEXI 2069063f814SRyan Harper@item drive_del @var{device} 2079063f814SRyan Harper@findex drive_del 2089063f814SRyan HarperRemove host block device. The result is that guest generated IO is no longer 2099063f814SRyan Harpersubmitted against the host device underlying the disk. Once a drive has 2109063f814SRyan Harperbeen deleted, the QEMU Block layer returns -EIO which results in IO 2119063f814SRyan Harpererrors in the guest for applications that are reading/writing to the device. 212293c51a6SStefan HajnocziThese errors are always reported to the guest, regardless of the drive's error 213293c51a6SStefan Hajnocziactions (drive options rerror, werror). 2149063f814SRyan HarperETEXI 2159063f814SRyan Harper 2169063f814SRyan Harper { 217d7f9b689SLuiz Capitulino .name = "change", 218baead0abSMax Reitz .args_type = "device:B,target:F,arg:s?,read-only-mode:s?", 219baead0abSMax Reitz .params = "device filename [format [read-only-mode]]", 220d7f9b689SLuiz Capitulino .help = "change a removable medium, optional format", 2212b9e3576SMarc-André Lureau .cmd = hmp_change, 222d7f9b689SLuiz Capitulino }, 223d7f9b689SLuiz Capitulino 2242313086aSBlue SwirlSTEXI 2252313086aSBlue Swirl@item change @var{device} @var{setting} 22670fcbbe7SStefan Weil@findex change 2272313086aSBlue SwirlChange the configuration of a device. 2282313086aSBlue Swirl 2292313086aSBlue Swirl@table @option 230baead0abSMax Reitz@item change @var{diskdevice} @var{filename} [@var{format} [@var{read-only-mode}]] 2312313086aSBlue SwirlChange the medium for a removable disk device to point to @var{filename}. eg 2322313086aSBlue Swirl 2332313086aSBlue Swirl@example 2342313086aSBlue Swirl(qemu) change ide1-cd0 /path/to/some.iso 2352313086aSBlue Swirl@end example 2362313086aSBlue Swirl 2372313086aSBlue Swirl@var{format} is optional. 2382313086aSBlue Swirl 239baead0abSMax Reitz@var{read-only-mode} may be used to change the read-only status of the device. 240baead0abSMax ReitzIt accepts the following values: 241baead0abSMax Reitz 242baead0abSMax Reitz@table @var 243baead0abSMax Reitz@item retain 244baead0abSMax ReitzRetains the current status; this is the default. 245baead0abSMax Reitz 246baead0abSMax Reitz@item read-only 247baead0abSMax ReitzMakes the device read-only. 248baead0abSMax Reitz 249baead0abSMax Reitz@item read-write 250baead0abSMax ReitzMakes the device writable. 251baead0abSMax Reitz@end table 252baead0abSMax Reitz 2532313086aSBlue Swirl@item change vnc @var{display},@var{options} 2542313086aSBlue SwirlChange the configuration of the VNC server. The valid syntax for @var{display} 2552313086aSBlue Swirland @var{options} are described at @ref{sec_invocation}. eg 2562313086aSBlue Swirl 2572313086aSBlue Swirl@example 2582313086aSBlue Swirl(qemu) change vnc localhost:1 2592313086aSBlue Swirl@end example 2602313086aSBlue Swirl 2612313086aSBlue Swirl@item change vnc password [@var{password}] 2622313086aSBlue Swirl 2632313086aSBlue SwirlChange the password associated with the VNC server. If the new password is not 2642313086aSBlue Swirlsupplied, the monitor will prompt for it to be entered. VNC passwords are only 2652313086aSBlue Swirlsignificant up to 8 letters. eg 2662313086aSBlue Swirl 2672313086aSBlue Swirl@example 2682313086aSBlue Swirl(qemu) change vnc password 2692313086aSBlue SwirlPassword: ******** 2702313086aSBlue Swirl@end example 2712313086aSBlue Swirl 2722313086aSBlue Swirl@end table 2732313086aSBlue SwirlETEXI 2742313086aSBlue Swirl 275d7f9b689SLuiz Capitulino { 276d7f9b689SLuiz Capitulino .name = "screendump", 277f771c544SThomas Huth .args_type = "filename:F,device:s?,head:i?", 278f771c544SThomas Huth .params = "filename [device [head]]", 279f771c544SThomas Huth .help = "save screen from head 'head' of display device 'device' " 280f771c544SThomas Huth "into PPM image 'filename'", 2812b9e3576SMarc-André Lureau .cmd = hmp_screendump, 282d7f9b689SLuiz Capitulino }, 283d7f9b689SLuiz Capitulino 2842313086aSBlue SwirlSTEXI 2852313086aSBlue Swirl@item screendump @var{filename} 28670fcbbe7SStefan Weil@findex screendump 2872313086aSBlue SwirlSave screen into PPM image @var{filename}. 2882313086aSBlue SwirlETEXI 2892313086aSBlue Swirl 290d7f9b689SLuiz Capitulino { 291d7f9b689SLuiz Capitulino .name = "logfile", 292d7f9b689SLuiz Capitulino .args_type = "filename:F", 293d7f9b689SLuiz Capitulino .params = "filename", 294d7f9b689SLuiz Capitulino .help = "output logs to 'filename'", 2952b9e3576SMarc-André Lureau .cmd = hmp_logfile, 296d7f9b689SLuiz Capitulino }, 297d7f9b689SLuiz Capitulino 2982313086aSBlue SwirlSTEXI 2992313086aSBlue Swirl@item logfile @var{filename} 30070fcbbe7SStefan Weil@findex logfile 3012313086aSBlue SwirlOutput logs to @var{filename}. 3022313086aSBlue SwirlETEXI 3032313086aSBlue Swirl 30422890ab5SPrerna Saxena { 30522890ab5SPrerna Saxena .name = "trace-event", 30677e2b172SLluís Vilanova .args_type = "name:s,option:b,vcpu:i?", 30777e2b172SLluís Vilanova .params = "name on|off [vcpu]", 30877e2b172SLluís Vilanova .help = "changes status of a specific trace event " 30977e2b172SLluís Vilanova "(vcpu: vCPU to set, default is all)", 3102b9e3576SMarc-André Lureau .cmd = hmp_trace_event, 311987bd270SDr. David Alan Gilbert .command_completion = trace_event_completion, 31222890ab5SPrerna Saxena }, 31322890ab5SPrerna Saxena 31422890ab5SPrerna SaxenaSTEXI 31522890ab5SPrerna Saxena@item trace-event 31622890ab5SPrerna Saxena@findex trace-event 31722890ab5SPrerna Saxenachanges status of a trace event 31822890ab5SPrerna SaxenaETEXI 319c5ceb523SStefan Hajnoczi 320c45a8168SMichael Roth#if defined(CONFIG_TRACE_SIMPLE) 321c5ceb523SStefan Hajnoczi { 322c5ceb523SStefan Hajnoczi .name = "trace-file", 323c5ceb523SStefan Hajnoczi .args_type = "op:s?,arg:F?", 324c5ceb523SStefan Hajnoczi .params = "on|off|flush|set [arg]", 325c5ceb523SStefan Hajnoczi .help = "open, close, or flush trace file, or set a new file name", 3262b9e3576SMarc-André Lureau .cmd = hmp_trace_file, 327c5ceb523SStefan Hajnoczi }, 328c5ceb523SStefan Hajnoczi 329c5ceb523SStefan HajnocziSTEXI 330c5ceb523SStefan Hajnoczi@item trace-file on|off|flush 331c5ceb523SStefan Hajnoczi@findex trace-file 332c5ceb523SStefan HajnocziOpen, close, or flush the trace file. If no argument is given, the status of the trace file is displayed. 333c5ceb523SStefan HajnocziETEXI 33422890ab5SPrerna Saxena#endif 33522890ab5SPrerna Saxena 336d7f9b689SLuiz Capitulino { 337d7f9b689SLuiz Capitulino .name = "log", 338d7f9b689SLuiz Capitulino .args_type = "items:s", 339d7f9b689SLuiz Capitulino .params = "item1[,...]", 340989b697dSPeter Maydell .help = "activate logging of the specified items", 3412b9e3576SMarc-André Lureau .cmd = hmp_log, 342d7f9b689SLuiz Capitulino }, 343d7f9b689SLuiz Capitulino 3442313086aSBlue SwirlSTEXI 3452313086aSBlue Swirl@item log @var{item1}[,...] 34670fcbbe7SStefan Weil@findex log 347989b697dSPeter MaydellActivate logging of the specified items. 3482313086aSBlue SwirlETEXI 3492313086aSBlue Swirl 350d7f9b689SLuiz Capitulino { 351d7f9b689SLuiz Capitulino .name = "savevm", 352d7f9b689SLuiz Capitulino .args_type = "name:s?", 353*6ca08045SDaniel Henrique Barboza .params = "tag", 354*6ca08045SDaniel Henrique Barboza .help = "save a VM snapshot. If no tag is provided, a new snapshot is created", 3552b9e3576SMarc-André Lureau .cmd = hmp_savevm, 356d7f9b689SLuiz Capitulino }, 357d7f9b689SLuiz Capitulino 3582313086aSBlue SwirlSTEXI 359*6ca08045SDaniel Henrique Barboza@item savevm @var{tag} 36070fcbbe7SStefan Weil@findex savevm 3612313086aSBlue SwirlCreate a snapshot of the whole virtual machine. If @var{tag} is 3622313086aSBlue Swirlprovided, it is used as human readable identifier. If there is already 363*6ca08045SDaniel Henrique Barbozaa snapshot with the same tag, it is replaced. More info at 3642313086aSBlue Swirl@ref{vm_snapshots}. 365*6ca08045SDaniel Henrique Barboza 366*6ca08045SDaniel Henrique BarbozaSince 4.0, savevm stopped allowing the snapshot id to be set, accepting 367*6ca08045SDaniel Henrique Barbozaonly @var{tag} as parameter. 3682313086aSBlue SwirlETEXI 3692313086aSBlue Swirl 370d7f9b689SLuiz Capitulino { 371d7f9b689SLuiz Capitulino .name = "loadvm", 372d7f9b689SLuiz Capitulino .args_type = "name:s", 373*6ca08045SDaniel Henrique Barboza .params = "tag", 374*6ca08045SDaniel Henrique Barboza .help = "restore a VM snapshot from its tag", 3752b9e3576SMarc-André Lureau .cmd = hmp_loadvm, 376b21631f3SHani Benhabiles .command_completion = loadvm_completion, 377d7f9b689SLuiz Capitulino }, 378d7f9b689SLuiz Capitulino 3792313086aSBlue SwirlSTEXI 380*6ca08045SDaniel Henrique Barboza@item loadvm @var{tag} 38170fcbbe7SStefan Weil@findex loadvm 3822313086aSBlue SwirlSet the whole virtual machine to the snapshot identified by the tag 383*6ca08045SDaniel Henrique Barboza@var{tag}. 384*6ca08045SDaniel Henrique Barboza 385*6ca08045SDaniel Henrique BarbozaSince 4.0, loadvm stopped accepting snapshot id as parameter. 3862313086aSBlue SwirlETEXI 3872313086aSBlue Swirl 388d7f9b689SLuiz Capitulino { 389d7f9b689SLuiz Capitulino .name = "delvm", 390d7f9b689SLuiz Capitulino .args_type = "name:s", 391*6ca08045SDaniel Henrique Barboza .params = "tag", 392*6ca08045SDaniel Henrique Barboza .help = "delete a VM snapshot from its tag", 3932b9e3576SMarc-André Lureau .cmd = hmp_delvm, 394b21631f3SHani Benhabiles .command_completion = delvm_completion, 395d7f9b689SLuiz Capitulino }, 396d7f9b689SLuiz Capitulino 3972313086aSBlue SwirlSTEXI 398*6ca08045SDaniel Henrique Barboza@item delvm @var{tag} 39970fcbbe7SStefan Weil@findex delvm 400*6ca08045SDaniel Henrique BarbozaDelete the snapshot identified by @var{tag}. 401*6ca08045SDaniel Henrique Barboza 402*6ca08045SDaniel Henrique BarbozaSince 4.0, delvm stopped deleting snapshots by snapshot id, accepting 403*6ca08045SDaniel Henrique Barbozaonly @var{tag} as parameter. 4042313086aSBlue SwirlETEXI 4052313086aSBlue Swirl 406d7f9b689SLuiz Capitulino { 407d7f9b689SLuiz Capitulino .name = "singlestep", 408d7f9b689SLuiz Capitulino .args_type = "option:s?", 409d7f9b689SLuiz Capitulino .params = "[on|off]", 410d7f9b689SLuiz Capitulino .help = "run emulation in singlestep mode or switch to normal mode", 4112b9e3576SMarc-André Lureau .cmd = hmp_singlestep, 412d7f9b689SLuiz Capitulino }, 413d7f9b689SLuiz Capitulino 4142313086aSBlue SwirlSTEXI 4152313086aSBlue Swirl@item singlestep [off] 41670fcbbe7SStefan Weil@findex singlestep 4172313086aSBlue SwirlRun the emulation in single step mode. 4182313086aSBlue SwirlIf called with option off, the emulation returns to normal mode. 4192313086aSBlue SwirlETEXI 4202313086aSBlue Swirl 421d7f9b689SLuiz Capitulino { 422d7f9b689SLuiz Capitulino .name = "stop", 423d7f9b689SLuiz Capitulino .args_type = "", 424d7f9b689SLuiz Capitulino .params = "", 425d7f9b689SLuiz Capitulino .help = "stop emulation", 4262b9e3576SMarc-André Lureau .cmd = hmp_stop, 427d7f9b689SLuiz Capitulino }, 428d7f9b689SLuiz Capitulino 4292313086aSBlue SwirlSTEXI 4302313086aSBlue Swirl@item stop 43170fcbbe7SStefan Weil@findex stop 4322313086aSBlue SwirlStop emulation. 4332313086aSBlue SwirlETEXI 4342313086aSBlue Swirl 435d7f9b689SLuiz Capitulino { 436d7f9b689SLuiz Capitulino .name = "c|cont", 437d7f9b689SLuiz Capitulino .args_type = "", 438d7f9b689SLuiz Capitulino .params = "", 439d7f9b689SLuiz Capitulino .help = "resume emulation", 4402b9e3576SMarc-André Lureau .cmd = hmp_cont, 441d7f9b689SLuiz Capitulino }, 442d7f9b689SLuiz Capitulino 4432313086aSBlue SwirlSTEXI 4442313086aSBlue Swirl@item c or cont 44570fcbbe7SStefan Weil@findex cont 4462313086aSBlue SwirlResume emulation. 4472313086aSBlue SwirlETEXI 4482313086aSBlue Swirl 449d7f9b689SLuiz Capitulino { 4509b9df25aSGerd Hoffmann .name = "system_wakeup", 4519b9df25aSGerd Hoffmann .args_type = "", 4529b9df25aSGerd Hoffmann .params = "", 4539b9df25aSGerd Hoffmann .help = "wakeup guest from suspend", 4542b9e3576SMarc-André Lureau .cmd = hmp_system_wakeup, 4559b9df25aSGerd Hoffmann }, 4569b9df25aSGerd Hoffmann 4579b9df25aSGerd HoffmannSTEXI 4589b9df25aSGerd Hoffmann@item system_wakeup 4599b9df25aSGerd Hoffmann@findex system_wakeup 4609b9df25aSGerd HoffmannWakeup guest from suspend. 4619b9df25aSGerd HoffmannETEXI 4629b9df25aSGerd Hoffmann 4639b9df25aSGerd Hoffmann { 464d7f9b689SLuiz Capitulino .name = "gdbserver", 465d7f9b689SLuiz Capitulino .args_type = "device:s?", 466d7f9b689SLuiz Capitulino .params = "[device]", 467d7f9b689SLuiz Capitulino .help = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'", 4682b9e3576SMarc-André Lureau .cmd = hmp_gdbserver, 469d7f9b689SLuiz Capitulino }, 470d7f9b689SLuiz Capitulino 4712313086aSBlue SwirlSTEXI 4722313086aSBlue Swirl@item gdbserver [@var{port}] 47370fcbbe7SStefan Weil@findex gdbserver 4742313086aSBlue SwirlStart gdbserver session (default @var{port}=1234) 4752313086aSBlue SwirlETEXI 4762313086aSBlue Swirl 477d7f9b689SLuiz Capitulino { 478d7f9b689SLuiz Capitulino .name = "x", 479d7f9b689SLuiz Capitulino .args_type = "fmt:/,addr:l", 480d7f9b689SLuiz Capitulino .params = "/fmt addr", 481d7f9b689SLuiz Capitulino .help = "virtual memory dump starting at 'addr'", 4822b9e3576SMarc-André Lureau .cmd = hmp_memory_dump, 483d7f9b689SLuiz Capitulino }, 484d7f9b689SLuiz Capitulino 4852313086aSBlue SwirlSTEXI 4862313086aSBlue Swirl@item x/fmt @var{addr} 48770fcbbe7SStefan Weil@findex x 4882313086aSBlue SwirlVirtual memory dump starting at @var{addr}. 4892313086aSBlue SwirlETEXI 4902313086aSBlue Swirl 491d7f9b689SLuiz Capitulino { 492d7f9b689SLuiz Capitulino .name = "xp", 493d7f9b689SLuiz Capitulino .args_type = "fmt:/,addr:l", 494d7f9b689SLuiz Capitulino .params = "/fmt addr", 495d7f9b689SLuiz Capitulino .help = "physical memory dump starting at 'addr'", 4962b9e3576SMarc-André Lureau .cmd = hmp_physical_memory_dump, 497d7f9b689SLuiz Capitulino }, 498d7f9b689SLuiz Capitulino 4992313086aSBlue SwirlSTEXI 5002313086aSBlue Swirl@item xp /@var{fmt} @var{addr} 50170fcbbe7SStefan Weil@findex xp 5022313086aSBlue SwirlPhysical memory dump starting at @var{addr}. 5032313086aSBlue Swirl 5042313086aSBlue Swirl@var{fmt} is a format which tells the command how to format the 5052313086aSBlue Swirldata. Its syntax is: @option{/@{count@}@{format@}@{size@}} 5062313086aSBlue Swirl 5072313086aSBlue Swirl@table @var 5082313086aSBlue Swirl@item count 5092313086aSBlue Swirlis the number of items to be dumped. 5102313086aSBlue Swirl 5112313086aSBlue Swirl@item format 5122313086aSBlue Swirlcan be x (hex), d (signed decimal), u (unsigned decimal), o (octal), 5132313086aSBlue Swirlc (char) or i (asm instruction). 5142313086aSBlue Swirl 5152313086aSBlue Swirl@item size 5162313086aSBlue Swirlcan be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86, 5172313086aSBlue Swirl@code{h} or @code{w} can be specified with the @code{i} format to 5182313086aSBlue Swirlrespectively select 16 or 32 bit code instruction size. 5192313086aSBlue Swirl 5202313086aSBlue Swirl@end table 5212313086aSBlue Swirl 5222313086aSBlue SwirlExamples: 5232313086aSBlue Swirl@itemize 5242313086aSBlue Swirl@item 5252313086aSBlue SwirlDump 10 instructions at the current instruction pointer: 5262313086aSBlue Swirl@example 5272313086aSBlue Swirl(qemu) x/10i $eip 5282313086aSBlue Swirl0x90107063: ret 5292313086aSBlue Swirl0x90107064: sti 5302313086aSBlue Swirl0x90107065: lea 0x0(%esi,1),%esi 5312313086aSBlue Swirl0x90107069: lea 0x0(%edi,1),%edi 5322313086aSBlue Swirl0x90107070: ret 5332313086aSBlue Swirl0x90107071: jmp 0x90107080 5342313086aSBlue Swirl0x90107073: nop 5352313086aSBlue Swirl0x90107074: nop 5362313086aSBlue Swirl0x90107075: nop 5372313086aSBlue Swirl0x90107076: nop 5382313086aSBlue Swirl@end example 5392313086aSBlue Swirl 5402313086aSBlue Swirl@item 5412313086aSBlue SwirlDump 80 16 bit values at the start of the video memory. 5422313086aSBlue Swirl@smallexample 5432313086aSBlue Swirl(qemu) xp/80hx 0xb8000 5442313086aSBlue Swirl0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42 5452313086aSBlue Swirl0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41 5462313086aSBlue Swirl0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72 5472313086aSBlue Swirl0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73 5482313086aSBlue Swirl0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20 5492313086aSBlue Swirl0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720 5502313086aSBlue Swirl0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 5512313086aSBlue Swirl0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 5522313086aSBlue Swirl0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 5532313086aSBlue Swirl0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 5542313086aSBlue Swirl@end smallexample 5552313086aSBlue Swirl@end itemize 5562313086aSBlue SwirlETEXI 5572313086aSBlue Swirl 558d7f9b689SLuiz Capitulino { 559e9628441SPaolo Bonzini .name = "gpa2hva", 560e9628441SPaolo Bonzini .args_type = "addr:l", 561e9628441SPaolo Bonzini .params = "addr", 562e9628441SPaolo Bonzini .help = "print the host virtual address corresponding to a guest physical address", 563e9628441SPaolo Bonzini .cmd = hmp_gpa2hva, 564e9628441SPaolo Bonzini }, 565e9628441SPaolo Bonzini 566e9628441SPaolo BonziniSTEXI 567e9628441SPaolo Bonzini@item gpa2hva @var{addr} 568e9628441SPaolo Bonzini@findex gpa2hva 569e9628441SPaolo BonziniPrint the host virtual address at which the guest's physical address @var{addr} 570e9628441SPaolo Bonziniis mapped. 571e9628441SPaolo BonziniETEXI 572e9628441SPaolo Bonzini 573e9628441SPaolo Bonzini#ifdef CONFIG_LINUX 574e9628441SPaolo Bonzini { 575e9628441SPaolo Bonzini .name = "gpa2hpa", 576e9628441SPaolo Bonzini .args_type = "addr:l", 577e9628441SPaolo Bonzini .params = "addr", 578e9628441SPaolo Bonzini .help = "print the host physical address corresponding to a guest physical address", 579e9628441SPaolo Bonzini .cmd = hmp_gpa2hpa, 580e9628441SPaolo Bonzini }, 581e9628441SPaolo Bonzini#endif 582e9628441SPaolo Bonzini 583e9628441SPaolo BonziniSTEXI 584e9628441SPaolo Bonzini@item gpa2hpa @var{addr} 585e9628441SPaolo Bonzini@findex gpa2hpa 586e9628441SPaolo BonziniPrint the host physical address at which the guest's physical address @var{addr} 587e9628441SPaolo Bonziniis mapped. 588e9628441SPaolo BonziniETEXI 589e9628441SPaolo Bonzini 590e9628441SPaolo Bonzini { 591d7f9b689SLuiz Capitulino .name = "p|print", 592d7f9b689SLuiz Capitulino .args_type = "fmt:/,val:l", 593d7f9b689SLuiz Capitulino .params = "/fmt expr", 594d7f9b689SLuiz Capitulino .help = "print expression value (use $reg for CPU register access)", 5952b9e3576SMarc-André Lureau .cmd = do_print, 596d7f9b689SLuiz Capitulino }, 597d7f9b689SLuiz Capitulino 5982313086aSBlue SwirlSTEXI 5992313086aSBlue Swirl@item p or print/@var{fmt} @var{expr} 60070fcbbe7SStefan Weil@findex print 6012313086aSBlue SwirlPrint expression value. Only the @var{format} part of @var{fmt} is 6022313086aSBlue Swirlused. 6032313086aSBlue SwirlETEXI 6042313086aSBlue Swirl 605d7f9b689SLuiz Capitulino { 606d7f9b689SLuiz Capitulino .name = "i", 607d7f9b689SLuiz Capitulino .args_type = "fmt:/,addr:i,index:i.", 608d7f9b689SLuiz Capitulino .params = "/fmt addr", 609d7f9b689SLuiz Capitulino .help = "I/O port read", 6102b9e3576SMarc-André Lureau .cmd = hmp_ioport_read, 611d7f9b689SLuiz Capitulino }, 612d7f9b689SLuiz Capitulino 6132313086aSBlue SwirlSTEXI 614b76d799eSMarkus Armbruster@item i/@var{fmt} @var{addr} [.@var{index}] 615b76d799eSMarkus Armbruster@findex i 6162313086aSBlue SwirlRead I/O port. 6172313086aSBlue SwirlETEXI 6182313086aSBlue Swirl 619d7f9b689SLuiz Capitulino { 620d7f9b689SLuiz Capitulino .name = "o", 621d7f9b689SLuiz Capitulino .args_type = "fmt:/,addr:i,val:i", 622d7f9b689SLuiz Capitulino .params = "/fmt addr value", 623d7f9b689SLuiz Capitulino .help = "I/O port write", 6242b9e3576SMarc-André Lureau .cmd = hmp_ioport_write, 625d7f9b689SLuiz Capitulino }, 626d7f9b689SLuiz Capitulino 627f114784fSJan KiszkaSTEXI 628b76d799eSMarkus Armbruster@item o/@var{fmt} @var{addr} @var{val} 629b76d799eSMarkus Armbruster@findex o 630f114784fSJan KiszkaWrite to I/O port. 631f114784fSJan KiszkaETEXI 6322313086aSBlue Swirl 633d7f9b689SLuiz Capitulino { 634d7f9b689SLuiz Capitulino .name = "sendkey", 6352ef20c15SAmos Kong .args_type = "keys:s,hold-time:i?", 636d7f9b689SLuiz Capitulino .params = "keys [hold_ms]", 637d7f9b689SLuiz Capitulino .help = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)", 6382b9e3576SMarc-André Lureau .cmd = hmp_sendkey, 63929136cd8SHani Benhabiles .command_completion = sendkey_completion, 640d7f9b689SLuiz Capitulino }, 641d7f9b689SLuiz Capitulino 6422313086aSBlue SwirlSTEXI 6432313086aSBlue Swirl@item sendkey @var{keys} 64470fcbbe7SStefan Weil@findex sendkey 645886cc706SAmos KongSend @var{keys} to the guest. @var{keys} could be the name of the 646886cc706SAmos Kongkey or the raw value in hexadecimal format. Use @code{-} to press 647886cc706SAmos Kongseveral keys simultaneously. Example: 6482313086aSBlue Swirl@example 6492313086aSBlue Swirlsendkey ctrl-alt-f1 6502313086aSBlue Swirl@end example 6512313086aSBlue Swirl 6522313086aSBlue SwirlThis command is useful to send keys that your graphical user interface 6532313086aSBlue Swirlintercepts at low level, such as @code{ctrl-alt-f1} in X Window. 6542313086aSBlue SwirlETEXI 655dd12e1bbSEmilio G. Cota { 656dd12e1bbSEmilio G. Cota .name = "sync-profile", 657dd12e1bbSEmilio G. Cota .args_type = "op:s?", 658dd12e1bbSEmilio G. Cota .params = "[on|off|reset]", 659dd12e1bbSEmilio G. Cota .help = "enable, disable or reset synchronization profiling. " 660dd12e1bbSEmilio G. Cota "With no arguments, prints whether profiling is on or off.", 661dd12e1bbSEmilio G. Cota .cmd = hmp_sync_profile, 662dd12e1bbSEmilio G. Cota }, 663dd12e1bbSEmilio G. Cota 664dd12e1bbSEmilio G. CotaSTEXI 665dd12e1bbSEmilio G. Cota@item sync-profile [on|off|reset] 666dd12e1bbSEmilio G. Cota@findex sync-profile 667dd12e1bbSEmilio G. CotaEnable, disable or reset synchronization profiling. With no arguments, prints 668dd12e1bbSEmilio G. Cotawhether profiling is on or off. 669dd12e1bbSEmilio G. CotaETEXI 6702313086aSBlue Swirl 671d7f9b689SLuiz Capitulino { 672d7f9b689SLuiz Capitulino .name = "system_reset", 673d7f9b689SLuiz Capitulino .args_type = "", 674d7f9b689SLuiz Capitulino .params = "", 675d7f9b689SLuiz Capitulino .help = "reset the system", 6762b9e3576SMarc-André Lureau .cmd = hmp_system_reset, 677d7f9b689SLuiz Capitulino }, 678d7f9b689SLuiz Capitulino 6792313086aSBlue SwirlSTEXI 6802313086aSBlue Swirl@item system_reset 68170fcbbe7SStefan Weil@findex system_reset 6822313086aSBlue SwirlReset the system. 6832313086aSBlue SwirlETEXI 6842313086aSBlue Swirl 685d7f9b689SLuiz Capitulino { 686d7f9b689SLuiz Capitulino .name = "system_powerdown", 687d7f9b689SLuiz Capitulino .args_type = "", 688d7f9b689SLuiz Capitulino .params = "", 689d7f9b689SLuiz Capitulino .help = "send system power down event", 6902b9e3576SMarc-André Lureau .cmd = hmp_system_powerdown, 691d7f9b689SLuiz Capitulino }, 692d7f9b689SLuiz Capitulino 6932313086aSBlue SwirlSTEXI 6942313086aSBlue Swirl@item system_powerdown 69570fcbbe7SStefan Weil@findex system_powerdown 6962313086aSBlue SwirlPower down the system (if supported). 6972313086aSBlue SwirlETEXI 6982313086aSBlue Swirl 699d7f9b689SLuiz Capitulino { 700d7f9b689SLuiz Capitulino .name = "sum", 701d7f9b689SLuiz Capitulino .args_type = "start:i,size:i", 702d7f9b689SLuiz Capitulino .params = "addr size", 703d7f9b689SLuiz Capitulino .help = "compute the checksum of a memory region", 7042b9e3576SMarc-André Lureau .cmd = hmp_sum, 705d7f9b689SLuiz Capitulino }, 706d7f9b689SLuiz Capitulino 7072313086aSBlue SwirlSTEXI 7082313086aSBlue Swirl@item sum @var{addr} @var{size} 70970fcbbe7SStefan Weil@findex sum 7102313086aSBlue SwirlCompute the checksum of a memory region. 7112313086aSBlue SwirlETEXI 7122313086aSBlue Swirl 713d7f9b689SLuiz Capitulino { 714d7f9b689SLuiz Capitulino .name = "device_add", 715c7e4e8ceSMarkus Armbruster .args_type = "device:O", 716c7e4e8ceSMarkus Armbruster .params = "driver[,prop=value][,...]", 717d7f9b689SLuiz Capitulino .help = "add device, like -device on the command line", 7182b9e3576SMarc-André Lureau .cmd = hmp_device_add, 7192da1b3abSHani Benhabiles .command_completion = device_add_completion, 720d7f9b689SLuiz Capitulino }, 721d7f9b689SLuiz Capitulino 7223418bd25SGerd HoffmannSTEXI 7233418bd25SGerd Hoffmann@item device_add @var{config} 72470fcbbe7SStefan Weil@findex device_add 7253418bd25SGerd HoffmannAdd device. 7263418bd25SGerd HoffmannETEXI 7273418bd25SGerd Hoffmann 728d7f9b689SLuiz Capitulino { 729d7f9b689SLuiz Capitulino .name = "device_del", 730d7f9b689SLuiz Capitulino .args_type = "id:s", 731d7f9b689SLuiz Capitulino .params = "device", 732d7f9b689SLuiz Capitulino .help = "remove device", 7332b9e3576SMarc-André Lureau .cmd = hmp_device_del, 7342da1b3abSHani Benhabiles .command_completion = device_del_completion, 735d7f9b689SLuiz Capitulino }, 736d7f9b689SLuiz Capitulino 7373418bd25SGerd HoffmannSTEXI 7383418bd25SGerd Hoffmann@item device_del @var{id} 73970fcbbe7SStefan Weil@findex device_del 7406287d827SDaniel P. BerrangeRemove device @var{id}. @var{id} may be a short ID 7416287d827SDaniel P. Berrangeor a QOM object path. 7423418bd25SGerd HoffmannETEXI 7433418bd25SGerd Hoffmann 744d7f9b689SLuiz Capitulino { 745d7f9b689SLuiz Capitulino .name = "cpu", 746d7f9b689SLuiz Capitulino .args_type = "index:i", 747d7f9b689SLuiz Capitulino .params = "index", 748d7f9b689SLuiz Capitulino .help = "set the default CPU", 7492b9e3576SMarc-André Lureau .cmd = hmp_cpu, 750d7f9b689SLuiz Capitulino }, 7513418bd25SGerd Hoffmann 7522313086aSBlue SwirlSTEXI 753c427ea9cSMarkus Armbruster@item cpu @var{index} 754c427ea9cSMarkus Armbruster@findex cpu 7552313086aSBlue SwirlSet the default CPU. 7562313086aSBlue SwirlETEXI 7572313086aSBlue Swirl 758d7f9b689SLuiz Capitulino { 759d7f9b689SLuiz Capitulino .name = "mouse_move", 760d7f9b689SLuiz Capitulino .args_type = "dx_str:s,dy_str:s,dz_str:s?", 761d7f9b689SLuiz Capitulino .params = "dx dy [dz]", 762d7f9b689SLuiz Capitulino .help = "send mouse move events", 7632b9e3576SMarc-André Lureau .cmd = hmp_mouse_move, 764d7f9b689SLuiz Capitulino }, 765d7f9b689SLuiz Capitulino 7662313086aSBlue SwirlSTEXI 7672313086aSBlue Swirl@item mouse_move @var{dx} @var{dy} [@var{dz}] 76870fcbbe7SStefan Weil@findex mouse_move 7692313086aSBlue SwirlMove the active mouse to the specified coordinates @var{dx} @var{dy} 7702313086aSBlue Swirlwith optional scroll axis @var{dz}. 7712313086aSBlue SwirlETEXI 7722313086aSBlue Swirl 773d7f9b689SLuiz Capitulino { 774d7f9b689SLuiz Capitulino .name = "mouse_button", 775d7f9b689SLuiz Capitulino .args_type = "button_state:i", 776d7f9b689SLuiz Capitulino .params = "state", 777d7f9b689SLuiz Capitulino .help = "change mouse button state (1=L, 2=M, 4=R)", 7782b9e3576SMarc-André Lureau .cmd = hmp_mouse_button, 779d7f9b689SLuiz Capitulino }, 780d7f9b689SLuiz Capitulino 7812313086aSBlue SwirlSTEXI 7822313086aSBlue Swirl@item mouse_button @var{val} 78370fcbbe7SStefan Weil@findex mouse_button 7842313086aSBlue SwirlChange the active mouse button state @var{val} (1=L, 2=M, 4=R). 7852313086aSBlue SwirlETEXI 7862313086aSBlue Swirl 787d7f9b689SLuiz Capitulino { 788d7f9b689SLuiz Capitulino .name = "mouse_set", 789d7f9b689SLuiz Capitulino .args_type = "index:i", 790d7f9b689SLuiz Capitulino .params = "index", 791d7f9b689SLuiz Capitulino .help = "set which mouse device receives events", 7922b9e3576SMarc-André Lureau .cmd = hmp_mouse_set, 793d7f9b689SLuiz Capitulino }, 794d7f9b689SLuiz Capitulino 7952313086aSBlue SwirlSTEXI 7962313086aSBlue Swirl@item mouse_set @var{index} 79770fcbbe7SStefan Weil@findex mouse_set 7982313086aSBlue SwirlSet which mouse device receives events at given @var{index}, index 7992313086aSBlue Swirlcan be obtained with 8002313086aSBlue Swirl@example 8012313086aSBlue Swirlinfo mice 8022313086aSBlue Swirl@end example 8032313086aSBlue SwirlETEXI 8042313086aSBlue Swirl 805d7f9b689SLuiz Capitulino { 806d7f9b689SLuiz Capitulino .name = "wavcapture", 807d7f9b689SLuiz Capitulino .args_type = "path:F,freq:i?,bits:i?,nchannels:i?", 808d7f9b689SLuiz Capitulino .params = "path [frequency [bits [channels]]]", 809d7f9b689SLuiz Capitulino .help = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)", 8102b9e3576SMarc-André Lureau .cmd = hmp_wavcapture, 811d7f9b689SLuiz Capitulino }, 8122313086aSBlue SwirlSTEXI 8132313086aSBlue Swirl@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]] 81470fcbbe7SStefan Weil@findex wavcapture 8152313086aSBlue SwirlCapture audio into @var{filename}. Using sample rate @var{frequency} 8162313086aSBlue Swirlbits per sample @var{bits} and number of channels @var{channels}. 8172313086aSBlue Swirl 8182313086aSBlue SwirlDefaults: 8192313086aSBlue Swirl@itemize @minus 8202313086aSBlue Swirl@item Sample rate = 44100 Hz - CD quality 8212313086aSBlue Swirl@item Bits = 16 8222313086aSBlue Swirl@item Number of channels = 2 - Stereo 8232313086aSBlue Swirl@end itemize 8242313086aSBlue SwirlETEXI 8252313086aSBlue Swirl 826d7f9b689SLuiz Capitulino { 827d7f9b689SLuiz Capitulino .name = "stopcapture", 828d7f9b689SLuiz Capitulino .args_type = "n:i", 829d7f9b689SLuiz Capitulino .params = "capture index", 830d7f9b689SLuiz Capitulino .help = "stop capture", 8312b9e3576SMarc-André Lureau .cmd = hmp_stopcapture, 832d7f9b689SLuiz Capitulino }, 8332313086aSBlue SwirlSTEXI 8342313086aSBlue Swirl@item stopcapture @var{index} 83570fcbbe7SStefan Weil@findex stopcapture 8362313086aSBlue SwirlStop capture with a given @var{index}, index can be obtained with 8372313086aSBlue Swirl@example 8382313086aSBlue Swirlinfo capture 8392313086aSBlue Swirl@end example 8402313086aSBlue SwirlETEXI 8412313086aSBlue Swirl 842d7f9b689SLuiz Capitulino { 843d7f9b689SLuiz Capitulino .name = "memsave", 844d7f9b689SLuiz Capitulino .args_type = "val:l,size:i,filename:s", 845d7f9b689SLuiz Capitulino .params = "addr size file", 846d7f9b689SLuiz Capitulino .help = "save to disk virtual memory dump starting at 'addr' of size 'size'", 8472b9e3576SMarc-André Lureau .cmd = hmp_memsave, 848d7f9b689SLuiz Capitulino }, 849d7f9b689SLuiz Capitulino 8502313086aSBlue SwirlSTEXI 8512313086aSBlue Swirl@item memsave @var{addr} @var{size} @var{file} 85270fcbbe7SStefan Weil@findex memsave 8532313086aSBlue Swirlsave to disk virtual memory dump starting at @var{addr} of size @var{size}. 8542313086aSBlue SwirlETEXI 8552313086aSBlue Swirl 856d7f9b689SLuiz Capitulino { 857d7f9b689SLuiz Capitulino .name = "pmemsave", 858d7f9b689SLuiz Capitulino .args_type = "val:l,size:i,filename:s", 859d7f9b689SLuiz Capitulino .params = "addr size file", 860d7f9b689SLuiz Capitulino .help = "save to disk physical memory dump starting at 'addr' of size 'size'", 8612b9e3576SMarc-André Lureau .cmd = hmp_pmemsave, 862d7f9b689SLuiz Capitulino }, 863d7f9b689SLuiz Capitulino 8642313086aSBlue SwirlSTEXI 8652313086aSBlue Swirl@item pmemsave @var{addr} @var{size} @var{file} 86670fcbbe7SStefan Weil@findex pmemsave 8672313086aSBlue Swirlsave to disk physical memory dump starting at @var{addr} of size @var{size}. 8682313086aSBlue SwirlETEXI 8692313086aSBlue Swirl 870d7f9b689SLuiz Capitulino { 871d7f9b689SLuiz Capitulino .name = "boot_set", 872d7f9b689SLuiz Capitulino .args_type = "bootdevice:s", 873d7f9b689SLuiz Capitulino .params = "bootdevice", 874d7f9b689SLuiz Capitulino .help = "define new values for the boot device list", 8752b9e3576SMarc-André Lureau .cmd = hmp_boot_set, 876d7f9b689SLuiz Capitulino }, 877d7f9b689SLuiz Capitulino 8782313086aSBlue SwirlSTEXI 8792313086aSBlue Swirl@item boot_set @var{bootdevicelist} 88070fcbbe7SStefan Weil@findex boot_set 8812313086aSBlue SwirlDefine new values for the boot device list. Those values will override 8822313086aSBlue Swirlthe values specified on the command line through the @code{-boot} option. 8832313086aSBlue Swirl 8842313086aSBlue SwirlThe values that can be specified here depend on the machine type, but are 8852313086aSBlue Swirlthe same that can be specified in the @code{-boot} command line option. 8862313086aSBlue SwirlETEXI 8872313086aSBlue Swirl 888d7f9b689SLuiz Capitulino { 889d7f9b689SLuiz Capitulino .name = "nmi", 890e9b4b432SLuiz Capitulino .args_type = "", 891e9b4b432SLuiz Capitulino .params = "", 8929cb805fdSAlexey Kardashevskiy .help = "inject an NMI", 8932b9e3576SMarc-André Lureau .cmd = hmp_nmi, 894d7f9b689SLuiz Capitulino }, 8952313086aSBlue SwirlSTEXI 8962313086aSBlue Swirl@item nmi @var{cpu} 89770fcbbe7SStefan Weil@findex nmi 8989cb805fdSAlexey KardashevskiyInject an NMI on the default CPU (x86/s390) or all CPUs (ppc64). 8991f590cf9SLei Li 9001f590cf9SLei LiETEXI 9011f590cf9SLei Li 9021f590cf9SLei Li { 9033949e594SMarkus Armbruster .name = "ringbuf_write", 9041f590cf9SLei Li .args_type = "device:s,data:s", 9051f590cf9SLei Li .params = "device data", 9063949e594SMarkus Armbruster .help = "Write to a ring buffer character device", 9072b9e3576SMarc-André Lureau .cmd = hmp_ringbuf_write, 9088e597779SHani Benhabiles .command_completion = ringbuf_write_completion, 9091f590cf9SLei Li }, 9101f590cf9SLei Li 9111f590cf9SLei LiSTEXI 9123949e594SMarkus Armbruster@item ringbuf_write @var{device} @var{data} 9133949e594SMarkus Armbruster@findex ringbuf_write 9143949e594SMarkus ArmbrusterWrite @var{data} to ring buffer character device @var{device}. 9153949e594SMarkus Armbruster@var{data} must be a UTF-8 string. 9161f590cf9SLei Li 9172313086aSBlue SwirlETEXI 9182313086aSBlue Swirl 919d7f9b689SLuiz Capitulino { 9203949e594SMarkus Armbruster .name = "ringbuf_read", 92149b6d722SLei Li .args_type = "device:s,size:i", 92249b6d722SLei Li .params = "device size", 9233949e594SMarkus Armbruster .help = "Read from a ring buffer character device", 9242b9e3576SMarc-André Lureau .cmd = hmp_ringbuf_read, 9258e597779SHani Benhabiles .command_completion = ringbuf_write_completion, 92649b6d722SLei Li }, 92749b6d722SLei Li 92849b6d722SLei LiSTEXI 9293949e594SMarkus Armbruster@item ringbuf_read @var{device} 9303949e594SMarkus Armbruster@findex ringbuf_read 9313949e594SMarkus ArmbrusterRead and print up to @var{size} bytes from ring buffer character 9323949e594SMarkus Armbrusterdevice @var{device}. 933543f3412SMarkus ArmbrusterCertain non-printable characters are printed \uXXXX, where XXXX is the 934543f3412SMarkus Armbrustercharacter code in hexadecimal. Character \ is printed \\. 9353949e594SMarkus ArmbrusterBug: can screw up when the buffer contains invalid UTF-8 sequences, 9363949e594SMarkus ArmbrusterNUL characters, after the ring buffer lost data, and when reading 9373949e594SMarkus Armbrusterstops because the size limit is reached. 93849b6d722SLei Li 93949b6d722SLei LiETEXI 94049b6d722SLei Li 94149b6d722SLei Li { 942d7f9b689SLuiz Capitulino .name = "migrate", 9437a4da28bSPeter Xu .args_type = "detach:-d,blk:-b,inc:-i,resume:-r,uri:s", 9447a4da28bSPeter Xu .params = "[-d] [-b] [-i] [-r] uri", 945fbc3d96cSlirans@il.ibm.com .help = "migrate to URI (using -d to not wait for completion)" 946fbc3d96cSlirans@il.ibm.com "\n\t\t\t -b for migration without shared storage with" 947fbc3d96cSlirans@il.ibm.com " full copy of disk\n\t\t\t -i for migration without " 948fbc3d96cSlirans@il.ibm.com "shared storage with incremental copy of disk " 9497a4da28bSPeter Xu "(base image shared between src and destination)" 9507a4da28bSPeter Xu "\n\t\t\t -r to resume a paused migration", 9512b9e3576SMarc-André Lureau .cmd = hmp_migrate, 952d7f9b689SLuiz Capitulino }, 953d7f9b689SLuiz Capitulino 954fbc3d96cSlirans@il.ibm.com 9552313086aSBlue SwirlSTEXI 956fbc3d96cSlirans@il.ibm.com@item migrate [-d] [-b] [-i] @var{uri} 95770fcbbe7SStefan Weil@findex migrate 9582313086aSBlue SwirlMigrate to @var{uri} (using -d to not wait for completion). 959fbc3d96cSlirans@il.ibm.com -b for migration with full copy of disk 960fbc3d96cSlirans@il.ibm.com -i for migration with incremental copy of disk (base image is shared) 9612313086aSBlue SwirlETEXI 9622313086aSBlue Swirl 963d7f9b689SLuiz Capitulino { 964d7f9b689SLuiz Capitulino .name = "migrate_cancel", 965d7f9b689SLuiz Capitulino .args_type = "", 966d7f9b689SLuiz Capitulino .params = "", 967d7f9b689SLuiz Capitulino .help = "cancel the current VM migration", 9682b9e3576SMarc-André Lureau .cmd = hmp_migrate_cancel, 969d7f9b689SLuiz Capitulino }, 970d7f9b689SLuiz Capitulino 9712313086aSBlue SwirlSTEXI 9722313086aSBlue Swirl@item migrate_cancel 97370fcbbe7SStefan Weil@findex migrate_cancel 9742313086aSBlue SwirlCancel the current VM migration. 97594ae12cbSDr. David Alan GilbertETEXI 9769e1ba4ccSOrit Wasserman 97794ae12cbSDr. David Alan Gilbert { 97894ae12cbSDr. David Alan Gilbert .name = "migrate_continue", 97994ae12cbSDr. David Alan Gilbert .args_type = "state:s", 98094ae12cbSDr. David Alan Gilbert .params = "state", 98194ae12cbSDr. David Alan Gilbert .help = "Continue migration from the given paused state", 98294ae12cbSDr. David Alan Gilbert .cmd = hmp_migrate_continue, 98394ae12cbSDr. David Alan Gilbert }, 98494ae12cbSDr. David Alan GilbertSTEXI 98594ae12cbSDr. David Alan Gilbert@item migrate_continue @var{state} 98694ae12cbSDr. David Alan Gilbert@findex migrate_continue 98794ae12cbSDr. David Alan GilbertContinue migration from the paused state @var{state} 9889e1ba4ccSOrit WassermanETEXI 9899e1ba4ccSOrit Wasserman 9909e1ba4ccSOrit Wasserman { 991bf1ae1f4SDr. David Alan Gilbert .name = "migrate_incoming", 992bf1ae1f4SDr. David Alan Gilbert .args_type = "uri:s", 993bf1ae1f4SDr. David Alan Gilbert .params = "uri", 994bf1ae1f4SDr. David Alan Gilbert .help = "Continue an incoming migration from an -incoming defer", 9952b9e3576SMarc-André Lureau .cmd = hmp_migrate_incoming, 996bf1ae1f4SDr. David Alan Gilbert }, 997bf1ae1f4SDr. David Alan Gilbert 998bf1ae1f4SDr. David Alan GilbertSTEXI 999bf1ae1f4SDr. David Alan Gilbert@item migrate_incoming @var{uri} 1000bf1ae1f4SDr. David Alan Gilbert@findex migrate_incoming 1001bf1ae1f4SDr. David Alan GilbertContinue an incoming migration using the @var{uri} (that has the same syntax 1002bf1ae1f4SDr. David Alan Gilbertas the -incoming option). 10033b563c4bSPeter XuETEXI 1004bf1ae1f4SDr. David Alan Gilbert 10053b563c4bSPeter Xu { 10063b563c4bSPeter Xu .name = "migrate_recover", 10073b563c4bSPeter Xu .args_type = "uri:s", 10083b563c4bSPeter Xu .params = "uri", 10093b563c4bSPeter Xu .help = "Continue a paused incoming postcopy migration", 10103b563c4bSPeter Xu .cmd = hmp_migrate_recover, 10113b563c4bSPeter Xu }, 10123b563c4bSPeter Xu 10133b563c4bSPeter XuSTEXI 10143b563c4bSPeter Xu@item migrate_recover @var{uri} 10153b563c4bSPeter Xu@findex migrate_recover 10163b563c4bSPeter XuContinue a paused incoming postcopy migration using the @var{uri}. 1017bf1ae1f4SDr. David Alan GilbertETEXI 1018bf1ae1f4SDr. David Alan Gilbert 1019bf1ae1f4SDr. David Alan Gilbert { 1020d37297dcSPeter Xu .name = "migrate_pause", 1021d37297dcSPeter Xu .args_type = "", 1022d37297dcSPeter Xu .params = "", 1023d37297dcSPeter Xu .help = "Pause an ongoing migration (postcopy-only)", 1024d37297dcSPeter Xu .cmd = hmp_migrate_pause, 1025d37297dcSPeter Xu }, 1026d37297dcSPeter Xu 1027d37297dcSPeter XuSTEXI 1028d37297dcSPeter Xu@item migrate_pause 1029d37297dcSPeter Xu@findex migrate_pause 1030d37297dcSPeter XuPause an ongoing migration. Currently it only supports postcopy. 1031d37297dcSPeter XuETEXI 1032d37297dcSPeter Xu 1033d37297dcSPeter Xu { 10349e1ba4ccSOrit Wasserman .name = "migrate_set_cache_size", 10359e1ba4ccSOrit Wasserman .args_type = "value:o", 10369e1ba4ccSOrit Wasserman .params = "value", 10379e1ba4ccSOrit Wasserman .help = "set cache size (in bytes) for XBZRLE migrations," 10389e1ba4ccSOrit Wasserman "the cache size will be rounded down to the nearest " 10399e1ba4ccSOrit Wasserman "power of 2.\n" 10409e1ba4ccSOrit Wasserman "The cache size affects the number of cache misses." 10419e1ba4ccSOrit Wasserman "In case of a high cache miss ratio you need to increase" 10429e1ba4ccSOrit Wasserman " the cache size", 10432b9e3576SMarc-André Lureau .cmd = hmp_migrate_set_cache_size, 10449e1ba4ccSOrit Wasserman }, 10459e1ba4ccSOrit Wasserman 10469e1ba4ccSOrit WassermanSTEXI 10479e1ba4ccSOrit Wasserman@item migrate_set_cache_size @var{value} 10489e1ba4ccSOrit Wasserman@findex migrate_set_cache_size 10499e1ba4ccSOrit WassermanSet cache size to @var{value} (in bytes) for xbzrle migrations. 10502313086aSBlue SwirlETEXI 10512313086aSBlue Swirl 1052d7f9b689SLuiz Capitulino { 1053d7f9b689SLuiz Capitulino .name = "migrate_set_speed", 1054ed3d4a80SJes Sorensen .args_type = "value:o", 1055d7f9b689SLuiz Capitulino .params = "value", 1056ed3d4a80SJes Sorensen .help = "set maximum speed (in bytes) for migrations. " 1057ed3d4a80SJes Sorensen "Defaults to MB if no size suffix is specified, ie. B/K/M/G/T", 10582b9e3576SMarc-André Lureau .cmd = hmp_migrate_set_speed, 1059d7f9b689SLuiz Capitulino }, 1060d7f9b689SLuiz Capitulino 10612313086aSBlue SwirlSTEXI 10622313086aSBlue Swirl@item migrate_set_speed @var{value} 106370fcbbe7SStefan Weil@findex migrate_set_speed 10642313086aSBlue SwirlSet maximum speed to @var{value} (in bytes) for migrations. 10652313086aSBlue SwirlETEXI 10662313086aSBlue Swirl 1067d7f9b689SLuiz Capitulino { 1068d7f9b689SLuiz Capitulino .name = "migrate_set_downtime", 1069b0fbf7d3SMarkus Armbruster .args_type = "value:T", 1070d7f9b689SLuiz Capitulino .params = "value", 1071d7f9b689SLuiz Capitulino .help = "set maximum tolerated downtime (in seconds) for migrations", 10722b9e3576SMarc-André Lureau .cmd = hmp_migrate_set_downtime, 1073d7f9b689SLuiz Capitulino }, 10742ea42952SGlauber Costa 10752ea42952SGlauber CostaSTEXI 10762ea42952SGlauber Costa@item migrate_set_downtime @var{second} 107770fcbbe7SStefan Weil@findex migrate_set_downtime 10782ea42952SGlauber CostaSet maximum tolerated downtime (in seconds) for migration. 10792ea42952SGlauber CostaETEXI 10802ea42952SGlauber Costa 1081f8882568SJes Sorensen { 108200458433SOrit Wasserman .name = "migrate_set_capability", 108300458433SOrit Wasserman .args_type = "capability:s,state:b", 108400458433SOrit Wasserman .params = "capability state", 108500458433SOrit Wasserman .help = "Enable/Disable the usage of a capability for migration", 10862b9e3576SMarc-André Lureau .cmd = hmp_migrate_set_capability, 1087c68a0409SHani Benhabiles .command_completion = migrate_set_capability_completion, 108800458433SOrit Wasserman }, 108900458433SOrit Wasserman 109000458433SOrit WassermanSTEXI 109100458433SOrit Wasserman@item migrate_set_capability @var{capability} @var{state} 109200458433SOrit Wasserman@findex migrate_set_capability 109300458433SOrit WassermanEnable/Disable the usage of a capability @var{capability} for migration. 109400458433SOrit WassermanETEXI 109500458433SOrit Wasserman 109600458433SOrit Wasserman { 109750e9a629SLiang Li .name = "migrate_set_parameter", 109869ef1f36SDaniel P. Berrange .args_type = "parameter:s,value:s", 109950e9a629SLiang Li .params = "parameter value", 110050e9a629SLiang Li .help = "Set the parameter for migration", 11012b9e3576SMarc-André Lureau .cmd = hmp_migrate_set_parameter, 110250e9a629SLiang Li .command_completion = migrate_set_parameter_completion, 110350e9a629SLiang Li }, 110450e9a629SLiang Li 110550e9a629SLiang LiSTEXI 110650e9a629SLiang Li@item migrate_set_parameter @var{parameter} @var{value} 110750e9a629SLiang Li@findex migrate_set_parameter 110850e9a629SLiang LiSet the parameter @var{parameter} for migration. 110950e9a629SLiang LiETEXI 111050e9a629SLiang Li 111150e9a629SLiang Li { 11124886a1bcSDr. David Alan Gilbert .name = "migrate_start_postcopy", 11134886a1bcSDr. David Alan Gilbert .args_type = "", 11144886a1bcSDr. David Alan Gilbert .params = "", 1115a54d340bSDr. David Alan Gilbert .help = "Followup to a migration command to switch the migration" 111632c3db5bSDr. David Alan Gilbert " to postcopy mode. The postcopy-ram capability must " 1117c2eb7f21SGreg Kurz "be set on both source and destination before the " 1118c2eb7f21SGreg Kurz "original migration command .", 11192b9e3576SMarc-André Lureau .cmd = hmp_migrate_start_postcopy, 11204886a1bcSDr. David Alan Gilbert }, 11214886a1bcSDr. David Alan Gilbert 11224886a1bcSDr. David Alan GilbertSTEXI 11234886a1bcSDr. David Alan Gilbert@item migrate_start_postcopy 11244886a1bcSDr. David Alan Gilbert@findex migrate_start_postcopy 11254886a1bcSDr. David Alan GilbertSwitch in-progress migration to postcopy mode. Ignored after the end of 11264886a1bcSDr. David Alan Gilbertmigration (or once already in postcopy). 11274886a1bcSDr. David Alan GilbertETEXI 11284886a1bcSDr. David Alan Gilbert 11294886a1bcSDr. David Alan Gilbert { 1130d89e666eSzhanghailiang .name = "x_colo_lost_heartbeat", 1131d89e666eSzhanghailiang .args_type = "", 1132d89e666eSzhanghailiang .params = "", 1133d89e666eSzhanghailiang .help = "Tell COLO that heartbeat is lost,\n\t\t\t" 1134d89e666eSzhanghailiang "a failover or takeover is needed.", 1135d89e666eSzhanghailiang .cmd = hmp_x_colo_lost_heartbeat, 1136d89e666eSzhanghailiang }, 1137d89e666eSzhanghailiang 1138d89e666eSzhanghailiangSTEXI 1139d89e666eSzhanghailiang@item x_colo_lost_heartbeat 1140d89e666eSzhanghailiang@findex x_colo_lost_heartbeat 1141d89e666eSzhanghailiangTell COLO that heartbeat is lost, a failover or takeover is needed. 1142d89e666eSzhanghailiangETEXI 1143d89e666eSzhanghailiang 1144d89e666eSzhanghailiang { 11452ea720dbSJes Sorensen .name = "client_migrate_info", 11462ea720dbSJes Sorensen .args_type = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?", 11472ea720dbSJes Sorensen .params = "protocol hostname port tls-port cert-subject", 114813cadefbSMarkus Armbruster .help = "set migration information for remote display", 11492b9e3576SMarc-André Lureau .cmd = hmp_client_migrate_info, 1150f8882568SJes Sorensen }, 1151f8882568SJes Sorensen 1152f8882568SJes SorensenSTEXI 1153e866e239SGerd Hoffmann@item client_migrate_info @var{protocol} @var{hostname} @var{port} @var{tls-port} @var{cert-subject} 1154e866e239SGerd Hoffmann@findex client_migrate_info 115513cadefbSMarkus ArmbrusterSet migration information for remote display. This makes the server 115613cadefbSMarkus Armbrusterask the client to automatically reconnect using the new parameters 115713cadefbSMarkus Armbrusteronce migration finished successfully. Only implemented for SPICE. 1158e866e239SGerd HoffmannETEXI 1159e866e239SGerd Hoffmann 1160783e9b48SWen Congyang { 1161783e9b48SWen Congyang .name = "dump-guest-memory", 11622da91b54SViktor Prutyanov .args_type = "paging:-p,detach:-d,windmp:-w,zlib:-z,lzo:-l,snappy:-s,filename:F,begin:l?,length:l?", 11632da91b54SViktor Prutyanov .params = "[-p] [-d] [-z|-l|-s|-w] filename [begin length]", 1164c20499d9SQiao Nuohan .help = "dump guest memory into file 'filename'.\n\t\t\t" 1165c20499d9SQiao Nuohan "-p: do paging to get guest's memory mapping.\n\t\t\t" 1166228de9cfSPeter Xu "-d: return immediately (do not wait for completion).\n\t\t\t" 11671b7a0f75SQiao Nuohan "-z: dump in kdump-compressed format, with zlib compression.\n\t\t\t" 11681b7a0f75SQiao Nuohan "-l: dump in kdump-compressed format, with lzo compression.\n\t\t\t" 11691b7a0f75SQiao Nuohan "-s: dump in kdump-compressed format, with snappy compression.\n\t\t\t" 11702da91b54SViktor Prutyanov "-w: dump in Windows crashdump format (can be used instead of ELF-dump converting),\n\t\t\t" 11712da91b54SViktor Prutyanov " for Windows x64 guests with vmcoreinfo driver only.\n\t\t\t" 1172c20499d9SQiao Nuohan "begin: the starting physical address.\n\t\t\t" 1173c20499d9SQiao Nuohan "length: the memory size, in bytes.", 11742b9e3576SMarc-André Lureau .cmd = hmp_dump_guest_memory, 1175783e9b48SWen Congyang }, 1176783e9b48SWen Congyang 1177783e9b48SWen CongyangSTEXI 1178c20499d9SQiao Nuohan@item dump-guest-memory [-p] @var{filename} @var{begin} @var{length} 11792da91b54SViktor Prutyanov@item dump-guest-memory [-z|-l|-s|-w] @var{filename} 1180783e9b48SWen Congyang@findex dump-guest-memory 1181783e9b48SWen CongyangDump guest memory to @var{protocol}. The file can be processed with crash or 11822da91b54SViktor Prutyanovgdb. Without -z|-l|-s|-w, the dump format is ELF. 1183c20499d9SQiao Nuohan -p: do paging to get guest's memory mapping. 11841b7a0f75SQiao Nuohan -z: dump in kdump-compressed format, with zlib compression. 11851b7a0f75SQiao Nuohan -l: dump in kdump-compressed format, with lzo compression. 11861b7a0f75SQiao Nuohan -s: dump in kdump-compressed format, with snappy compression. 11872da91b54SViktor Prutyanov -w: dump in Windows crashdump format (can be used instead of ELF-dump converting), 11882da91b54SViktor Prutyanov for Windows x64 guests with vmcoreinfo driver only 1189c20499d9SQiao Nuohan filename: dump file name. 1190783e9b48SWen Congyang begin: the starting physical address. It's optional, and should be 1191c20499d9SQiao Nuohan specified together with length. 1192783e9b48SWen Congyang length: the memory size, in bytes. It's optional, and should be specified 1193c20499d9SQiao Nuohan together with begin. 1194783e9b48SWen CongyangETEXI 1195783e9b48SWen Congyang 1196a4538a5cSJason J. Herne#if defined(TARGET_S390X) 1197a4538a5cSJason J. Herne { 1198a4538a5cSJason J. Herne .name = "dump-skeys", 1199a4538a5cSJason J. Herne .args_type = "filename:F", 1200a4538a5cSJason J. Herne .params = "", 1201a4538a5cSJason J. Herne .help = "Save guest storage keys into file 'filename'.\n", 12022b9e3576SMarc-André Lureau .cmd = hmp_dump_skeys, 1203a4538a5cSJason J. Herne }, 1204a4538a5cSJason J. Herne#endif 1205a4538a5cSJason J. Herne 1206a4538a5cSJason J. HerneSTEXI 1207a4538a5cSJason J. Herne@item dump-skeys @var{filename} 1208a4538a5cSJason J. Herne@findex dump-skeys 1209a4538a5cSJason J. HerneSave guest storage keys to a file. 1210a4538a5cSJason J. HerneETEXI 1211a4538a5cSJason J. Herne 1212f860d497SClaudio Imbrenda#if defined(TARGET_S390X) 1213f860d497SClaudio Imbrenda { 1214f860d497SClaudio Imbrenda .name = "migration_mode", 1215f860d497SClaudio Imbrenda .args_type = "mode:i", 1216f860d497SClaudio Imbrenda .params = "mode", 1217f860d497SClaudio Imbrenda .help = "Enables or disables migration mode\n", 1218f860d497SClaudio Imbrenda .cmd = hmp_migrationmode, 1219f860d497SClaudio Imbrenda }, 1220f860d497SClaudio Imbrenda#endif 1221f860d497SClaudio Imbrenda 1222f860d497SClaudio ImbrendaSTEXI 1223f860d497SClaudio Imbrenda@item migration_mode @var{mode} 1224f860d497SClaudio Imbrenda@findex migration_mode 1225f860d497SClaudio ImbrendaEnables or disables migration mode. 1226f860d497SClaudio ImbrendaETEXI 1227f860d497SClaudio Imbrenda 1228e866e239SGerd Hoffmann { 12292ea720dbSJes Sorensen .name = "snapshot_blkdev", 12306cc2a415SPaolo Bonzini .args_type = "reuse:-n,device:B,snapshot-file:s?,format:s?", 12316cc2a415SPaolo Bonzini .params = "[-n] device [new-image-file] [format]", 12322ea720dbSJes Sorensen .help = "initiates a live snapshot\n\t\t\t" 12332ea720dbSJes Sorensen "of device. If a new image file is specified, the\n\t\t\t" 12342ea720dbSJes Sorensen "new image file will become the new root image.\n\t\t\t" 12352ea720dbSJes Sorensen "If format is specified, the snapshot file will\n\t\t\t" 1236775ca88eSWenchao Xia "be created in that format.\n\t\t\t" 12376cc2a415SPaolo Bonzini "The default format is qcow2. The -n flag requests QEMU\n\t\t\t" 12386cc2a415SPaolo Bonzini "to reuse the image found in new-image-file, instead of\n\t\t\t" 12396cc2a415SPaolo Bonzini "recreating it from scratch.", 12402b9e3576SMarc-André Lureau .cmd = hmp_snapshot_blkdev, 1241e866e239SGerd Hoffmann }, 1242e866e239SGerd Hoffmann 1243e866e239SGerd HoffmannSTEXI 1244f8882568SJes Sorensen@item snapshot_blkdev 1245f8882568SJes Sorensen@findex snapshot_blkdev 1246f8882568SJes SorensenSnapshot device, using snapshot file as target if provided 1247f8882568SJes SorensenETEXI 1248f8882568SJes Sorensen 1249d7f9b689SLuiz Capitulino { 1250775ca88eSWenchao Xia .name = "snapshot_blkdev_internal", 1251775ca88eSWenchao Xia .args_type = "device:B,name:s", 1252775ca88eSWenchao Xia .params = "device name", 1253775ca88eSWenchao Xia .help = "take an internal snapshot of device.\n\t\t\t" 1254775ca88eSWenchao Xia "The format of the image used by device must\n\t\t\t" 1255775ca88eSWenchao Xia "support it, such as qcow2.\n\t\t\t", 12562b9e3576SMarc-André Lureau .cmd = hmp_snapshot_blkdev_internal, 1257775ca88eSWenchao Xia }, 1258775ca88eSWenchao Xia 1259775ca88eSWenchao XiaSTEXI 1260775ca88eSWenchao Xia@item snapshot_blkdev_internal 1261775ca88eSWenchao Xia@findex snapshot_blkdev_internal 1262775ca88eSWenchao XiaTake an internal snapshot on device if it support 1263775ca88eSWenchao XiaETEXI 1264775ca88eSWenchao Xia 1265775ca88eSWenchao Xia { 12667a4ed2eeSWenchao Xia .name = "snapshot_delete_blkdev_internal", 12677a4ed2eeSWenchao Xia .args_type = "device:B,name:s,id:s?", 12687a4ed2eeSWenchao Xia .params = "device name [id]", 12697a4ed2eeSWenchao Xia .help = "delete an internal snapshot of device.\n\t\t\t" 12707a4ed2eeSWenchao Xia "If id is specified, qemu will try delete\n\t\t\t" 12717a4ed2eeSWenchao Xia "the snapshot matching both id and name.\n\t\t\t" 12727a4ed2eeSWenchao Xia "The format of the image used by device must\n\t\t\t" 12737a4ed2eeSWenchao Xia "support it, such as qcow2.\n\t\t\t", 12742b9e3576SMarc-André Lureau .cmd = hmp_snapshot_delete_blkdev_internal, 12757a4ed2eeSWenchao Xia }, 12767a4ed2eeSWenchao Xia 12777a4ed2eeSWenchao XiaSTEXI 12787a4ed2eeSWenchao Xia@item snapshot_delete_blkdev_internal 12797a4ed2eeSWenchao Xia@findex snapshot_delete_blkdev_internal 12807a4ed2eeSWenchao XiaDelete an internal snapshot on device if it support 12817a4ed2eeSWenchao XiaETEXI 12827a4ed2eeSWenchao Xia 12837a4ed2eeSWenchao Xia { 1284d9b902dbSPaolo Bonzini .name = "drive_mirror", 1285d9b902dbSPaolo Bonzini .args_type = "reuse:-n,full:-f,device:B,target:s,format:s?", 1286d9b902dbSPaolo Bonzini .params = "[-n] [-f] device target [format]", 1287d9b902dbSPaolo Bonzini .help = "initiates live storage\n\t\t\t" 1288d9b902dbSPaolo Bonzini "migration for a device. The device's contents are\n\t\t\t" 1289d9b902dbSPaolo Bonzini "copied to the new image file, including data that\n\t\t\t" 1290d9b902dbSPaolo Bonzini "is written after the command is started.\n\t\t\t" 1291d9b902dbSPaolo Bonzini "The -n flag requests QEMU to reuse the image found\n\t\t\t" 1292d9b902dbSPaolo Bonzini "in new-image-file, instead of recreating it from scratch.\n\t\t\t" 1293d9b902dbSPaolo Bonzini "The -f flag requests QEMU to copy the whole disk,\n\t\t\t" 1294d9b902dbSPaolo Bonzini "so that the result does not need a backing file.\n\t\t\t", 12952b9e3576SMarc-André Lureau .cmd = hmp_drive_mirror, 1296d9b902dbSPaolo Bonzini }, 1297d9b902dbSPaolo BonziniSTEXI 1298d9b902dbSPaolo Bonzini@item drive_mirror 1299d9b902dbSPaolo Bonzini@findex drive_mirror 1300d9b902dbSPaolo BonziniStart mirroring a block device's writes to a new destination, 1301d9b902dbSPaolo Bonziniusing the specified target. 1302d9b902dbSPaolo BonziniETEXI 1303d9b902dbSPaolo Bonzini 1304d9b902dbSPaolo Bonzini { 1305de90930aSStefan Hajnoczi .name = "drive_backup", 130613b9414bSPavel Butsykin .args_type = "reuse:-n,full:-f,compress:-c,device:B,target:s,format:s?", 130713b9414bSPavel Butsykin .params = "[-n] [-f] [-c] device target [format]", 1308de90930aSStefan Hajnoczi .help = "initiates a point-in-time\n\t\t\t" 1309de90930aSStefan Hajnoczi "copy for a device. The device's contents are\n\t\t\t" 1310de90930aSStefan Hajnoczi "copied to the new image file, excluding data that\n\t\t\t" 1311de90930aSStefan Hajnoczi "is written after the command is started.\n\t\t\t" 1312de90930aSStefan Hajnoczi "The -n flag requests QEMU to reuse the image found\n\t\t\t" 1313de90930aSStefan Hajnoczi "in new-image-file, instead of recreating it from scratch.\n\t\t\t" 1314de90930aSStefan Hajnoczi "The -f flag requests QEMU to copy the whole disk,\n\t\t\t" 131513b9414bSPavel Butsykin "so that the result does not need a backing file.\n\t\t\t" 131613b9414bSPavel Butsykin "The -c flag requests QEMU to compress backup data\n\t\t\t" 131713b9414bSPavel Butsykin "(if the target format supports it).\n\t\t\t", 13182b9e3576SMarc-André Lureau .cmd = hmp_drive_backup, 1319de90930aSStefan Hajnoczi }, 1320de90930aSStefan HajnocziSTEXI 1321de90930aSStefan Hajnoczi@item drive_backup 1322de90930aSStefan Hajnoczi@findex drive_backup 1323de90930aSStefan HajnocziStart a point-in-time copy of a block device to a specificed target. 1324de90930aSStefan HajnocziETEXI 1325de90930aSStefan Hajnoczi 1326de90930aSStefan Hajnoczi { 1327d7f9b689SLuiz Capitulino .name = "drive_add", 1328abb21ac3SKevin Wolf .args_type = "node:-n,pci_addr:s,opts:s", 1329abb21ac3SKevin Wolf .params = "[-n] [[<domain>:]<bus>:]<slot>\n" 13302313086aSBlue Swirl "[file=file][,if=type][,bus=n]\n" 1331fb0490f6SStefan Hajnoczi "[,unit=m][,media=d][,index=i]\n" 1332fb0490f6SStefan Hajnoczi "[,snapshot=on|off][,cache=on|off]\n" 1333fb0490f6SStefan Hajnoczi "[,readonly=on|off][,copy-on-read=on|off]", 1334d7f9b689SLuiz Capitulino .help = "add drive to PCI storage controller", 13352b9e3576SMarc-André Lureau .cmd = hmp_drive_add, 1336d7f9b689SLuiz Capitulino }, 1337d7f9b689SLuiz Capitulino 13382313086aSBlue SwirlSTEXI 13392313086aSBlue Swirl@item drive_add 134070fcbbe7SStefan Weil@findex drive_add 13412313086aSBlue SwirlAdd drive to PCI storage controller. 13422313086aSBlue SwirlETEXI 13432313086aSBlue Swirl 1344d7f9b689SLuiz Capitulino { 13452ae63bdaSIsaku Yamahata .name = "pcie_aer_inject_error", 13462ae63bdaSIsaku Yamahata .args_type = "advisory_non_fatal:-a,correctable:-c," 13472ae63bdaSIsaku Yamahata "id:s,error_status:s," 13482ae63bdaSIsaku Yamahata "header0:i?,header1:i?,header2:i?,header3:i?," 13492ae63bdaSIsaku Yamahata "prefix0:i?,prefix1:i?,prefix2:i?,prefix3:i?", 13502ae63bdaSIsaku Yamahata .params = "[-a] [-c] id " 13512ae63bdaSIsaku Yamahata "<error_status> [<tlp header> [<tlp header prefix>]]", 13522ae63bdaSIsaku Yamahata .help = "inject pcie aer error\n\t\t\t" 13532ae63bdaSIsaku Yamahata " -a for advisory non fatal error\n\t\t\t" 13542ae63bdaSIsaku Yamahata " -c for correctable error\n\t\t\t" 13552ae63bdaSIsaku Yamahata "<id> = qdev device id\n\t\t\t" 13562ae63bdaSIsaku Yamahata "<error_status> = error string or 32bit\n\t\t\t" 13572ae63bdaSIsaku Yamahata "<tlb header> = 32bit x 4\n\t\t\t" 13582ae63bdaSIsaku Yamahata "<tlb header prefix> = 32bit x 4", 13592b9e3576SMarc-André Lureau .cmd = hmp_pcie_aer_inject_error, 13602ae63bdaSIsaku Yamahata }, 13612ae63bdaSIsaku Yamahata 13622ae63bdaSIsaku YamahataSTEXI 13632ae63bdaSIsaku Yamahata@item pcie_aer_inject_error 13642ae63bdaSIsaku Yamahata@findex pcie_aer_inject_error 13652ae63bdaSIsaku YamahataInject PCIe AER error 13662ae63bdaSIsaku YamahataETEXI 13672ae63bdaSIsaku Yamahata 13682ae63bdaSIsaku Yamahata { 1369ae82d324SMarkus Armbruster .name = "netdev_add", 1370ae82d324SMarkus Armbruster .args_type = "netdev:O", 137103ce5744SNikolay Nikolaev .params = "[user|tap|socket|vde|bridge|hubport|netmap|vhost-user],id=str[,prop=value][,...]", 1372ae82d324SMarkus Armbruster .help = "add host network device", 13732b9e3576SMarc-André Lureau .cmd = hmp_netdev_add, 1374b162b49aSHani Benhabiles .command_completion = netdev_add_completion, 1375ae82d324SMarkus Armbruster }, 1376ae82d324SMarkus Armbruster 1377ae82d324SMarkus ArmbrusterSTEXI 1378ae82d324SMarkus Armbruster@item netdev_add 1379ae82d324SMarkus Armbruster@findex netdev_add 1380ae82d324SMarkus ArmbrusterAdd host network device. 1381ae82d324SMarkus ArmbrusterETEXI 1382ae82d324SMarkus Armbruster 1383ae82d324SMarkus Armbruster { 1384ae82d324SMarkus Armbruster .name = "netdev_del", 1385ae82d324SMarkus Armbruster .args_type = "id:s", 1386ae82d324SMarkus Armbruster .params = "id", 1387ae82d324SMarkus Armbruster .help = "remove host network device", 13882b9e3576SMarc-André Lureau .cmd = hmp_netdev_del, 138911b389f2SHani Benhabiles .command_completion = netdev_del_completion, 1390ae82d324SMarkus Armbruster }, 1391ae82d324SMarkus Armbruster 1392ae82d324SMarkus ArmbrusterSTEXI 1393ae82d324SMarkus Armbruster@item netdev_del 1394ae82d324SMarkus Armbruster@findex netdev_del 1395ae82d324SMarkus ArmbrusterRemove host network device. 1396ae82d324SMarkus ArmbrusterETEXI 1397ae82d324SMarkus Armbruster 1398ab2d0531SPaolo Bonzini { 1399cff8b2c6SPaolo Bonzini .name = "object_add", 1400cff8b2c6SPaolo Bonzini .args_type = "object:O", 1401cff8b2c6SPaolo Bonzini .params = "[qom-type=]type,id=str[,prop=value][,...]", 1402cff8b2c6SPaolo Bonzini .help = "create QOM object", 14032b9e3576SMarc-André Lureau .cmd = hmp_object_add, 1404bfa40f77SHani Benhabiles .command_completion = object_add_completion, 1405cff8b2c6SPaolo Bonzini }, 1406cff8b2c6SPaolo Bonzini 1407cff8b2c6SPaolo BonziniSTEXI 1408cff8b2c6SPaolo Bonzini@item object_add 1409cff8b2c6SPaolo Bonzini@findex object_add 1410cff8b2c6SPaolo BonziniCreate QOM object. 1411cff8b2c6SPaolo BonziniETEXI 1412cff8b2c6SPaolo Bonzini 1413cff8b2c6SPaolo Bonzini { 1414ab2d0531SPaolo Bonzini .name = "object_del", 1415ab2d0531SPaolo Bonzini .args_type = "id:s", 1416ab2d0531SPaolo Bonzini .params = "id", 1417ab2d0531SPaolo Bonzini .help = "destroy QOM object", 14182b9e3576SMarc-André Lureau .cmd = hmp_object_del, 1419bfa40f77SHani Benhabiles .command_completion = object_del_completion, 1420ab2d0531SPaolo Bonzini }, 1421ab2d0531SPaolo Bonzini 1422ab2d0531SPaolo BonziniSTEXI 1423ab2d0531SPaolo Bonzini@item object_del 1424ab2d0531SPaolo Bonzini@findex object_del 1425ab2d0531SPaolo BonziniDestroy QOM object. 1426ab2d0531SPaolo BonziniETEXI 1427ab2d0531SPaolo Bonzini 14282313086aSBlue Swirl#ifdef CONFIG_SLIRP 1429d7f9b689SLuiz Capitulino { 1430d7f9b689SLuiz Capitulino .name = "hostfwd_add", 1431d7f9b689SLuiz Capitulino .args_type = "arg1:s,arg2:s?,arg3:s?", 143293653066SThomas Huth .params = "[hub_id name]|[netdev_id] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport", 1433d7f9b689SLuiz Capitulino .help = "redirect TCP or UDP connections from host to guest (requires -net user)", 14342b9e3576SMarc-André Lureau .cmd = hmp_hostfwd_add, 1435d7f9b689SLuiz Capitulino }, 143621413d68SMarkus Armbruster#endif 143721413d68SMarkus ArmbrusterSTEXI 143821413d68SMarkus Armbruster@item hostfwd_add 143921413d68SMarkus Armbruster@findex hostfwd_add 144021413d68SMarkus ArmbrusterRedirect TCP or UDP connections from host to guest (requires -net user). 144121413d68SMarkus ArmbrusterETEXI 1442d7f9b689SLuiz Capitulino 144321413d68SMarkus Armbruster#ifdef CONFIG_SLIRP 1444d7f9b689SLuiz Capitulino { 1445d7f9b689SLuiz Capitulino .name = "hostfwd_remove", 1446d7f9b689SLuiz Capitulino .args_type = "arg1:s,arg2:s?,arg3:s?", 144793653066SThomas Huth .params = "[hub_id name]|[netdev_id] [tcp|udp]:[hostaddr]:hostport", 1448d7f9b689SLuiz Capitulino .help = "remove host-to-guest TCP or UDP redirection", 14492b9e3576SMarc-André Lureau .cmd = hmp_hostfwd_remove, 1450d7f9b689SLuiz Capitulino }, 1451d7f9b689SLuiz Capitulino 14522313086aSBlue Swirl#endif 14532313086aSBlue SwirlSTEXI 145421413d68SMarkus Armbruster@item hostfwd_remove 145521413d68SMarkus Armbruster@findex hostfwd_remove 145621413d68SMarkus ArmbrusterRemove host-to-guest TCP or UDP redirection. 14572313086aSBlue SwirlETEXI 14582313086aSBlue Swirl 1459d7f9b689SLuiz Capitulino { 1460d7f9b689SLuiz Capitulino .name = "balloon", 14613b0bd6ecSLuiz Capitulino .args_type = "value:M", 1462d7f9b689SLuiz Capitulino .params = "target", 14633c05613aSRiccardo Magliocchetti .help = "request VM to change its memory allocation (in MB)", 14642b9e3576SMarc-André Lureau .cmd = hmp_balloon, 1465d7f9b689SLuiz Capitulino }, 1466d7f9b689SLuiz Capitulino 14672313086aSBlue SwirlSTEXI 14682313086aSBlue Swirl@item balloon @var{value} 146970fcbbe7SStefan Weil@findex balloon 14702313086aSBlue SwirlRequest VM to change its memory allocation to @var{value} (in MB). 14712313086aSBlue SwirlETEXI 14722313086aSBlue Swirl 1473d7f9b689SLuiz Capitulino { 1474d7f9b689SLuiz Capitulino .name = "set_link", 1475c9b26a4cSMarkus Armbruster .args_type = "name:s,up:b", 1476c9b26a4cSMarkus Armbruster .params = "name on|off", 1477d7f9b689SLuiz Capitulino .help = "change the link status of a network adapter", 14782b9e3576SMarc-André Lureau .cmd = hmp_set_link, 147940d19394SHani Benhabiles .command_completion = set_link_completion, 1480d7f9b689SLuiz Capitulino }, 1481d7f9b689SLuiz Capitulino 14822313086aSBlue SwirlSTEXI 1483c9b26a4cSMarkus Armbruster@item set_link @var{name} [on|off] 148470fcbbe7SStefan Weil@findex set_link 1485c9b26a4cSMarkus ArmbrusterSwitch link @var{name} on (i.e. up) or off (i.e. down). 14862313086aSBlue SwirlETEXI 14872313086aSBlue Swirl 1488d7f9b689SLuiz Capitulino { 1489d7f9b689SLuiz Capitulino .name = "watchdog_action", 1490d7f9b689SLuiz Capitulino .args_type = "action:s", 1491d7f9b689SLuiz Capitulino .params = "[reset|shutdown|poweroff|pause|debug|none]", 1492d7f9b689SLuiz Capitulino .help = "change watchdog action", 14932b9e3576SMarc-André Lureau .cmd = hmp_watchdog_action, 1494d0ece345SHani Benhabiles .command_completion = watchdog_action_completion, 1495d7f9b689SLuiz Capitulino }, 1496d7f9b689SLuiz Capitulino 14972313086aSBlue SwirlSTEXI 14982313086aSBlue Swirl@item watchdog_action 149970fcbbe7SStefan Weil@findex watchdog_action 15002313086aSBlue SwirlChange watchdog action. 15012313086aSBlue SwirlETEXI 15022313086aSBlue Swirl 1503d7f9b689SLuiz Capitulino { 1504d7f9b689SLuiz Capitulino .name = "acl_show", 1505d7f9b689SLuiz Capitulino .args_type = "aclname:s", 1506d7f9b689SLuiz Capitulino .params = "aclname", 1507d7f9b689SLuiz Capitulino .help = "list rules in the access control list", 15082b9e3576SMarc-André Lureau .cmd = hmp_acl_show, 1509d7f9b689SLuiz Capitulino }, 1510d7f9b689SLuiz Capitulino 15112313086aSBlue SwirlSTEXI 151215dfcd45SJan Kiszka@item acl_show @var{aclname} 151370fcbbe7SStefan Weil@findex acl_show 151415dfcd45SJan KiszkaList all the matching rules in the access control list, and the default 151515dfcd45SJan Kiszkapolicy. There are currently two named access control lists, 151615dfcd45SJan Kiszka@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client 151715dfcd45SJan Kiszkacertificate distinguished name, and SASL username respectively. 151815dfcd45SJan KiszkaETEXI 15192313086aSBlue Swirl 1520d7f9b689SLuiz Capitulino { 1521d7f9b689SLuiz Capitulino .name = "acl_policy", 1522d7f9b689SLuiz Capitulino .args_type = "aclname:s,policy:s", 1523d7f9b689SLuiz Capitulino .params = "aclname allow|deny", 1524d7f9b689SLuiz Capitulino .help = "set default access control list policy", 15252b9e3576SMarc-André Lureau .cmd = hmp_acl_policy, 1526d7f9b689SLuiz Capitulino }, 1527d7f9b689SLuiz Capitulino 152815dfcd45SJan KiszkaSTEXI 1529cbbfacc6SJan Kiszka@item acl_policy @var{aclname} @code{allow|deny} 153070fcbbe7SStefan Weil@findex acl_policy 153115dfcd45SJan KiszkaSet the default access control list policy, used in the event that 15322313086aSBlue Swirlnone of the explicit rules match. The default policy at startup is 153315dfcd45SJan Kiszkaalways @code{deny}. 153415dfcd45SJan KiszkaETEXI 153515dfcd45SJan Kiszka 1536d7f9b689SLuiz Capitulino { 1537d7f9b689SLuiz Capitulino .name = "acl_add", 1538d7f9b689SLuiz Capitulino .args_type = "aclname:s,match:s,policy:s,index:i?", 1539d7f9b689SLuiz Capitulino .params = "aclname match allow|deny [index]", 1540d7f9b689SLuiz Capitulino .help = "add a match rule to the access control list", 15412b9e3576SMarc-André Lureau .cmd = hmp_acl_add, 1542d7f9b689SLuiz Capitulino }, 1543d7f9b689SLuiz Capitulino 154415dfcd45SJan KiszkaSTEXI 15450e4aec98SMarkus Armbruster@item acl_add @var{aclname} @var{match} @code{allow|deny} [@var{index}] 15460e4aec98SMarkus Armbruster@findex acl_add 154715dfcd45SJan KiszkaAdd a match rule to the access control list, allowing or denying access. 154815dfcd45SJan KiszkaThe match will normally be an exact username or x509 distinguished name, 154915dfcd45SJan Kiszkabut can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to 155015dfcd45SJan Kiszkaallow all users in the @code{EXAMPLE.COM} kerberos realm. The match will 15512313086aSBlue Swirlnormally be appended to the end of the ACL, but can be inserted 155215dfcd45SJan Kiszkaearlier in the list if the optional @var{index} parameter is supplied. 155315dfcd45SJan KiszkaETEXI 155415dfcd45SJan Kiszka 1555d7f9b689SLuiz Capitulino { 1556d7f9b689SLuiz Capitulino .name = "acl_remove", 1557d7f9b689SLuiz Capitulino .args_type = "aclname:s,match:s", 1558d7f9b689SLuiz Capitulino .params = "aclname match", 1559d7f9b689SLuiz Capitulino .help = "remove a match rule from the access control list", 15602b9e3576SMarc-André Lureau .cmd = hmp_acl_remove, 1561d7f9b689SLuiz Capitulino }, 1562d7f9b689SLuiz Capitulino 156315dfcd45SJan KiszkaSTEXI 156415dfcd45SJan Kiszka@item acl_remove @var{aclname} @var{match} 156570fcbbe7SStefan Weil@findex acl_remove 156615dfcd45SJan KiszkaRemove the specified match rule from the access control list. 156715dfcd45SJan KiszkaETEXI 156815dfcd45SJan Kiszka 1569d7f9b689SLuiz Capitulino { 1570d7f9b689SLuiz Capitulino .name = "acl_reset", 1571d7f9b689SLuiz Capitulino .args_type = "aclname:s", 1572d7f9b689SLuiz Capitulino .params = "aclname", 1573d7f9b689SLuiz Capitulino .help = "reset the access control list", 15742b9e3576SMarc-André Lureau .cmd = hmp_acl_reset, 1575d7f9b689SLuiz Capitulino }, 1576d7f9b689SLuiz Capitulino 157715dfcd45SJan KiszkaSTEXI 15780e4aec98SMarkus Armbruster@item acl_reset @var{aclname} 15790e4aec98SMarkus Armbruster@findex acl_reset 158015dfcd45SJan KiszkaRemove all matches from the access control list, and set the default 15812313086aSBlue Swirlpolicy back to @code{deny}. 15822313086aSBlue SwirlETEXI 15832313086aSBlue Swirl 15844057725fSPaolo Bonzini { 15854057725fSPaolo Bonzini .name = "nbd_server_start", 15864057725fSPaolo Bonzini .args_type = "all:-a,writable:-w,uri:s", 15874057725fSPaolo Bonzini .params = "nbd_server_start [-a] [-w] host:port", 15884057725fSPaolo Bonzini .help = "serve block devices on the given host and port", 15892b9e3576SMarc-André Lureau .cmd = hmp_nbd_server_start, 15904057725fSPaolo Bonzini }, 15914057725fSPaolo BonziniSTEXI 15924057725fSPaolo Bonzini@item nbd_server_start @var{host}:@var{port} 15934057725fSPaolo Bonzini@findex nbd_server_start 15944057725fSPaolo BonziniStart an NBD server on the given host and/or port. If the @option{-a} 15954057725fSPaolo Bonzinioption is included, all of the virtual machine's block devices that 15964057725fSPaolo Bonzinihave an inserted media on them are automatically exported; in this case, 15974057725fSPaolo Bonzinithe @option{-w} option makes the devices writable too. 15984057725fSPaolo BonziniETEXI 15994057725fSPaolo Bonzini 16004057725fSPaolo Bonzini { 16014057725fSPaolo Bonzini .name = "nbd_server_add", 1602dba49323SEric Blake .args_type = "writable:-w,device:B,name:s?", 1603dba49323SEric Blake .params = "nbd_server_add [-w] device [name]", 16044057725fSPaolo Bonzini .help = "export a block device via NBD", 16052b9e3576SMarc-André Lureau .cmd = hmp_nbd_server_add, 16064057725fSPaolo Bonzini }, 16074057725fSPaolo BonziniSTEXI 1608dba49323SEric Blake@item nbd_server_add @var{device} [ @var{name} ] 16094057725fSPaolo Bonzini@findex nbd_server_add 16104057725fSPaolo BonziniExport a block device through QEMU's NBD server, which must be started 16114057725fSPaolo Bonzinibeforehand with @command{nbd_server_start}. The @option{-w} option makes the 1612dba49323SEric Blakeexported device writable too. The export name is controlled by @var{name}, 1613dba49323SEric Blakedefaulting to @var{device}. 16144057725fSPaolo BonziniETEXI 16154057725fSPaolo Bonzini 16164057725fSPaolo Bonzini { 161708fb10a7SEric Blake .name = "nbd_server_remove", 161808fb10a7SEric Blake .args_type = "force:-f,name:s", 161908fb10a7SEric Blake .params = "nbd_server_remove [-f] name", 162008fb10a7SEric Blake .help = "remove an export previously exposed via NBD", 162108fb10a7SEric Blake .cmd = hmp_nbd_server_remove, 162208fb10a7SEric Blake }, 162308fb10a7SEric BlakeSTEXI 162408fb10a7SEric Blake@item nbd_server_remove [-f] @var{name} 162508fb10a7SEric Blake@findex nbd_server_remove 162608fb10a7SEric BlakeStop exporting a block device through QEMU's NBD server, which was 162708fb10a7SEric Blakepreviously started with @command{nbd_server_add}. The @option{-f} 162808fb10a7SEric Blakeoption forces the server to drop the export immediately even if 162908fb10a7SEric Blakeclients are connected; otherwise the command fails unless there are no 163008fb10a7SEric Blakeclients. 163108fb10a7SEric BlakeETEXI 163208fb10a7SEric Blake 163308fb10a7SEric Blake { 16344057725fSPaolo Bonzini .name = "nbd_server_stop", 16354057725fSPaolo Bonzini .args_type = "", 16364057725fSPaolo Bonzini .params = "nbd_server_stop", 16374057725fSPaolo Bonzini .help = "stop serving block devices using the NBD protocol", 16382b9e3576SMarc-André Lureau .cmd = hmp_nbd_server_stop, 16394057725fSPaolo Bonzini }, 16404057725fSPaolo BonziniSTEXI 16414057725fSPaolo Bonzini@item nbd_server_stop 16424057725fSPaolo Bonzini@findex nbd_server_stop 16434057725fSPaolo BonziniStop the QEMU embedded NBD server. 16444057725fSPaolo BonziniETEXI 16454057725fSPaolo Bonzini 16464057725fSPaolo Bonzini 164779c4f6b0SHuang Ying#if defined(TARGET_I386) 1648d7f9b689SLuiz Capitulino 1649d7f9b689SLuiz Capitulino { 1650d7f9b689SLuiz Capitulino .name = "mce", 165131ce5e0cSJin Dongming .args_type = "broadcast:-b,cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l", 165231ce5e0cSJin Dongming .params = "[-b] cpu bank status mcgstatus addr misc", 165331ce5e0cSJin Dongming .help = "inject a MCE on the given CPU [and broadcast to other CPUs with -b option]", 16542b9e3576SMarc-André Lureau .cmd = hmp_mce, 1655d7f9b689SLuiz Capitulino }, 1656d7f9b689SLuiz Capitulino 165779c4f6b0SHuang Ying#endif 165879c4f6b0SHuang YingSTEXI 165979c4f6b0SHuang Ying@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc} 166070fcbbe7SStefan Weil@findex mce (x86) 166179c4f6b0SHuang YingInject an MCE on the given CPU (x86 only). 166279c4f6b0SHuang YingETEXI 166379c4f6b0SHuang Ying 1664d7f9b689SLuiz Capitulino { 1665d7f9b689SLuiz Capitulino .name = "getfd", 1666d7f9b689SLuiz Capitulino .args_type = "fdname:s", 1667d7f9b689SLuiz Capitulino .params = "getfd name", 1668d7f9b689SLuiz Capitulino .help = "receive a file descriptor via SCM rights and assign it a name", 16692b9e3576SMarc-André Lureau .cmd = hmp_getfd, 1670d7f9b689SLuiz Capitulino }, 1671d7f9b689SLuiz Capitulino 1672f07918fdSMark McLoughlinSTEXI 1673f07918fdSMark McLoughlin@item getfd @var{fdname} 167470fcbbe7SStefan Weil@findex getfd 1675f07918fdSMark McLoughlinIf a file descriptor is passed alongside this command using the SCM_RIGHTS 1676f07918fdSMark McLoughlinmechanism on unix sockets, it is stored using the name @var{fdname} for 1677f07918fdSMark McLoughlinlater use by other monitor commands. 1678f07918fdSMark McLoughlinETEXI 1679f07918fdSMark McLoughlin 1680d7f9b689SLuiz Capitulino { 1681d7f9b689SLuiz Capitulino .name = "closefd", 1682d7f9b689SLuiz Capitulino .args_type = "fdname:s", 1683d7f9b689SLuiz Capitulino .params = "closefd name", 1684d7f9b689SLuiz Capitulino .help = "close a file descriptor previously passed via SCM rights", 16852b9e3576SMarc-André Lureau .cmd = hmp_closefd, 1686d7f9b689SLuiz Capitulino }, 1687d7f9b689SLuiz Capitulino 1688f07918fdSMark McLoughlinSTEXI 1689f07918fdSMark McLoughlin@item closefd @var{fdname} 169070fcbbe7SStefan Weil@findex closefd 1691f07918fdSMark McLoughlinClose the file descriptor previously assigned to @var{fdname} using the 1692f07918fdSMark McLoughlin@code{getfd} command. This is only needed if the file descriptor was never 1693f07918fdSMark McLoughlinused by another monitor command. 1694f07918fdSMark McLoughlinETEXI 1695f07918fdSMark McLoughlin 1696a3a55a2eSLuiz Capitulino { 1697a3a55a2eSLuiz Capitulino .name = "block_passwd", 1698a3a55a2eSLuiz Capitulino .args_type = "device:B,password:s", 1699a3a55a2eSLuiz Capitulino .params = "block_passwd device password", 1700a3a55a2eSLuiz Capitulino .help = "set the password of encrypted block devices", 17012b9e3576SMarc-André Lureau .cmd = hmp_block_passwd, 1702a3a55a2eSLuiz Capitulino }, 1703a3a55a2eSLuiz Capitulino 1704a3a55a2eSLuiz CapitulinoSTEXI 1705b76d799eSMarkus Armbruster@item block_passwd @var{device} @var{password} 1706b76d799eSMarkus Armbruster@findex block_passwd 1707b76d799eSMarkus ArmbrusterSet the encrypted device @var{device} password to @var{password} 1708c01c214bSDaniel P. Berrange 1709c01c214bSDaniel P. BerrangeThis command is now obsolete and will always return an error since 2.10 1710727f005eSZhi Yong WuETEXI 1711727f005eSZhi Yong Wu 1712727f005eSZhi Yong Wu { 1713727f005eSZhi Yong Wu .name = "block_set_io_throttle", 1714727f005eSZhi Yong Wu .args_type = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l", 1715727f005eSZhi Yong Wu .params = "device bps bps_rd bps_wr iops iops_rd iops_wr", 1716727f005eSZhi Yong Wu .help = "change I/O throttle limits for a block drive", 17172b9e3576SMarc-André Lureau .cmd = hmp_block_set_io_throttle, 1718727f005eSZhi Yong Wu }, 1719727f005eSZhi Yong Wu 1720727f005eSZhi Yong WuSTEXI 1721b76d799eSMarkus Armbruster@item block_set_io_throttle @var{device} @var{bps} @var{bps_rd} @var{bps_wr} @var{iops} @var{iops_rd} @var{iops_wr} 1722b76d799eSMarkus Armbruster@findex block_set_io_throttle 172383592184SAlberto GarciaChange I/O throttle limits for a block drive to @var{bps} @var{bps_rd} @var{bps_wr} @var{iops} @var{iops_rd} @var{iops_wr}. 172483592184SAlberto Garcia@var{device} can be a block device name, a qdev ID or a QOM path. 1725a3a55a2eSLuiz CapitulinoETEXI 1726b40292e7SJan Kiszka 172733572eceSJan Kiszka { 17287572150cSGerd Hoffmann .name = "set_password", 17297572150cSGerd Hoffmann .args_type = "protocol:s,password:s,connected:s?", 17307572150cSGerd Hoffmann .params = "protocol password action-if-connected", 17317572150cSGerd Hoffmann .help = "set spice/vnc password", 17322b9e3576SMarc-André Lureau .cmd = hmp_set_password, 17337572150cSGerd Hoffmann }, 17347572150cSGerd Hoffmann 17357572150cSGerd HoffmannSTEXI 17367572150cSGerd Hoffmann@item set_password [ vnc | spice ] password [ action-if-connected ] 17377572150cSGerd Hoffmann@findex set_password 17387572150cSGerd HoffmannChange spice/vnc password. Use zero to make the password stay valid 17397572150cSGerd Hoffmannforever. @var{action-if-connected} specifies what should happen in 17407572150cSGerd Hoffmanncase a connection is established: @var{fail} makes the password change 17417572150cSGerd Hoffmannfail. @var{disconnect} changes the password and disconnects the 17427572150cSGerd Hoffmannclient. @var{keep} changes the password and keeps the connection up. 17437572150cSGerd Hoffmann@var{keep} is the default. 17447572150cSGerd HoffmannETEXI 17457572150cSGerd Hoffmann 17467572150cSGerd Hoffmann { 17477572150cSGerd Hoffmann .name = "expire_password", 17487572150cSGerd Hoffmann .args_type = "protocol:s,time:s", 17497572150cSGerd Hoffmann .params = "protocol time", 17507572150cSGerd Hoffmann .help = "set spice/vnc password expire-time", 17512b9e3576SMarc-André Lureau .cmd = hmp_expire_password, 17527572150cSGerd Hoffmann }, 17537572150cSGerd Hoffmann 17547572150cSGerd HoffmannSTEXI 17557572150cSGerd Hoffmann@item expire_password [ vnc | spice ] expire-time 17567572150cSGerd Hoffmann@findex expire_password 17577572150cSGerd HoffmannSpecify when a password for spice/vnc becomes 17587572150cSGerd Hoffmanninvalid. @var{expire-time} accepts: 17597572150cSGerd Hoffmann 17607572150cSGerd Hoffmann@table @var 17617572150cSGerd Hoffmann@item now 17627572150cSGerd HoffmannInvalidate password instantly. 17637572150cSGerd Hoffmann 17647572150cSGerd Hoffmann@item never 17657572150cSGerd HoffmannPassword stays valid forever. 17667572150cSGerd Hoffmann 17677572150cSGerd Hoffmann@item +nsec 17687572150cSGerd HoffmannPassword stays valid for @var{nsec} seconds starting now. 17697572150cSGerd Hoffmann 17707572150cSGerd Hoffmann@item nsec 17717572150cSGerd HoffmannPassword is invalidated at the given time. @var{nsec} are the seconds 17727572150cSGerd Hoffmannpassed since 1970, i.e. unix epoch. 17737572150cSGerd Hoffmann 17747572150cSGerd Hoffmann@end table 17757572150cSGerd HoffmannETEXI 17767572150cSGerd Hoffmann 177746920825SGerd Hoffmann { 177846920825SGerd Hoffmann .name = "chardev-add", 177946920825SGerd Hoffmann .args_type = "args:s", 178046920825SGerd Hoffmann .params = "args", 178146920825SGerd Hoffmann .help = "add chardev", 17822b9e3576SMarc-André Lureau .cmd = hmp_chardev_add, 178313e315daSHani Benhabiles .command_completion = chardev_add_completion, 178446920825SGerd Hoffmann }, 178546920825SGerd Hoffmann 178646920825SGerd HoffmannSTEXI 1787b76d799eSMarkus Armbruster@item chardev-add args 1788b76d799eSMarkus Armbruster@findex chardev-add 178975b60160SAnton Nefedovchardev-add accepts the same parameters as the -chardev command line switch. 179075b60160SAnton Nefedov 179175b60160SAnton NefedovETEXI 179275b60160SAnton Nefedov 179375b60160SAnton Nefedov { 179475b60160SAnton Nefedov .name = "chardev-change", 179575b60160SAnton Nefedov .args_type = "id:s,args:s", 179675b60160SAnton Nefedov .params = "id args", 179775b60160SAnton Nefedov .help = "change chardev", 179875b60160SAnton Nefedov .cmd = hmp_chardev_change, 179975b60160SAnton Nefedov }, 180075b60160SAnton Nefedov 180175b60160SAnton NefedovSTEXI 180275b60160SAnton Nefedov@item chardev-change args 180375b60160SAnton Nefedov@findex chardev-change 180475b60160SAnton Nefedovchardev-change accepts existing chardev @var{id} and then the same arguments 180575b60160SAnton Nefedovas the -chardev command line switch (except for "id"). 180646920825SGerd Hoffmann 180746920825SGerd HoffmannETEXI 180846920825SGerd Hoffmann 180946920825SGerd Hoffmann { 181046920825SGerd Hoffmann .name = "chardev-remove", 181146920825SGerd Hoffmann .args_type = "id:s", 181246920825SGerd Hoffmann .params = "id", 181346920825SGerd Hoffmann .help = "remove chardev", 18142b9e3576SMarc-André Lureau .cmd = hmp_chardev_remove, 18156297d9a2SHani Benhabiles .command_completion = chardev_remove_completion, 181646920825SGerd Hoffmann }, 181746920825SGerd Hoffmann 181846920825SGerd HoffmannSTEXI 1819b76d799eSMarkus Armbruster@item chardev-remove id 1820b76d799eSMarkus Armbruster@findex chardev-remove 182146920825SGerd HoffmannRemoves the chardev @var{id}. 182246920825SGerd Hoffmann 182346920825SGerd HoffmannETEXI 1824f1088908SGerd Hoffmann 1825f1088908SGerd Hoffmann { 1826bd1d5ad9SStefan Fritsch .name = "chardev-send-break", 1827bd1d5ad9SStefan Fritsch .args_type = "id:s", 1828bd1d5ad9SStefan Fritsch .params = "id", 1829bd1d5ad9SStefan Fritsch .help = "send a break on chardev", 1830bd1d5ad9SStefan Fritsch .cmd = hmp_chardev_send_break, 1831bd1d5ad9SStefan Fritsch .command_completion = chardev_remove_completion, 1832bd1d5ad9SStefan Fritsch }, 1833bd1d5ad9SStefan Fritsch 1834bd1d5ad9SStefan FritschSTEXI 1835bd1d5ad9SStefan Fritsch@item chardev-send-break id 1836bd1d5ad9SStefan Fritsch@findex chardev-send-break 1837bd1d5ad9SStefan FritschSend a break on the chardev @var{id}. 1838bd1d5ad9SStefan Fritsch 1839bd1d5ad9SStefan FritschETEXI 1840bd1d5ad9SStefan Fritsch 1841bd1d5ad9SStefan Fritsch { 1842587da2c3SKevin Wolf .name = "qemu-io", 1843587da2c3SKevin Wolf .args_type = "device:B,command:s", 1844587da2c3SKevin Wolf .params = "[device] \"[command]\"", 1845587da2c3SKevin Wolf .help = "run a qemu-io command on a block device", 18462b9e3576SMarc-André Lureau .cmd = hmp_qemu_io, 1847587da2c3SKevin Wolf }, 1848587da2c3SKevin Wolf 1849587da2c3SKevin WolfSTEXI 1850587da2c3SKevin Wolf@item qemu-io @var{device} @var{command} 1851587da2c3SKevin Wolf@findex qemu-io 1852587da2c3SKevin WolfExecutes a qemu-io command on the given block device. 1853587da2c3SKevin Wolf 1854587da2c3SKevin WolfETEXI 1855587da2c3SKevin Wolf 1856587da2c3SKevin Wolf { 1857abf23329SJason J. Herne .name = "cpu-add", 1858abf23329SJason J. Herne .args_type = "id:i", 1859abf23329SJason J. Herne .params = "id", 1860e25701b7SKashyap Chamarthy .help = "add cpu (deprecated, use device_add instead)", 18612b9e3576SMarc-André Lureau .cmd = hmp_cpu_add, 1862abf23329SJason J. Herne }, 1863abf23329SJason J. Herne 1864abf23329SJason J. HerneSTEXI 1865abf23329SJason J. Herne@item cpu-add @var{id} 1866b76d799eSMarkus Armbruster@findex cpu-add 1867e25701b7SKashyap ChamarthyAdd CPU with id @var{id}. This command is deprecated, please 1868e25701b7SKashyap Chamarthy+use @code{device_add} instead. For details, refer to 1869e25701b7SKashyap Chamarthy'docs/cpu-hotplug.rst'. 1870abf23329SJason J. HerneETEXI 1871abf23329SJason J. Herne 1872abf23329SJason J. Herne { 187389d7fa9eSAndreas Färber .name = "qom-list", 187489d7fa9eSAndreas Färber .args_type = "path:s?", 187589d7fa9eSAndreas Färber .params = "path", 187689d7fa9eSAndreas Färber .help = "list QOM properties", 18772b9e3576SMarc-André Lureau .cmd = hmp_qom_list, 18788c7c7ecbSDr. David Alan Gilbert .flags = "p", 187989d7fa9eSAndreas Färber }, 188089d7fa9eSAndreas Färber 188189d7fa9eSAndreas FärberSTEXI 188289d7fa9eSAndreas Färber@item qom-list [@var{path}] 188389d7fa9eSAndreas FärberPrint QOM properties of object at location @var{path} 188489d7fa9eSAndreas FärberETEXI 188589d7fa9eSAndreas Färber 188689d7fa9eSAndreas Färber { 1887c0e6ee9eSAndreas Färber .name = "qom-set", 1888c0e6ee9eSAndreas Färber .args_type = "path:s,property:s,value:s", 1889c0e6ee9eSAndreas Färber .params = "path property value", 1890c0e6ee9eSAndreas Färber .help = "set QOM property", 18912b9e3576SMarc-André Lureau .cmd = hmp_qom_set, 18928c7c7ecbSDr. David Alan Gilbert .flags = "p", 1893c0e6ee9eSAndreas Färber }, 1894c0e6ee9eSAndreas Färber 1895c0e6ee9eSAndreas FärberSTEXI 1896c0e6ee9eSAndreas Färber@item qom-set @var{path} @var{property} @var{value} 1897c0e6ee9eSAndreas FärberSet QOM property @var{property} of object at location @var{path} to value @var{value} 1898c0e6ee9eSAndreas FärberETEXI 1899c0e6ee9eSAndreas Färber 1900c0e6ee9eSAndreas Färber { 190133572eceSJan Kiszka .name = "info", 190233572eceSJan Kiszka .args_type = "item:s?", 190333572eceSJan Kiszka .params = "[subcommand]", 190433572eceSJan Kiszka .help = "show various information about the system state", 19052b9e3576SMarc-André Lureau .cmd = hmp_info_help, 190684c44613SWenchao Xia .sub_table = info_cmds, 19078c7c7ecbSDr. David Alan Gilbert .flags = "p", 190833572eceSJan Kiszka }, 190933572eceSJan Kiszka 191033572eceSJan KiszkaSTEXI 191170703344SPavel Butsykin@end table 191270703344SPavel ButsykinETEXI 1913