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