qemu-monitor.hx 30.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
HXCOMM Use DEFHEADING() to define headings in both help text and texi
HXCOMM Text between STEXI and ETEXI are copied to texi version and
HXCOMM discarded from C version
HXCOMM DEF(command, args, callback, arg_string, help) is used to construct
HXCOMM monitor commands
HXCOMM HXCOMM can be used for comments, discarded from both texi and C

STEXI
@table @option
ETEXI

12 13 14 15 16
    {
        .name       = "help|?",
        .args_type  = "name:s?",
        .params     = "[cmd]",
        .help       = "show the help",
17
        .mhandler.cmd = do_help_cmd,
18 19
    },

20 21
STEXI
@item help or ? [@var{cmd}]
22
@findex help
23 24 25
Show the help for all commands or just for command @var{cmd}.
ETEXI

26 27 28 29 30
    {
        .name       = "commit",
        .args_type  = "device:B",
        .params     = "device|all",
        .help       = "commit changes to the disk images (if -snapshot is used) or backing files",
31
        .mhandler.cmd = do_commit,
32 33
    },

34 35
STEXI
@item commit
36
@findex commit
37 38 39
Commit changes to the disk images (if -snapshot is used) or backing files.
ETEXI

40 41 42 43 44
    {
        .name       = "info",
        .args_type  = "item:s?",
        .params     = "[subcommand]",
        .help       = "show various information about the system state",
45
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
46
        .mhandler.cmd_new = do_info,
47 48
    },

49 50
STEXI
@item info @var{subcommand}
51
@findex info
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
Show various information about the system state.

@table @option
@item info version
show the version of QEMU
@item info network
show the various VLANs and the associated devices
@item info chardev
show the character devices
@item info block
show the block devices
@item info block
show block device statistics
@item info registers
show the cpu registers
@item info cpus
show infos for each CPU
@item info history
show the command line history
@item info irq
show the interrupts statistics (if available)
@item info pic
show i8259 (PIC) state
@item info pci
show emulated PCI device info
@item info tlb
show virtual to physical memory mappings (i386 only)
@item info mem
show the active virtual memory mappings (i386 only)
@item info hpet
show state of HPET (i386 only)
@item info kvm
show KVM information
@item info usb
show USB devices plugged on the virtual USB hub
@item info usbhost
show all USB host devices
@item info profile
show profiling information
@item info capture
show information about active capturing
@item info snapshots
show list of VM snapshots
@item info status
show the current VM status (running|paused)
@item info pcmcia
show guest PCMCIA status
@item info mice
show which guest mouse is receiving events
@item info vnc
show the vnc server status
@item info name
show the current VM name
@item info uuid
show the current VM UUID
@item info cpustats
show CPU statistics
109 110
@item info usernet
show user network stack connection states
111 112 113 114 115 116 117 118 119
@item info migrate
show migration status
@item info balloon
show balloon information
@item info qtree
show device tree
@end table
ETEXI

120 121 122 123 124
    {
        .name       = "q|quit",
        .args_type  = "",
        .params     = "",
        .help       = "quit the emulator",
125
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
126
        .mhandler.cmd_new = do_quit,
127 128
    },

129 130
STEXI
@item q or quit
131
@findex quit
132 133 134
Quit the emulator.
ETEXI

135 136
    {
        .name       = "eject",
L
Luiz Capitulino 已提交
137
        .args_type  = "force:-f,device:B",
138 139
        .params     = "[-f] device",
        .help       = "eject a removable medium (use -f to force it)",
140
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
141
        .mhandler.cmd_new = do_eject,
142 143
    },

144 145
STEXI
@item eject [-f] @var{device}
146
@findex eject
147 148 149
Eject a removable medium (use -f to force it).
ETEXI

150 151 152 153 154
    {
        .name       = "change",
        .args_type  = "device:B,target:F,arg:s?",
        .params     = "device filename [format]",
        .help       = "change a removable medium, optional format",
155
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
156
        .mhandler.cmd_new = do_change,
157 158
    },

159 160
STEXI
@item change @var{device} @var{setting}
161
@findex change
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196

Change the configuration of a device.

@table @option
@item change @var{diskdevice} @var{filename} [@var{format}]
Change the medium for a removable disk device to point to @var{filename}. eg

@example
(qemu) change ide1-cd0 /path/to/some.iso
@end example

@var{format} is optional.

@item change vnc @var{display},@var{options}
Change the configuration of the VNC server. The valid syntax for @var{display}
and @var{options} are described at @ref{sec_invocation}. eg

@example
(qemu) change vnc localhost:1
@end example

@item change vnc password [@var{password}]

Change the password associated with the VNC server. If the new password is not
supplied, the monitor will prompt for it to be entered. VNC passwords are only
significant up to 8 letters. eg

@example
(qemu) change vnc password
Password: ********
@end example

@end table
ETEXI

197 198 199 200 201
    {
        .name       = "screendump",
        .args_type  = "filename:F",
        .params     = "filename",
        .help       = "save screen into PPM image 'filename'",
202 203
        .user_print = monitor_user_noop,
        .mhandler.cmd_new = do_screen_dump,
204 205
    },

206 207
STEXI
@item screendump @var{filename}
208
@findex screendump
209 210 211
Save screen into PPM image @var{filename}.
ETEXI

212 213 214 215 216
    {
        .name       = "logfile",
        .args_type  = "filename:F",
        .params     = "filename",
        .help       = "output logs to 'filename'",
217
        .mhandler.cmd = do_logfile,
218 219
    },

220 221
STEXI
@item logfile @var{filename}
222
@findex logfile
223 224 225
Output logs to @var{filename}.
ETEXI

226 227 228 229 230
    {
        .name       = "log",
        .args_type  = "items:s",
        .params     = "item1[,...]",
        .help       = "activate logging of the specified items to '/tmp/qemu.log'",
231
        .mhandler.cmd = do_log,
232 233
    },

234 235
STEXI
@item log @var{item1}[,...]
236
@findex log
237 238 239
Activate logging of the specified items to @file{/tmp/qemu.log}.
ETEXI

240 241 242 243 244
    {
        .name       = "savevm",
        .args_type  = "name:s?",
        .params     = "[tag|id]",
        .help       = "save a VM snapshot. If no tag or id are provided, a new snapshot is created",
245
        .mhandler.cmd = do_savevm,
246 247
    },

248 249
STEXI
@item savevm [@var{tag}|@var{id}]
250
@findex savevm
251 252 253 254 255 256
Create a snapshot of the whole virtual machine. If @var{tag} is
provided, it is used as human readable identifier. If there is already
a snapshot with the same tag or ID, it is replaced. More info at
@ref{vm_snapshots}.
ETEXI

257 258 259 260 261
    {
        .name       = "loadvm",
        .args_type  = "name:s",
        .params     = "tag|id",
        .help       = "restore a VM snapshot from its tag or id",
262
        .mhandler.cmd = do_loadvm,
263 264
    },

265 266
STEXI
@item loadvm @var{tag}|@var{id}
267
@findex loadvm
268 269 270 271
Set the whole virtual machine to the snapshot identified by the tag
@var{tag} or the unique snapshot ID @var{id}.
ETEXI

272 273 274 275 276
    {
        .name       = "delvm",
        .args_type  = "name:s",
        .params     = "tag|id",
        .help       = "delete a VM snapshot from its tag or id",
277
        .mhandler.cmd = do_delvm,
278 279
    },

280 281
STEXI
@item delvm @var{tag}|@var{id}
282
@findex delvm
283 284 285
Delete the snapshot identified by @var{tag} or @var{id}.
ETEXI

286 287 288 289 290
    {
        .name       = "singlestep",
        .args_type  = "option:s?",
        .params     = "[on|off]",
        .help       = "run emulation in singlestep mode or switch to normal mode",
291
        .mhandler.cmd = do_singlestep,
292 293
    },

294 295
STEXI
@item singlestep [off]
296
@findex singlestep
297 298 299 300
Run the emulation in single step mode.
If called with option off, the emulation returns to normal mode.
ETEXI

301 302 303 304 305
    {
        .name       = "stop",
        .args_type  = "",
        .params     = "",
        .help       = "stop emulation",
306
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
307
        .mhandler.cmd_new = do_stop,
308 309
    },

310 311
STEXI
@item stop
312
@findex stop
313 314 315
Stop emulation.
ETEXI

316 317 318 319 320
    {
        .name       = "c|cont",
        .args_type  = "",
        .params     = "",
        .help       = "resume emulation",
321
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
322
        .mhandler.cmd_new = do_cont,
323 324
    },

325 326
STEXI
@item c or cont
327
@findex cont
328 329 330
Resume emulation.
ETEXI

331 332 333 334 335
    {
        .name       = "gdbserver",
        .args_type  = "device:s?",
        .params     = "[device]",
        .help       = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
336
        .mhandler.cmd = do_gdbserver,
337 338
    },

339 340
STEXI
@item gdbserver [@var{port}]
341
@findex gdbserver
342 343 344
Start gdbserver session (default @var{port}=1234)
ETEXI

345 346 347 348 349
    {
        .name       = "x",
        .args_type  = "fmt:/,addr:l",
        .params     = "/fmt addr",
        .help       = "virtual memory dump starting at 'addr'",
350
        .mhandler.cmd = do_memory_dump,
351 352
    },

353 354
STEXI
@item x/fmt @var{addr}
355
@findex x
356 357 358
Virtual memory dump starting at @var{addr}.
ETEXI

359 360 361 362 363
    {
        .name       = "xp",
        .args_type  = "fmt:/,addr:l",
        .params     = "/fmt addr",
        .help       = "physical memory dump starting at 'addr'",
364
        .mhandler.cmd = do_physical_memory_dump,
365 366
    },

367 368
STEXI
@item xp /@var{fmt} @var{addr}
369
@findex xp
370 371 372 373 374 375 376
Physical memory dump starting at @var{addr}.

@var{fmt} is a format which tells the command how to format the
data. Its syntax is: @option{/@{count@}@{format@}@{size@}}

@table @var
@item count
377
@findex count
378 379 380
is the number of items to be dumped.

@item format
381
@findex format
382 383 384 385
can be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
c (char) or i (asm instruction).

@item size
386
@findex size
387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428
can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
@code{h} or @code{w} can be specified with the @code{i} format to
respectively select 16 or 32 bit code instruction size.

@end table

Examples:
@itemize
@item
Dump 10 instructions at the current instruction pointer:
@example
(qemu) x/10i $eip
0x90107063:  ret
0x90107064:  sti
0x90107065:  lea    0x0(%esi,1),%esi
0x90107069:  lea    0x0(%edi,1),%edi
0x90107070:  ret
0x90107071:  jmp    0x90107080
0x90107073:  nop
0x90107074:  nop
0x90107075:  nop
0x90107076:  nop
@end example

@item
Dump 80 16 bit values at the start of the video memory.
@smallexample
(qemu) xp/80hx 0xb8000
0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
@end smallexample
@end itemize
ETEXI

429 430 431 432 433
    {
        .name       = "p|print",
        .args_type  = "fmt:/,val:l",
        .params     = "/fmt expr",
        .help       = "print expression value (use $reg for CPU register access)",
434
        .mhandler.cmd = do_print,
435 436
    },

437 438
STEXI
@item p or print/@var{fmt} @var{expr}
439
@findex print
440 441 442 443 444

Print expression value. Only the @var{format} part of @var{fmt} is
used.
ETEXI

445 446 447 448 449
    {
        .name       = "i",
        .args_type  = "fmt:/,addr:i,index:i.",
        .params     = "/fmt addr",
        .help       = "I/O port read",
450
        .mhandler.cmd = do_ioport_read,
451 452
    },

453 454 455 456
STEXI
Read I/O port.
ETEXI

457 458 459 460 461
    {
        .name       = "o",
        .args_type  = "fmt:/,addr:i,val:i",
        .params     = "/fmt addr value",
        .help       = "I/O port write",
462
        .mhandler.cmd = do_ioport_write,
463 464
    },

J
Jan Kiszka 已提交
465 466 467
STEXI
Write to I/O port.
ETEXI
468

469 470 471 472 473
    {
        .name       = "sendkey",
        .args_type  = "string:s,hold_time:i?",
        .params     = "keys [hold_ms]",
        .help       = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
474
        .mhandler.cmd = do_sendkey,
475 476
    },

477 478
STEXI
@item sendkey @var{keys}
479
@findex sendkey
480 481 482 483 484 485 486 487 488 489 490 491

Send @var{keys} to the emulator. @var{keys} could be the name of the
key or @code{#} followed by the raw value in either decimal or hexadecimal
format. Use @code{-} to press several keys simultaneously. Example:
@example
sendkey ctrl-alt-f1
@end example

This command is useful to send keys that your graphical user interface
intercepts at low level, such as @code{ctrl-alt-f1} in X Window.
ETEXI

492 493 494 495 496
    {
        .name       = "system_reset",
        .args_type  = "",
        .params     = "",
        .help       = "reset the system",
497
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
498
        .mhandler.cmd_new = do_system_reset,
499 500
    },

501 502
STEXI
@item system_reset
503
@findex system_reset
504 505 506 507

Reset the system.
ETEXI

508 509 510 511 512
    {
        .name       = "system_powerdown",
        .args_type  = "",
        .params     = "",
        .help       = "send system power down event",
513
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
514
        .mhandler.cmd_new = do_system_powerdown,
515 516
    },

517 518
STEXI
@item system_powerdown
519
@findex system_powerdown
520 521 522 523

Power down the system (if supported).
ETEXI

524 525 526 527 528
    {
        .name       = "sum",
        .args_type  = "start:i,size:i",
        .params     = "addr size",
        .help       = "compute the checksum of a memory region",
529
        .mhandler.cmd = do_sum,
530 531
    },

532 533
STEXI
@item sum @var{addr} @var{size}
534
@findex sum
535 536 537 538

Compute the checksum of a memory region.
ETEXI

539 540 541 542 543
    {
        .name       = "usb_add",
        .args_type  = "devname:s",
        .params     = "device",
        .help       = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
544
        .mhandler.cmd = do_usb_add,
545 546
    },

547 548
STEXI
@item usb_add @var{devname}
549
@findex usb_add
550 551 552 553 554

Add the USB device @var{devname}.  For details of available devices see
@ref{usb_devices}
ETEXI

555 556 557 558 559
    {
        .name       = "usb_del",
        .args_type  = "devname:s",
        .params     = "device",
        .help       = "remove USB device 'bus.addr'",
560
        .mhandler.cmd = do_usb_del,
561 562
    },

563 564
STEXI
@item usb_del @var{devname}
565
@findex usb_del
566 567 568 569 570 571

Remove the USB device @var{devname} from the QEMU virtual USB
hub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
command @code{info usb} to see the devices you can remove.
ETEXI

572 573
    {
        .name       = "device_add",
574 575
        .args_type  = "device:O",
        .params     = "driver[,prop=value][,...]",
576
        .help       = "add device, like -device on the command line",
577 578
        .user_print = monitor_user_noop,
        .mhandler.cmd_new = do_device_add,
579 580
    },

581 582
STEXI
@item device_add @var{config}
583
@findex device_add
584 585 586 587

Add device.
ETEXI

588 589 590 591 592
    {
        .name       = "device_del",
        .args_type  = "id:s",
        .params     = "device",
        .help       = "remove device",
593 594
        .user_print = monitor_user_noop,
        .mhandler.cmd_new = do_device_del,
595 596
    },

597 598
STEXI
@item device_del @var{id}
599
@findex device_del
600 601 602 603

Remove device @var{id}.
ETEXI

604 605 606 607 608
    {
        .name       = "cpu",
        .args_type  = "index:i",
        .params     = "index",
        .help       = "set the default CPU",
609
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
610
        .mhandler.cmd_new = do_cpu_set,
611
    },
612

613 614 615 616
STEXI
Set the default CPU.
ETEXI

617 618 619 620 621
    {
        .name       = "mouse_move",
        .args_type  = "dx_str:s,dy_str:s,dz_str:s?",
        .params     = "dx dy [dz]",
        .help       = "send mouse move events",
622
        .mhandler.cmd = do_mouse_move,
623 624
    },

625 626
STEXI
@item mouse_move @var{dx} @var{dy} [@var{dz}]
627
@findex mouse_move
628 629 630 631
Move the active mouse to the specified coordinates @var{dx} @var{dy}
with optional scroll axis @var{dz}.
ETEXI

632 633 634 635 636
    {
        .name       = "mouse_button",
        .args_type  = "button_state:i",
        .params     = "state",
        .help       = "change mouse button state (1=L, 2=M, 4=R)",
637
        .mhandler.cmd = do_mouse_button,
638 639
    },

640 641
STEXI
@item mouse_button @var{val}
642
@findex mouse_button
643 644 645
Change the active mouse button state @var{val} (1=L, 2=M, 4=R).
ETEXI

646 647 648 649 650
    {
        .name       = "mouse_set",
        .args_type  = "index:i",
        .params     = "index",
        .help       = "set which mouse device receives events",
651
        .mhandler.cmd = do_mouse_set,
652 653
    },

654 655
STEXI
@item mouse_set @var{index}
656
@findex mouse_set
657 658 659 660 661 662 663 664
Set which mouse device receives events at given @var{index}, index
can be obtained with
@example
info mice
@end example
ETEXI

#ifdef HAS_AUDIO
665 666 667 668 669
    {
        .name       = "wavcapture",
        .args_type  = "path:F,freq:i?,bits:i?,nchannels:i?",
        .params     = "path [frequency [bits [channels]]]",
        .help       = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
670
        .mhandler.cmd = do_wav_capture,
671
    },
672 673 674
#endif
STEXI
@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
675
@findex wavcapture
676 677 678 679 680 681 682 683 684 685 686 687
Capture audio into @var{filename}. Using sample rate @var{frequency}
bits per sample @var{bits} and number of channels @var{channels}.

Defaults:
@itemize @minus
@item Sample rate = 44100 Hz - CD quality
@item Bits = 16
@item Number of channels = 2 - Stereo
@end itemize
ETEXI

#ifdef HAS_AUDIO
688 689 690 691 692
    {
        .name       = "stopcapture",
        .args_type  = "n:i",
        .params     = "capture index",
        .help       = "stop capture",
693
        .mhandler.cmd = do_stop_capture,
694
    },
695 696 697
#endif
STEXI
@item stopcapture @var{index}
698
@findex stopcapture
699 700 701 702 703 704
Stop capture with a given @var{index}, index can be obtained with
@example
info capture
@end example
ETEXI

705 706 707 708 709
    {
        .name       = "memsave",
        .args_type  = "val:l,size:i,filename:s",
        .params     = "addr size file",
        .help       = "save to disk virtual memory dump starting at 'addr' of size 'size'",
710
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
711
        .mhandler.cmd_new = do_memory_save,
712 713
    },

714 715
STEXI
@item memsave @var{addr} @var{size} @var{file}
716
@findex memsave
717 718 719
save to disk virtual memory dump starting at @var{addr} of size @var{size}.
ETEXI

720 721 722 723 724
    {
        .name       = "pmemsave",
        .args_type  = "val:l,size:i,filename:s",
        .params     = "addr size file",
        .help       = "save to disk physical memory dump starting at 'addr' of size 'size'",
725
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
726
        .mhandler.cmd_new = do_physical_memory_save,
727 728
    },

729 730
STEXI
@item pmemsave @var{addr} @var{size} @var{file}
731
@findex pmemsave
732 733 734
save to disk physical memory dump starting at @var{addr} of size @var{size}.
ETEXI

735 736 737 738 739
    {
        .name       = "boot_set",
        .args_type  = "bootdevice:s",
        .params     = "bootdevice",
        .help       = "define new values for the boot device list",
740
        .mhandler.cmd = do_boot_set,
741 742
    },

743 744
STEXI
@item boot_set @var{bootdevicelist}
745
@findex boot_set
746 747 748 749 750 751 752 753 754

Define new values for the boot device list. Those values will override
the values specified on the command line through the @code{-boot} option.

The values that can be specified here depend on the machine type, but are
the same that can be specified in the @code{-boot} command line option.
ETEXI

#if defined(TARGET_I386)
755 756 757 758 759
    {
        .name       = "nmi",
        .args_type  = "cpu_index:i",
        .params     = "cpu",
        .help       = "inject an NMI on the given CPU",
760
        .mhandler.cmd = do_inject_nmi,
761
    },
762 763 764
#endif
STEXI
@item nmi @var{cpu}
765
@findex nmi
766 767 768
Inject an NMI on the given CPU (x86 only).
ETEXI

769 770
    {
        .name       = "migrate",
771 772 773 774 775 776 777 778
        .args_type  = "detach:-d,blk:-b,inc:-i,uri:s",
        .params     = "[-d] [-b] [-i] uri",
        .help       = "migrate to URI (using -d to not wait for completion)"
		      "\n\t\t\t -b for migration without shared storage with"
		      " full copy of disk\n\t\t\t -i for migration without "
		      "shared storage with incremental copy of disk "
		      "(base image shared between src and destination)",
        .user_print = monitor_user_noop,	
L
Luiz Capitulino 已提交
779
	.mhandler.cmd_new = do_migrate,
780 781
    },

782

783
STEXI
784
@item migrate [-d] [-b] [-i] @var{uri}
785
@findex migrate
786
Migrate to @var{uri} (using -d to not wait for completion).
787 788
	-b for migration with full copy of disk
	-i for migration with incremental copy of disk (base image is shared)
789 790
ETEXI

791 792 793 794 795
    {
        .name       = "migrate_cancel",
        .args_type  = "",
        .params     = "",
        .help       = "cancel the current VM migration",
796
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
797
        .mhandler.cmd_new = do_migrate_cancel,
798 799
    },

800 801
STEXI
@item migrate_cancel
802
@findex migrate_cancel
803 804 805
Cancel the current VM migration.
ETEXI

806 807
    {
        .name       = "migrate_set_speed",
808
        .args_type  = "value:f",
809 810
        .params     = "value",
        .help       = "set maximum speed (in bytes) for migrations",
811
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
812
        .mhandler.cmd_new = do_migrate_set_speed,
813 814
    },

815 816
STEXI
@item migrate_set_speed @var{value}
817
@findex migrate_set_speed
818
Set maximum speed to @var{value} (in bytes) for migrations.
G
Glauber Costa 已提交
819 820
ETEXI

821 822
    {
        .name       = "migrate_set_downtime",
823
        .args_type  = "value:T",
824 825
        .params     = "value",
        .help       = "set maximum tolerated downtime (in seconds) for migrations",
826
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
827
        .mhandler.cmd_new = do_migrate_set_downtime,
828
    },
G
Glauber Costa 已提交
829 830 831

STEXI
@item migrate_set_downtime @var{second}
832
@findex migrate_set_downtime
G
Glauber Costa 已提交
833
Set maximum tolerated downtime (in seconds) for migration.
834 835 836
ETEXI

#if defined(TARGET_I386)
837 838 839 840 841 842 843 844 845
    {
        .name       = "drive_add",
        .args_type  = "pci_addr:s,opts:s",
        .params     = "[[<domain>:]<bus>:]<slot>\n"
                      "[file=file][,if=type][,bus=n]\n"
                      "[,unit=m][,media=d][index=i]\n"
                      "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
                      "[snapshot=on|off][,cache=on|off]",
        .help       = "add drive to PCI storage controller",
846
        .mhandler.cmd = drive_hot_add,
847
    },
848
#endif
849

850 851
STEXI
@item drive_add
852
@findex drive_add
853 854 855 856
Add drive to PCI storage controller.
ETEXI

#if defined(TARGET_I386)
857 858 859 860 861
    {
        .name       = "pci_add",
        .args_type  = "pci_addr:s,type:s,opts:s?",
        .params     = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
        .help       = "hot-add PCI device",
862
        .user_print = pci_device_hot_add_print,
L
Luiz Capitulino 已提交
863
        .mhandler.cmd_new = pci_device_hot_add,
864
    },
865
#endif
866

867 868
STEXI
@item pci_add
869
@findex pci_add
870 871 872 873
Hot-add PCI device.
ETEXI

#if defined(TARGET_I386)
874 875 876 877 878
    {
        .name       = "pci_del",
        .args_type  = "pci_addr:s",
        .params     = "[[<domain>:]<bus>:]<slot>",
        .help       = "hot remove PCI device",
879
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
880
        .mhandler.cmd_new = do_pci_device_hot_remove,
881
    },
882
#endif
883

884 885
STEXI
@item pci_del
886
@findex pci_del
887 888 889
Hot remove PCI device.
ETEXI

890 891 892 893 894
    {
        .name       = "host_net_add",
        .args_type  = "device:s,opts:s?",
        .params     = "tap|user|socket|vde|dump [options]",
        .help       = "add host VLAN client",
895
        .mhandler.cmd = net_host_device_add,
896 897
    },

898 899
STEXI
@item host_net_add
900
@findex host_net_add
901 902 903
Add host VLAN client.
ETEXI

904 905 906 907 908
    {
        .name       = "host_net_remove",
        .args_type  = "vlan_id:i,device:s",
        .params     = "vlan_id name",
        .help       = "remove host VLAN client",
909
        .mhandler.cmd = net_host_device_remove,
910 911
    },

912 913
STEXI
@item host_net_remove
914
@findex host_net_remove
915
Remove host VLAN client.
916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945
ETEXI

    {
        .name       = "netdev_add",
        .args_type  = "netdev:O",
        .params     = "[user|tap|socket],id=str[,prop=value][,...]",
        .help       = "add host network device",
        .user_print = monitor_user_noop,
        .mhandler.cmd_new = do_netdev_add,
    },

STEXI
@item netdev_add
@findex netdev_add
Add host network device.
ETEXI

    {
        .name       = "netdev_del",
        .args_type  = "id:s",
        .params     = "id",
        .help       = "remove host network device",
        .user_print = monitor_user_noop,
        .mhandler.cmd_new = do_netdev_del,
    },

STEXI
@item netdev_del
@findex netdev_del
Remove host network device.
946 947 948
ETEXI

#ifdef CONFIG_SLIRP
949 950 951 952 953
    {
        .name       = "hostfwd_add",
        .args_type  = "arg1:s,arg2:s?,arg3:s?",
        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
        .help       = "redirect TCP or UDP connections from host to guest (requires -net user)",
954
        .mhandler.cmd = net_slirp_hostfwd_add,
955 956 957 958 959 960 961
    },

    {
        .name       = "hostfwd_remove",
        .args_type  = "arg1:s,arg2:s?,arg3:s?",
        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
        .help       = "remove host-to-guest TCP or UDP redirection",
962
        .mhandler.cmd = net_slirp_hostfwd_remove,
963 964
    },

965 966 967
#endif
STEXI
@item host_net_redir
968
@findex host_net_redir
969 970 971
Redirect TCP or UDP connections from host to guest (requires -net user).
ETEXI

972 973
    {
        .name       = "balloon",
974
        .args_type  = "value:M",
975 976
        .params     = "target",
        .help       = "request VM to change it's memory allocation (in MB)",
977
        .user_print = monitor_user_noop,
978 979
        .mhandler.cmd_async = do_balloon,
        .async      = 1,
980 981
    },

982 983
STEXI
@item balloon @var{value}
984
@findex balloon
985 986 987
Request VM to change its memory allocation to @var{value} (in MB).
ETEXI

988 989
    {
        .name       = "set_link",
990 991
        .args_type  = "name:s,up:b",
        .params     = "name on|off",
992
        .help       = "change the link status of a network adapter",
993 994
        .user_print = monitor_user_noop,
        .mhandler.cmd_new = do_set_link,
995 996
    },

997
STEXI
998
@item set_link @var{name} [on|off]
999
@findex set_link
1000
Switch link @var{name} on (i.e. up) or off (i.e. down).
1001 1002
ETEXI

1003 1004 1005 1006 1007
    {
        .name       = "watchdog_action",
        .args_type  = "action:s",
        .params     = "[reset|shutdown|poweroff|pause|debug|none]",
        .help       = "change watchdog action",
1008
        .mhandler.cmd = do_watchdog_action,
1009 1010
    },

1011 1012
STEXI
@item watchdog_action
1013
@findex watchdog_action
1014 1015 1016
Change watchdog action.
ETEXI

1017 1018 1019 1020 1021
    {
        .name       = "acl_show",
        .args_type  = "aclname:s",
        .params     = "aclname",
        .help       = "list rules in the access control list",
1022
        .mhandler.cmd = do_acl_show,
1023 1024
    },

1025
STEXI
J
Jan Kiszka 已提交
1026
@item acl_show @var{aclname}
1027
@findex acl_show
J
Jan Kiszka 已提交
1028 1029 1030 1031 1032
List all the matching rules in the access control list, and the default
policy. There are currently two named access control lists,
@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
certificate distinguished name, and SASL username respectively.
ETEXI
1033

1034 1035 1036 1037 1038
    {
        .name       = "acl_policy",
        .args_type  = "aclname:s,policy:s",
        .params     = "aclname allow|deny",
        .help       = "set default access control list policy",
1039
        .mhandler.cmd = do_acl_policy,
1040 1041
    },

J
Jan Kiszka 已提交
1042
STEXI
J
Jan Kiszka 已提交
1043
@item acl_policy @var{aclname} @code{allow|deny}
1044
@findex acl_policy
J
Jan Kiszka 已提交
1045
Set the default access control list policy, used in the event that
1046
none of the explicit rules match. The default policy at startup is
J
Jan Kiszka 已提交
1047 1048 1049
always @code{deny}.
ETEXI

1050 1051 1052 1053 1054
    {
        .name       = "acl_add",
        .args_type  = "aclname:s,match:s,policy:s,index:i?",
        .params     = "aclname match allow|deny [index]",
        .help       = "add a match rule to the access control list",
1055
        .mhandler.cmd = do_acl_add,
1056 1057
    },

J
Jan Kiszka 已提交
1058 1059
STEXI
@item acl_allow @var{aclname} @var{match} @code{allow|deny} [@var{index}]
1060
@findex acl_allow
J
Jan Kiszka 已提交
1061 1062 1063 1064
Add a match rule to the access control list, allowing or denying access.
The match will normally be an exact username or x509 distinguished name,
but can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
allow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
1065
normally be appended to the end of the ACL, but can be inserted
J
Jan Kiszka 已提交
1066 1067 1068
earlier in the list if the optional @var{index} parameter is supplied.
ETEXI

1069 1070 1071 1072 1073
    {
        .name       = "acl_remove",
        .args_type  = "aclname:s,match:s",
        .params     = "aclname match",
        .help       = "remove a match rule from the access control list",
1074
        .mhandler.cmd = do_acl_remove,
1075 1076
    },

J
Jan Kiszka 已提交
1077 1078
STEXI
@item acl_remove @var{aclname} @var{match}
1079
@findex acl_remove
J
Jan Kiszka 已提交
1080 1081 1082
Remove the specified match rule from the access control list.
ETEXI

1083 1084 1085 1086 1087
    {
        .name       = "acl_reset",
        .args_type  = "aclname:s",
        .params     = "aclname",
        .help       = "reset the access control list",
1088
        .mhandler.cmd = do_acl_reset,
1089 1090
    },

J
Jan Kiszka 已提交
1091
STEXI
1092
@item acl_remove @var{aclname}
J
Jan Kiszka 已提交
1093
Remove all matches from the access control list, and set the default
1094 1095 1096
policy back to @code{deny}.
ETEXI

1097
#if defined(TARGET_I386)
1098 1099 1100 1101 1102 1103

    {
        .name       = "mce",
        .args_type  = "cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
        .params     = "cpu bank status mcgstatus addr misc",
        .help       = "inject a MCE on the given CPU",
1104
        .mhandler.cmd = do_inject_mce,
1105 1106
    },

1107 1108 1109
#endif
STEXI
@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
1110
@findex mce (x86)
1111
Inject an MCE on the given CPU (x86 only).
1112 1113
ETEXI

1114 1115 1116 1117 1118
    {
        .name       = "getfd",
        .args_type  = "fdname:s",
        .params     = "getfd name",
        .help       = "receive a file descriptor via SCM rights and assign it a name",
1119
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
1120
        .mhandler.cmd_new = do_getfd,
1121 1122
    },

1123 1124
STEXI
@item getfd @var{fdname}
1125
@findex getfd
1126 1127 1128 1129 1130
If a file descriptor is passed alongside this command using the SCM_RIGHTS
mechanism on unix sockets, it is stored using the name @var{fdname} for
later use by other monitor commands.
ETEXI

1131 1132 1133 1134 1135
    {
        .name       = "closefd",
        .args_type  = "fdname:s",
        .params     = "closefd name",
        .help       = "close a file descriptor previously passed via SCM rights",
1136
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
1137
        .mhandler.cmd_new = do_closefd,
1138 1139
    },

1140 1141
STEXI
@item closefd @var{fdname}
1142
@findex closefd
1143 1144 1145
Close the file descriptor previously assigned to @var{fdname} using the
@code{getfd} command. This is only needed if the file descriptor was never
used by another monitor command.
1146 1147 1148 1149 1150 1151 1152 1153
ETEXI

    {
        .name       = "block_passwd",
        .args_type  = "device:B,password:s",
        .params     = "block_passwd device password",
        .help       = "set the password of encrypted block devices",
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
1154
        .mhandler.cmd_new = do_block_set_passwd,
1155 1156 1157 1158
    },

STEXI
@item block_passwd @var{device} @var{password}
1159
@findex block_passwd
1160
Set the encrypted device @var{device} password to @var{password}
1161 1162 1163 1164 1165 1166 1167 1168
ETEXI

    {
        .name       = "qmp_capabilities",
        .args_type  = "",
        .params     = "",
        .help       = "enable QMP capabilities",
        .user_print = monitor_user_noop,
L
Luiz Capitulino 已提交
1169
        .mhandler.cmd_new = do_qmp_capabilities,
1170 1171 1172 1173 1174
    },

STEXI
@item qmp_capabilities
Enable the specified QMP capabilities
1175 1176
ETEXI

1177 1178 1179
STEXI
@end table
ETEXI