]> git.proxmox.com Git - qemu.git/blob - qemu-monitor.hx
monitor: union for command handlers
[qemu.git] / qemu-monitor.hx
1 HXCOMM Use DEFHEADING() to define headings in both help text and texi
2 HXCOMM Text between STEXI and ETEXI are copied to texi version and
3 HXCOMM discarded from C version
4 HXCOMM DEF(command, args, callback, arg_string, help) is used to construct
5 HXCOMM monitor commands
6 HXCOMM HXCOMM can be used for comments, discarded from both texi and C
7
8 STEXI
9 @table @option
10 ETEXI
11
12 {
13 .name = "help|?",
14 .args_type = "name:s?",
15 .params = "[cmd]",
16 .help = "show the help",
17 .mhandler.cmd = do_help_cmd,
18 },
19
20 STEXI
21 @item help or ? [@var{cmd}]
22 Show the help for all commands or just for command @var{cmd}.
23 ETEXI
24
25 {
26 .name = "commit",
27 .args_type = "device:B",
28 .params = "device|all",
29 .help = "commit changes to the disk images (if -snapshot is used) or backing files",
30 .mhandler.cmd = do_commit,
31 },
32
33 STEXI
34 @item commit
35 Commit changes to the disk images (if -snapshot is used) or backing files.
36 ETEXI
37
38 {
39 .name = "info",
40 .args_type = "item:s?",
41 .params = "[subcommand]",
42 .help = "show various information about the system state",
43 .mhandler.cmd = do_info,
44 },
45
46 STEXI
47 @item info @var{subcommand}
48 Show various information about the system state.
49
50 @table @option
51 @item info version
52 show the version of QEMU
53 @item info network
54 show the various VLANs and the associated devices
55 @item info chardev
56 show the character devices
57 @item info block
58 show the block devices
59 @item info block
60 show block device statistics
61 @item info registers
62 show the cpu registers
63 @item info cpus
64 show infos for each CPU
65 @item info history
66 show the command line history
67 @item info irq
68 show the interrupts statistics (if available)
69 @item info pic
70 show i8259 (PIC) state
71 @item info pci
72 show emulated PCI device info
73 @item info tlb
74 show virtual to physical memory mappings (i386 only)
75 @item info mem
76 show the active virtual memory mappings (i386 only)
77 @item info hpet
78 show state of HPET (i386 only)
79 @item info kvm
80 show KVM information
81 @item info usb
82 show USB devices plugged on the virtual USB hub
83 @item info usbhost
84 show all USB host devices
85 @item info profile
86 show profiling information
87 @item info capture
88 show information about active capturing
89 @item info snapshots
90 show list of VM snapshots
91 @item info status
92 show the current VM status (running|paused)
93 @item info pcmcia
94 show guest PCMCIA status
95 @item info mice
96 show which guest mouse is receiving events
97 @item info vnc
98 show the vnc server status
99 @item info name
100 show the current VM name
101 @item info uuid
102 show the current VM UUID
103 @item info cpustats
104 show CPU statistics
105 @item info usernet
106 show user network stack connection states
107 @item info migrate
108 show migration status
109 @item info balloon
110 show balloon information
111 @item info qtree
112 show device tree
113 @end table
114 ETEXI
115
116 {
117 .name = "q|quit",
118 .args_type = "",
119 .params = "",
120 .help = "quit the emulator",
121 .mhandler.cmd = do_quit,
122 },
123
124 STEXI
125 @item q or quit
126 Quit the emulator.
127 ETEXI
128
129 {
130 .name = "eject",
131 .args_type = "force:-f,filename:B",
132 .params = "[-f] device",
133 .help = "eject a removable medium (use -f to force it)",
134 .mhandler.cmd = do_eject,
135 },
136
137 STEXI
138 @item eject [-f] @var{device}
139 Eject a removable medium (use -f to force it).
140 ETEXI
141
142 {
143 .name = "change",
144 .args_type = "device:B,target:F,arg:s?",
145 .params = "device filename [format]",
146 .help = "change a removable medium, optional format",
147 .mhandler.cmd = do_change,
148 },
149
150 STEXI
151 @item change @var{device} @var{setting}
152
153 Change the configuration of a device.
154
155 @table @option
156 @item change @var{diskdevice} @var{filename} [@var{format}]
157 Change the medium for a removable disk device to point to @var{filename}. eg
158
159 @example
160 (qemu) change ide1-cd0 /path/to/some.iso
161 @end example
162
163 @var{format} is optional.
164
165 @item change vnc @var{display},@var{options}
166 Change the configuration of the VNC server. The valid syntax for @var{display}
167 and @var{options} are described at @ref{sec_invocation}. eg
168
169 @example
170 (qemu) change vnc localhost:1
171 @end example
172
173 @item change vnc password [@var{password}]
174
175 Change the password associated with the VNC server. If the new password is not
176 supplied, the monitor will prompt for it to be entered. VNC passwords are only
177 significant up to 8 letters. eg
178
179 @example
180 (qemu) change vnc password
181 Password: ********
182 @end example
183
184 @end table
185 ETEXI
186
187 {
188 .name = "screendump",
189 .args_type = "filename:F",
190 .params = "filename",
191 .help = "save screen into PPM image 'filename'",
192 .mhandler.cmd = do_screen_dump,
193 },
194
195 STEXI
196 @item screendump @var{filename}
197 Save screen into PPM image @var{filename}.
198 ETEXI
199
200 {
201 .name = "logfile",
202 .args_type = "filename:F",
203 .params = "filename",
204 .help = "output logs to 'filename'",
205 .mhandler.cmd = do_logfile,
206 },
207
208 STEXI
209 @item logfile @var{filename}
210 Output logs to @var{filename}.
211 ETEXI
212
213 {
214 .name = "log",
215 .args_type = "items:s",
216 .params = "item1[,...]",
217 .help = "activate logging of the specified items to '/tmp/qemu.log'",
218 .mhandler.cmd = do_log,
219 },
220
221 STEXI
222 @item log @var{item1}[,...]
223 Activate logging of the specified items to @file{/tmp/qemu.log}.
224 ETEXI
225
226 {
227 .name = "savevm",
228 .args_type = "name:s?",
229 .params = "[tag|id]",
230 .help = "save a VM snapshot. If no tag or id are provided, a new snapshot is created",
231 .mhandler.cmd = do_savevm,
232 },
233
234 STEXI
235 @item savevm [@var{tag}|@var{id}]
236 Create a snapshot of the whole virtual machine. If @var{tag} is
237 provided, it is used as human readable identifier. If there is already
238 a snapshot with the same tag or ID, it is replaced. More info at
239 @ref{vm_snapshots}.
240 ETEXI
241
242 {
243 .name = "loadvm",
244 .args_type = "name:s",
245 .params = "tag|id",
246 .help = "restore a VM snapshot from its tag or id",
247 .mhandler.cmd = do_loadvm,
248 },
249
250 STEXI
251 @item loadvm @var{tag}|@var{id}
252 Set the whole virtual machine to the snapshot identified by the tag
253 @var{tag} or the unique snapshot ID @var{id}.
254 ETEXI
255
256 {
257 .name = "delvm",
258 .args_type = "name:s",
259 .params = "tag|id",
260 .help = "delete a VM snapshot from its tag or id",
261 .mhandler.cmd = do_delvm,
262 },
263
264 STEXI
265 @item delvm @var{tag}|@var{id}
266 Delete the snapshot identified by @var{tag} or @var{id}.
267 ETEXI
268
269 {
270 .name = "singlestep",
271 .args_type = "option:s?",
272 .params = "[on|off]",
273 .help = "run emulation in singlestep mode or switch to normal mode",
274 .mhandler.cmd = do_singlestep,
275 },
276
277 STEXI
278 @item singlestep [off]
279 Run the emulation in single step mode.
280 If called with option off, the emulation returns to normal mode.
281 ETEXI
282
283 {
284 .name = "stop",
285 .args_type = "",
286 .params = "",
287 .help = "stop emulation",
288 .mhandler.cmd = do_stop,
289 },
290
291 STEXI
292 @item stop
293 Stop emulation.
294 ETEXI
295
296 {
297 .name = "c|cont",
298 .args_type = "",
299 .params = "",
300 .help = "resume emulation",
301 .mhandler.cmd = do_cont,
302 },
303
304 STEXI
305 @item c or cont
306 Resume emulation.
307 ETEXI
308
309 {
310 .name = "gdbserver",
311 .args_type = "device:s?",
312 .params = "[device]",
313 .help = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
314 .mhandler.cmd = do_gdbserver,
315 },
316
317 STEXI
318 @item gdbserver [@var{port}]
319 Start gdbserver session (default @var{port}=1234)
320 ETEXI
321
322 {
323 .name = "x",
324 .args_type = "fmt:/,addr:l",
325 .params = "/fmt addr",
326 .help = "virtual memory dump starting at 'addr'",
327 .mhandler.cmd = do_memory_dump,
328 },
329
330 STEXI
331 @item x/fmt @var{addr}
332 Virtual memory dump starting at @var{addr}.
333 ETEXI
334
335 {
336 .name = "xp",
337 .args_type = "fmt:/,addr:l",
338 .params = "/fmt addr",
339 .help = "physical memory dump starting at 'addr'",
340 .mhandler.cmd = do_physical_memory_dump,
341 },
342
343 STEXI
344 @item xp /@var{fmt} @var{addr}
345 Physical memory dump starting at @var{addr}.
346
347 @var{fmt} is a format which tells the command how to format the
348 data. Its syntax is: @option{/@{count@}@{format@}@{size@}}
349
350 @table @var
351 @item count
352 is the number of items to be dumped.
353
354 @item format
355 can be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
356 c (char) or i (asm instruction).
357
358 @item size
359 can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
360 @code{h} or @code{w} can be specified with the @code{i} format to
361 respectively select 16 or 32 bit code instruction size.
362
363 @end table
364
365 Examples:
366 @itemize
367 @item
368 Dump 10 instructions at the current instruction pointer:
369 @example
370 (qemu) x/10i $eip
371 0x90107063: ret
372 0x90107064: sti
373 0x90107065: lea 0x0(%esi,1),%esi
374 0x90107069: lea 0x0(%edi,1),%edi
375 0x90107070: ret
376 0x90107071: jmp 0x90107080
377 0x90107073: nop
378 0x90107074: nop
379 0x90107075: nop
380 0x90107076: nop
381 @end example
382
383 @item
384 Dump 80 16 bit values at the start of the video memory.
385 @smallexample
386 (qemu) xp/80hx 0xb8000
387 0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
388 0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
389 0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
390 0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
391 0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
392 0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
393 0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
394 0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
395 0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
396 0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
397 @end smallexample
398 @end itemize
399 ETEXI
400
401 {
402 .name = "p|print",
403 .args_type = "fmt:/,val:l",
404 .params = "/fmt expr",
405 .help = "print expression value (use $reg for CPU register access)",
406 .mhandler.cmd = do_print,
407 },
408
409 STEXI
410 @item p or print/@var{fmt} @var{expr}
411
412 Print expression value. Only the @var{format} part of @var{fmt} is
413 used.
414 ETEXI
415
416 {
417 .name = "i",
418 .args_type = "fmt:/,addr:i,index:i.",
419 .params = "/fmt addr",
420 .help = "I/O port read",
421 .mhandler.cmd = do_ioport_read,
422 },
423
424 STEXI
425 Read I/O port.
426 ETEXI
427
428 {
429 .name = "o",
430 .args_type = "fmt:/,addr:i,val:i",
431 .params = "/fmt addr value",
432 .help = "I/O port write",
433 .mhandler.cmd = do_ioport_write,
434 },
435
436 STEXI
437 Write to I/O port.
438 ETEXI
439
440 {
441 .name = "sendkey",
442 .args_type = "string:s,hold_time:i?",
443 .params = "keys [hold_ms]",
444 .help = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
445 .mhandler.cmd = do_sendkey,
446 },
447
448 STEXI
449 @item sendkey @var{keys}
450
451 Send @var{keys} to the emulator. @var{keys} could be the name of the
452 key or @code{#} followed by the raw value in either decimal or hexadecimal
453 format. Use @code{-} to press several keys simultaneously. Example:
454 @example
455 sendkey ctrl-alt-f1
456 @end example
457
458 This command is useful to send keys that your graphical user interface
459 intercepts at low level, such as @code{ctrl-alt-f1} in X Window.
460 ETEXI
461
462 {
463 .name = "system_reset",
464 .args_type = "",
465 .params = "",
466 .help = "reset the system",
467 .mhandler.cmd = do_system_reset,
468 },
469
470 STEXI
471 @item system_reset
472
473 Reset the system.
474 ETEXI
475
476 {
477 .name = "system_powerdown",
478 .args_type = "",
479 .params = "",
480 .help = "send system power down event",
481 .mhandler.cmd = do_system_powerdown,
482 },
483
484 STEXI
485 @item system_powerdown
486
487 Power down the system (if supported).
488 ETEXI
489
490 {
491 .name = "sum",
492 .args_type = "start:i,size:i",
493 .params = "addr size",
494 .help = "compute the checksum of a memory region",
495 .mhandler.cmd = do_sum,
496 },
497
498 STEXI
499 @item sum @var{addr} @var{size}
500
501 Compute the checksum of a memory region.
502 ETEXI
503
504 {
505 .name = "usb_add",
506 .args_type = "devname:s",
507 .params = "device",
508 .help = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
509 .mhandler.cmd = do_usb_add,
510 },
511
512 STEXI
513 @item usb_add @var{devname}
514
515 Add the USB device @var{devname}. For details of available devices see
516 @ref{usb_devices}
517 ETEXI
518
519 {
520 .name = "usb_del",
521 .args_type = "devname:s",
522 .params = "device",
523 .help = "remove USB device 'bus.addr'",
524 .mhandler.cmd = do_usb_del,
525 },
526
527 STEXI
528 @item usb_del @var{devname}
529
530 Remove the USB device @var{devname} from the QEMU virtual USB
531 hub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
532 command @code{info usb} to see the devices you can remove.
533 ETEXI
534
535 {
536 .name = "device_add",
537 .args_type = "config:s",
538 .params = "device",
539 .help = "add device, like -device on the command line",
540 .mhandler.cmd = do_device_add,
541 },
542
543 STEXI
544 @item device_add @var{config}
545
546 Add device.
547 ETEXI
548
549 {
550 .name = "device_del",
551 .args_type = "id:s",
552 .params = "device",
553 .help = "remove device",
554 .mhandler.cmd = do_device_del,
555 },
556
557 STEXI
558 @item device_del @var{id}
559
560 Remove device @var{id}.
561 ETEXI
562
563 {
564 .name = "cpu",
565 .args_type = "index:i",
566 .params = "index",
567 .help = "set the default CPU",
568 .mhandler.cmd = do_cpu_set,
569 },
570
571 STEXI
572 Set the default CPU.
573 ETEXI
574
575 {
576 .name = "mouse_move",
577 .args_type = "dx_str:s,dy_str:s,dz_str:s?",
578 .params = "dx dy [dz]",
579 .help = "send mouse move events",
580 .mhandler.cmd = do_mouse_move,
581 },
582
583 STEXI
584 @item mouse_move @var{dx} @var{dy} [@var{dz}]
585 Move the active mouse to the specified coordinates @var{dx} @var{dy}
586 with optional scroll axis @var{dz}.
587 ETEXI
588
589 {
590 .name = "mouse_button",
591 .args_type = "button_state:i",
592 .params = "state",
593 .help = "change mouse button state (1=L, 2=M, 4=R)",
594 .mhandler.cmd = do_mouse_button,
595 },
596
597 STEXI
598 @item mouse_button @var{val}
599 Change the active mouse button state @var{val} (1=L, 2=M, 4=R).
600 ETEXI
601
602 {
603 .name = "mouse_set",
604 .args_type = "index:i",
605 .params = "index",
606 .help = "set which mouse device receives events",
607 .mhandler.cmd = do_mouse_set,
608 },
609
610 STEXI
611 @item mouse_set @var{index}
612 Set which mouse device receives events at given @var{index}, index
613 can be obtained with
614 @example
615 info mice
616 @end example
617 ETEXI
618
619 #ifdef HAS_AUDIO
620 {
621 .name = "wavcapture",
622 .args_type = "path:F,freq:i?,bits:i?,nchannels:i?",
623 .params = "path [frequency [bits [channels]]]",
624 .help = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
625 .mhandler.cmd = do_wav_capture,
626 },
627 #endif
628 STEXI
629 @item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
630 Capture audio into @var{filename}. Using sample rate @var{frequency}
631 bits per sample @var{bits} and number of channels @var{channels}.
632
633 Defaults:
634 @itemize @minus
635 @item Sample rate = 44100 Hz - CD quality
636 @item Bits = 16
637 @item Number of channels = 2 - Stereo
638 @end itemize
639 ETEXI
640
641 #ifdef HAS_AUDIO
642 {
643 .name = "stopcapture",
644 .args_type = "n:i",
645 .params = "capture index",
646 .help = "stop capture",
647 .mhandler.cmd = do_stop_capture,
648 },
649 #endif
650 STEXI
651 @item stopcapture @var{index}
652 Stop capture with a given @var{index}, index can be obtained with
653 @example
654 info capture
655 @end example
656 ETEXI
657
658 {
659 .name = "memsave",
660 .args_type = "val:l,size:i,filename:s",
661 .params = "addr size file",
662 .help = "save to disk virtual memory dump starting at 'addr' of size 'size'",
663 .mhandler.cmd = do_memory_save,
664 },
665
666 STEXI
667 @item memsave @var{addr} @var{size} @var{file}
668 save to disk virtual memory dump starting at @var{addr} of size @var{size}.
669 ETEXI
670
671 {
672 .name = "pmemsave",
673 .args_type = "val:l,size:i,filename:s",
674 .params = "addr size file",
675 .help = "save to disk physical memory dump starting at 'addr' of size 'size'",
676 .mhandler.cmd = do_physical_memory_save,
677 },
678
679 STEXI
680 @item pmemsave @var{addr} @var{size} @var{file}
681 save to disk physical memory dump starting at @var{addr} of size @var{size}.
682 ETEXI
683
684 {
685 .name = "boot_set",
686 .args_type = "bootdevice:s",
687 .params = "bootdevice",
688 .help = "define new values for the boot device list",
689 .mhandler.cmd = do_boot_set,
690 },
691
692 STEXI
693 @item boot_set @var{bootdevicelist}
694
695 Define new values for the boot device list. Those values will override
696 the values specified on the command line through the @code{-boot} option.
697
698 The values that can be specified here depend on the machine type, but are
699 the same that can be specified in the @code{-boot} command line option.
700 ETEXI
701
702 #if defined(TARGET_I386)
703 {
704 .name = "nmi",
705 .args_type = "cpu_index:i",
706 .params = "cpu",
707 .help = "inject an NMI on the given CPU",
708 .mhandler.cmd = do_inject_nmi,
709 },
710 #endif
711 STEXI
712 @item nmi @var{cpu}
713 Inject an NMI on the given CPU (x86 only).
714 ETEXI
715
716 {
717 .name = "migrate",
718 .args_type = "detach:-d,uri:s",
719 .params = "[-d] uri",
720 .help = "migrate to URI (using -d to not wait for completion)",
721 .mhandler.cmd = do_migrate,
722 },
723
724 STEXI
725 @item migrate [-d] @var{uri}
726 Migrate to @var{uri} (using -d to not wait for completion).
727 ETEXI
728
729 {
730 .name = "migrate_cancel",
731 .args_type = "",
732 .params = "",
733 .help = "cancel the current VM migration",
734 .mhandler.cmd = do_migrate_cancel,
735 },
736
737 STEXI
738 @item migrate_cancel
739 Cancel the current VM migration.
740 ETEXI
741
742 {
743 .name = "migrate_set_speed",
744 .args_type = "value:s",
745 .params = "value",
746 .help = "set maximum speed (in bytes) for migrations",
747 .mhandler.cmd = do_migrate_set_speed,
748 },
749
750 STEXI
751 @item migrate_set_speed @var{value}
752 Set maximum speed to @var{value} (in bytes) for migrations.
753 ETEXI
754
755 {
756 .name = "migrate_set_downtime",
757 .args_type = "value:s",
758 .params = "value",
759 .help = "set maximum tolerated downtime (in seconds) for migrations",
760 .mhandler.cmd = do_migrate_set_downtime,
761 },
762
763 STEXI
764 @item migrate_set_downtime @var{second}
765 Set maximum tolerated downtime (in seconds) for migration.
766 ETEXI
767
768 #if defined(TARGET_I386)
769 {
770 .name = "drive_add",
771 .args_type = "pci_addr:s,opts:s",
772 .params = "[[<domain>:]<bus>:]<slot>\n"
773 "[file=file][,if=type][,bus=n]\n"
774 "[,unit=m][,media=d][index=i]\n"
775 "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
776 "[snapshot=on|off][,cache=on|off]",
777 .help = "add drive to PCI storage controller",
778 .mhandler.cmd = drive_hot_add,
779 },
780 #endif
781
782 STEXI
783 @item drive_add
784 Add drive to PCI storage controller.
785 ETEXI
786
787 #if defined(TARGET_I386)
788 {
789 .name = "pci_add",
790 .args_type = "pci_addr:s,type:s,opts:s?",
791 .params = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
792 .help = "hot-add PCI device",
793 .mhandler.cmd = pci_device_hot_add,
794 },
795 #endif
796
797 STEXI
798 @item pci_add
799 Hot-add PCI device.
800 ETEXI
801
802 #if defined(TARGET_I386)
803 {
804 .name = "pci_del",
805 .args_type = "pci_addr:s",
806 .params = "[[<domain>:]<bus>:]<slot>",
807 .help = "hot remove PCI device",
808 .mhandler.cmd = do_pci_device_hot_remove,
809 },
810 #endif
811
812 STEXI
813 @item pci_del
814 Hot remove PCI device.
815 ETEXI
816
817 {
818 .name = "host_net_add",
819 .args_type = "device:s,opts:s?",
820 .params = "tap|user|socket|vde|dump [options]",
821 .help = "add host VLAN client",
822 .mhandler.cmd = net_host_device_add,
823 },
824
825 STEXI
826 @item host_net_add
827 Add host VLAN client.
828 ETEXI
829
830 {
831 .name = "host_net_remove",
832 .args_type = "vlan_id:i,device:s",
833 .params = "vlan_id name",
834 .help = "remove host VLAN client",
835 .mhandler.cmd = net_host_device_remove,
836 },
837
838 STEXI
839 @item host_net_remove
840 Remove host VLAN client.
841 ETEXI
842
843 #ifdef CONFIG_SLIRP
844 {
845 .name = "hostfwd_add",
846 .args_type = "arg1:s,arg2:s?,arg3:s?",
847 .params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
848 .help = "redirect TCP or UDP connections from host to guest (requires -net user)",
849 .mhandler.cmd = net_slirp_hostfwd_add,
850 },
851
852 {
853 .name = "hostfwd_remove",
854 .args_type = "arg1:s,arg2:s?,arg3:s?",
855 .params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
856 .help = "remove host-to-guest TCP or UDP redirection",
857 .mhandler.cmd = net_slirp_hostfwd_remove,
858 },
859
860 #endif
861 STEXI
862 @item host_net_redir
863 Redirect TCP or UDP connections from host to guest (requires -net user).
864 ETEXI
865
866 {
867 .name = "balloon",
868 .args_type = "value:i",
869 .params = "target",
870 .help = "request VM to change it's memory allocation (in MB)",
871 .mhandler.cmd = do_balloon,
872 },
873
874 STEXI
875 @item balloon @var{value}
876 Request VM to change its memory allocation to @var{value} (in MB).
877 ETEXI
878
879 {
880 .name = "set_link",
881 .args_type = "name:s,up_or_down:s",
882 .params = "name up|down",
883 .help = "change the link status of a network adapter",
884 .mhandler.cmd = do_set_link,
885 },
886
887 STEXI
888 @item set_link @var{name} [up|down]
889 Set link @var{name} up or down.
890 ETEXI
891
892 {
893 .name = "watchdog_action",
894 .args_type = "action:s",
895 .params = "[reset|shutdown|poweroff|pause|debug|none]",
896 .help = "change watchdog action",
897 .mhandler.cmd = do_watchdog_action,
898 },
899
900 STEXI
901 @item watchdog_action
902 Change watchdog action.
903 ETEXI
904
905 {
906 .name = "acl_show",
907 .args_type = "aclname:s",
908 .params = "aclname",
909 .help = "list rules in the access control list",
910 .mhandler.cmd = do_acl_show,
911 },
912
913 STEXI
914 @item acl_show @var{aclname}
915 List all the matching rules in the access control list, and the default
916 policy. There are currently two named access control lists,
917 @var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
918 certificate distinguished name, and SASL username respectively.
919 ETEXI
920
921 {
922 .name = "acl_policy",
923 .args_type = "aclname:s,policy:s",
924 .params = "aclname allow|deny",
925 .help = "set default access control list policy",
926 .mhandler.cmd = do_acl_policy,
927 },
928
929 STEXI
930 @item acl_policy @var{aclname} @code{allow|deny}
931 Set the default access control list policy, used in the event that
932 none of the explicit rules match. The default policy at startup is
933 always @code{deny}.
934 ETEXI
935
936 {
937 .name = "acl_add",
938 .args_type = "aclname:s,match:s,policy:s,index:i?",
939 .params = "aclname match allow|deny [index]",
940 .help = "add a match rule to the access control list",
941 .mhandler.cmd = do_acl_add,
942 },
943
944 STEXI
945 @item acl_allow @var{aclname} @var{match} @code{allow|deny} [@var{index}]
946 Add a match rule to the access control list, allowing or denying access.
947 The match will normally be an exact username or x509 distinguished name,
948 but can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
949 allow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
950 normally be appended to the end of the ACL, but can be inserted
951 earlier in the list if the optional @var{index} parameter is supplied.
952 ETEXI
953
954 {
955 .name = "acl_remove",
956 .args_type = "aclname:s,match:s",
957 .params = "aclname match",
958 .help = "remove a match rule from the access control list",
959 .mhandler.cmd = do_acl_remove,
960 },
961
962 STEXI
963 @item acl_remove @var{aclname} @var{match}
964 Remove the specified match rule from the access control list.
965 ETEXI
966
967 {
968 .name = "acl_reset",
969 .args_type = "aclname:s",
970 .params = "aclname",
971 .help = "reset the access control list",
972 .mhandler.cmd = do_acl_reset,
973 },
974
975 STEXI
976 @item acl_remove @var{aclname} @var{match}
977 Remove all matches from the access control list, and set the default
978 policy back to @code{deny}.
979 ETEXI
980
981 #if defined(TARGET_I386)
982
983 {
984 .name = "mce",
985 .args_type = "cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
986 .params = "cpu bank status mcgstatus addr misc",
987 .help = "inject a MCE on the given CPU",
988 .mhandler.cmd = do_inject_mce,
989 },
990
991 #endif
992 STEXI
993 @item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
994 Inject an MCE on the given CPU (x86 only).
995 ETEXI
996
997 {
998 .name = "getfd",
999 .args_type = "fdname:s",
1000 .params = "getfd name",
1001 .help = "receive a file descriptor via SCM rights and assign it a name",
1002 .mhandler.cmd = do_getfd,
1003 },
1004
1005 STEXI
1006 @item getfd @var{fdname}
1007 If a file descriptor is passed alongside this command using the SCM_RIGHTS
1008 mechanism on unix sockets, it is stored using the name @var{fdname} for
1009 later use by other monitor commands.
1010 ETEXI
1011
1012 {
1013 .name = "closefd",
1014 .args_type = "fdname:s",
1015 .params = "closefd name",
1016 .help = "close a file descriptor previously passed via SCM rights",
1017 .mhandler.cmd = do_closefd,
1018 },
1019
1020 STEXI
1021 @item closefd @var{fdname}
1022 Close the file descriptor previously assigned to @var{fdname} using the
1023 @code{getfd} command. This is only needed if the file descriptor was never
1024 used by another monitor command.
1025 ETEXI
1026
1027 STEXI
1028 @end table
1029 ETEXI