]> git.proxmox.com Git - qemu.git/blame - qemu-monitor.hx
linux-user: add eventfd support
[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
12 { "help|?", "s?", help_cmd, "[cmd]", "show the help" },
13STEXI
14@item help or ? [@var{cmd}]
15Show the help for all commands or just for command @var{cmd}.
16ETEXI
17
18 { "commit", "s", do_commit,
19 "device|all", "commit changes to the disk images (if -snapshot is used) or backing files" },
20STEXI
21@item commit
22Commit changes to the disk images (if -snapshot is used) or backing files.
23ETEXI
24
25 { "info", "s?", do_info,
26 "[subcommand]", "show various information about the system state" },
27STEXI
28@item info @var{subcommand}
29Show various information about the system state.
30
31@table @option
32@item info version
33show the version of QEMU
34@item info network
35show the various VLANs and the associated devices
36@item info chardev
37show the character devices
38@item info block
39show the block devices
40@item info block
41show block device statistics
42@item info registers
43show the cpu registers
44@item info cpus
45show infos for each CPU
46@item info history
47show the command line history
48@item info irq
49show the interrupts statistics (if available)
50@item info pic
51show i8259 (PIC) state
52@item info pci
53show emulated PCI device info
54@item info tlb
55show virtual to physical memory mappings (i386 only)
56@item info mem
57show the active virtual memory mappings (i386 only)
58@item info hpet
59show state of HPET (i386 only)
2313086a
BS
60@item info kvm
61show KVM information
62@item info usb
63show USB devices plugged on the virtual USB hub
64@item info usbhost
65show all USB host devices
66@item info profile
67show profiling information
68@item info capture
69show information about active capturing
70@item info snapshots
71show list of VM snapshots
72@item info status
73show the current VM status (running|paused)
74@item info pcmcia
75show guest PCMCIA status
76@item info mice
77show which guest mouse is receiving events
78@item info vnc
79show the vnc server status
80@item info name
81show the current VM name
82@item info uuid
83show the current VM UUID
84@item info cpustats
85show CPU statistics
6dbe553f
JK
86@item info usernet
87show user network stack connection states
2313086a
BS
88@item info migrate
89show migration status
90@item info balloon
91show balloon information
92@item info qtree
93show device tree
94@end table
95ETEXI
96
97 { "q|quit", "", do_quit,
98 "", "quit the emulator" },
99STEXI
100@item q or quit
101Quit the emulator.
102ETEXI
103
104 { "eject", "-fB", do_eject,
105 "[-f] device", "eject a removable medium (use -f to force it)" },
106STEXI
107@item eject [-f] @var{device}
108Eject a removable medium (use -f to force it).
109ETEXI
110
111 { "change", "BFs?", do_change,
112 "device filename [format]", "change a removable medium, optional format" },
113STEXI
114@item change @var{device} @var{setting}
115
116Change the configuration of a device.
117
118@table @option
119@item change @var{diskdevice} @var{filename} [@var{format}]
120Change the medium for a removable disk device to point to @var{filename}. eg
121
122@example
123(qemu) change ide1-cd0 /path/to/some.iso
124@end example
125
126@var{format} is optional.
127
128@item change vnc @var{display},@var{options}
129Change the configuration of the VNC server. The valid syntax for @var{display}
130and @var{options} are described at @ref{sec_invocation}. eg
131
132@example
133(qemu) change vnc localhost:1
134@end example
135
136@item change vnc password [@var{password}]
137
138Change the password associated with the VNC server. If the new password is not
139supplied, the monitor will prompt for it to be entered. VNC passwords are only
140significant up to 8 letters. eg
141
142@example
143(qemu) change vnc password
144Password: ********
145@end example
146
147@end table
148ETEXI
149
150 { "screendump", "F", do_screen_dump,
151 "filename", "save screen into PPM image 'filename'" },
152STEXI
153@item screendump @var{filename}
154Save screen into PPM image @var{filename}.
155ETEXI
156
157 { "logfile", "F", do_logfile,
158 "filename", "output logs to 'filename'" },
159STEXI
160@item logfile @var{filename}
161Output logs to @var{filename}.
162ETEXI
163
164 { "log", "s", do_log,
165 "item1[,...]", "activate logging of the specified items to '/tmp/qemu.log'" },
166STEXI
167@item log @var{item1}[,...]
168Activate logging of the specified items to @file{/tmp/qemu.log}.
169ETEXI
170
171 { "savevm", "s?", do_savevm,
172 "[tag|id]", "save a VM snapshot. If no tag or id are provided, a new snapshot is created" },
173STEXI
174@item savevm [@var{tag}|@var{id}]
175Create a snapshot of the whole virtual machine. If @var{tag} is
176provided, it is used as human readable identifier. If there is already
177a snapshot with the same tag or ID, it is replaced. More info at
178@ref{vm_snapshots}.
179ETEXI
180
181 { "loadvm", "s", do_loadvm,
182 "tag|id", "restore a VM snapshot from its tag or id" },
183STEXI
184@item loadvm @var{tag}|@var{id}
185Set the whole virtual machine to the snapshot identified by the tag
186@var{tag} or the unique snapshot ID @var{id}.
187ETEXI
188
189 { "delvm", "s", do_delvm,
190 "tag|id", "delete a VM snapshot from its tag or id" },
191STEXI
192@item delvm @var{tag}|@var{id}
193Delete the snapshot identified by @var{tag} or @var{id}.
194ETEXI
195
196 { "singlestep", "s?", do_singlestep,
197 "[on|off]", "run emulation in singlestep mode or switch to normal mode", },
198STEXI
199@item singlestep [off]
200Run the emulation in single step mode.
201If called with option off, the emulation returns to normal mode.
202ETEXI
203
204 { "stop", "", do_stop,
205 "", "stop emulation", },
206STEXI
207@item stop
208Stop emulation.
209ETEXI
210
211 { "c|cont", "", do_cont,
212 "", "resume emulation", },
213STEXI
214@item c or cont
215Resume emulation.
216ETEXI
217
218 { "gdbserver", "s?", do_gdbserver,
219 "[device]", "start gdbserver on given device (default 'tcp::1234'), stop with 'none'", },
220STEXI
221@item gdbserver [@var{port}]
222Start gdbserver session (default @var{port}=1234)
223ETEXI
224
225 { "x", "/l", do_memory_dump,
226 "/fmt addr", "virtual memory dump starting at 'addr'", },
227STEXI
228@item x/fmt @var{addr}
229Virtual memory dump starting at @var{addr}.
230ETEXI
231
232 { "xp", "/l", do_physical_memory_dump,
233 "/fmt addr", "physical memory dump starting at 'addr'", },
234STEXI
235@item xp /@var{fmt} @var{addr}
236Physical memory dump starting at @var{addr}.
237
238@var{fmt} is a format which tells the command how to format the
239data. Its syntax is: @option{/@{count@}@{format@}@{size@}}
240
241@table @var
242@item count
243is the number of items to be dumped.
244
245@item format
246can be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
247c (char) or i (asm instruction).
248
249@item size
250can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
251@code{h} or @code{w} can be specified with the @code{i} format to
252respectively select 16 or 32 bit code instruction size.
253
254@end table
255
256Examples:
257@itemize
258@item
259Dump 10 instructions at the current instruction pointer:
260@example
261(qemu) x/10i $eip
2620x90107063: ret
2630x90107064: sti
2640x90107065: lea 0x0(%esi,1),%esi
2650x90107069: lea 0x0(%edi,1),%edi
2660x90107070: ret
2670x90107071: jmp 0x90107080
2680x90107073: nop
2690x90107074: nop
2700x90107075: nop
2710x90107076: nop
272@end example
273
274@item
275Dump 80 16 bit values at the start of the video memory.
276@smallexample
277(qemu) xp/80hx 0xb8000
2780x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
2790x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
2800x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
2810x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
2820x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
2830x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
2840x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
2850x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
2860x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
2870x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
288@end smallexample
289@end itemize
290ETEXI
291
292 { "p|print", "/l", do_print,
293 "/fmt expr", "print expression value (use $reg for CPU register access)", },
294STEXI
295@item p or print/@var{fmt} @var{expr}
296
297Print expression value. Only the @var{format} part of @var{fmt} is
298used.
299ETEXI
300
301 { "i", "/ii.", do_ioport_read,
302 "/fmt addr", "I/O port read" },
303STEXI
304Read I/O port.
305ETEXI
306
f114784f
JK
307 { "o", "/ii", do_ioport_write,
308 "/fmt addr value", "I/O port write" },
309STEXI
310Write to I/O port.
311ETEXI
2313086a
BS
312
313 { "sendkey", "si?", do_sendkey,
314 "keys [hold_ms]", "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)" },
315STEXI
316@item sendkey @var{keys}
317
318Send @var{keys} to the emulator. @var{keys} could be the name of the
319key or @code{#} followed by the raw value in either decimal or hexadecimal
320format. Use @code{-} to press several keys simultaneously. Example:
321@example
322sendkey ctrl-alt-f1
323@end example
324
325This command is useful to send keys that your graphical user interface
326intercepts at low level, such as @code{ctrl-alt-f1} in X Window.
327ETEXI
328
329 { "system_reset", "", do_system_reset,
330 "", "reset the system" },
331STEXI
332@item system_reset
333
334Reset the system.
335ETEXI
336
337 { "system_powerdown", "", do_system_powerdown,
338 "", "send system power down event" },
339STEXI
340@item system_powerdown
341
342Power down the system (if supported).
343ETEXI
344
345 { "sum", "ii", do_sum,
346 "addr size", "compute the checksum of a memory region" },
347STEXI
348@item sum @var{addr} @var{size}
349
350Compute the checksum of a memory region.
351ETEXI
352
353 { "usb_add", "s", do_usb_add,
354 "device", "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')" },
355STEXI
356@item usb_add @var{devname}
357
358Add the USB device @var{devname}. For details of available devices see
359@ref{usb_devices}
360ETEXI
361
362 { "usb_del", "s", do_usb_del,
363 "device", "remove USB device 'bus.addr'" },
364STEXI
365@item usb_del @var{devname}
366
367Remove the USB device @var{devname} from the QEMU virtual USB
368hub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
369command @code{info usb} to see the devices you can remove.
370ETEXI
371
372 { "cpu", "i", do_cpu_set,
373 "index", "set the default CPU" },
374STEXI
375Set the default CPU.
376ETEXI
377
378 { "mouse_move", "sss?", do_mouse_move,
379 "dx dy [dz]", "send mouse move events" },
380STEXI
381@item mouse_move @var{dx} @var{dy} [@var{dz}]
382Move the active mouse to the specified coordinates @var{dx} @var{dy}
383with optional scroll axis @var{dz}.
384ETEXI
385
386 { "mouse_button", "i", do_mouse_button,
387 "state", "change mouse button state (1=L, 2=M, 4=R)" },
388STEXI
389@item mouse_button @var{val}
390Change the active mouse button state @var{val} (1=L, 2=M, 4=R).
391ETEXI
392
393 { "mouse_set", "i", do_mouse_set,
394 "index", "set which mouse device receives events" },
395STEXI
396@item mouse_set @var{index}
397Set which mouse device receives events at given @var{index}, index
398can be obtained with
399@example
400info mice
401@end example
402ETEXI
403
404#ifdef HAS_AUDIO
405 { "wavcapture", "si?i?i?", do_wav_capture,
406 "path [frequency [bits [channels]]]",
407 "capture audio to a wave file (default frequency=44100 bits=16 channels=2)" },
408#endif
409STEXI
410@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
411Capture audio into @var{filename}. Using sample rate @var{frequency}
412bits per sample @var{bits} and number of channels @var{channels}.
413
414Defaults:
415@itemize @minus
416@item Sample rate = 44100 Hz - CD quality
417@item Bits = 16
418@item Number of channels = 2 - Stereo
419@end itemize
420ETEXI
421
422#ifdef HAS_AUDIO
423 { "stopcapture", "i", do_stop_capture,
424 "capture index", "stop capture" },
425#endif
426STEXI
427@item stopcapture @var{index}
428Stop capture with a given @var{index}, index can be obtained with
429@example
430info capture
431@end example
432ETEXI
433
434 { "memsave", "lis", do_memory_save,
435 "addr size file", "save to disk virtual memory dump starting at 'addr' of size 'size'", },
436STEXI
437@item memsave @var{addr} @var{size} @var{file}
438save to disk virtual memory dump starting at @var{addr} of size @var{size}.
439ETEXI
440
441 { "pmemsave", "lis", do_physical_memory_save,
442 "addr size file", "save to disk physical memory dump starting at 'addr' of size 'size'", },
443STEXI
444@item pmemsave @var{addr} @var{size} @var{file}
445save to disk physical memory dump starting at @var{addr} of size @var{size}.
446ETEXI
447
448 { "boot_set", "s", do_boot_set,
449 "bootdevice", "define new values for the boot device list" },
450STEXI
451@item boot_set @var{bootdevicelist}
452
453Define new values for the boot device list. Those values will override
454the values specified on the command line through the @code{-boot} option.
455
456The values that can be specified here depend on the machine type, but are
457the same that can be specified in the @code{-boot} command line option.
458ETEXI
459
460#if defined(TARGET_I386)
461 { "nmi", "i", do_inject_nmi,
462 "cpu", "inject an NMI on the given CPU", },
463#endif
464STEXI
465@item nmi @var{cpu}
466Inject an NMI on the given CPU (x86 only).
467ETEXI
468
469 { "migrate", "-ds", do_migrate,
470 "[-d] uri", "migrate to URI (using -d to not wait for completion)" },
471STEXI
472@item migrate [-d] @var{uri}
473Migrate to @var{uri} (using -d to not wait for completion).
474ETEXI
475
476 { "migrate_cancel", "", do_migrate_cancel,
477 "", "cancel the current VM migration" },
478STEXI
479@item migrate_cancel
480Cancel the current VM migration.
481ETEXI
482
483 { "migrate_set_speed", "s", do_migrate_set_speed,
484 "value", "set maximum speed (in bytes) for migrations" },
485STEXI
486@item migrate_set_speed @var{value}
487Set maximum speed to @var{value} (in bytes) for migrations.
2ea42952
GC
488ETEXI
489
490 { "migrate_set_downtime", "s", do_migrate_set_downtime,
491 "value", "set maximum tolerated downtime (in seconds) for migrations" },
492
493STEXI
494@item migrate_set_downtime @var{second}
495Set maximum tolerated downtime (in seconds) for migration.
2313086a
BS
496ETEXI
497
498#if defined(TARGET_I386)
e9283f8b 499 { "drive_add", "ss", drive_hot_add, "[[<domain>:]<bus>:]<slot>\n"
2313086a
BS
500 "[file=file][,if=type][,bus=n]\n"
501 "[,unit=m][,media=d][index=i]\n"
502 "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
503 "[snapshot=on|off][,cache=on|off]",
504 "add drive to PCI storage controller" },
505#endif
506STEXI
507@item drive_add
508Add drive to PCI storage controller.
509ETEXI
510
511#if defined(TARGET_I386)
a62acdc0 512 { "pci_add", "sss?", pci_device_hot_add, "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...", "hot-add PCI device" },
2313086a
BS
513#endif
514STEXI
515@item pci_add
516Hot-add PCI device.
517ETEXI
518
519#if defined(TARGET_I386)
e9283f8b 520 { "pci_del", "s", pci_device_hot_remove, "[[<domain>:]<bus>:]<slot>", "hot remove PCI device" },
2313086a
BS
521#endif
522STEXI
523@item pci_del
524Hot remove PCI device.
525ETEXI
526
527 { "host_net_add", "ss?", net_host_device_add,
528 "tap|user|socket|vde|dump [options]", "add host VLAN client" },
529STEXI
530@item host_net_add
531Add host VLAN client.
532ETEXI
533
534 { "host_net_remove", "is", net_host_device_remove,
535 "vlan_id name", "remove host VLAN client" },
536STEXI
537@item host_net_remove
538Remove host VLAN client.
539ETEXI
540
541#ifdef CONFIG_SLIRP
f13b572c
JK
542 { "hostfwd_add", "ss?s?", net_slirp_hostfwd_add,
543 "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
f3546deb 544 "redirect TCP or UDP connections from host to guest (requires -net user)" },
f13b572c
JK
545 { "hostfwd_remove", "ss?s?", net_slirp_hostfwd_remove,
546 "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
3c6a0580 547 "remove host-to-guest TCP or UDP redirection" },
2313086a
BS
548#endif
549STEXI
550@item host_net_redir
551Redirect TCP or UDP connections from host to guest (requires -net user).
552ETEXI
553
554 { "balloon", "i", do_balloon,
555 "target", "request VM to change it's memory allocation (in MB)" },
556STEXI
557@item balloon @var{value}
558Request VM to change its memory allocation to @var{value} (in MB).
559ETEXI
560
561 { "set_link", "ss", do_set_link,
562 "name up|down", "change the link status of a network adapter" },
563STEXI
564@item set_link @var{name} [up|down]
565Set link @var{name} up or down.
566ETEXI
567
568 { "watchdog_action", "s", do_watchdog_action,
569 "[reset|shutdown|poweroff|pause|debug|none]", "change watchdog action" },
570STEXI
571@item watchdog_action
572Change watchdog action.
573ETEXI
574
15dfcd45
JK
575 { "acl_show", "s", do_acl_show, "aclname",
576 "list rules in the access control list" },
2313086a 577STEXI
15dfcd45
JK
578@item acl_show @var{aclname}
579List all the matching rules in the access control list, and the default
580policy. There are currently two named access control lists,
581@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
582certificate distinguished name, and SASL username respectively.
583ETEXI
2313086a 584
15dfcd45
JK
585 { "acl_policy", "ss", do_acl_policy, "aclname allow|deny",
586 "set default access control list policy" },
587STEXI
cbbfacc6 588@item acl_policy @var{aclname} @code{allow|deny}
15dfcd45 589Set the default access control list policy, used in the event that
2313086a 590none of the explicit rules match. The default policy at startup is
15dfcd45
JK
591always @code{deny}.
592ETEXI
593
594 { "acl_add", "sssi?", do_acl_add, "aclname match allow|deny [index]",
595 "add a match rule to the access control list" },
596STEXI
597@item acl_allow @var{aclname} @var{match} @code{allow|deny} [@var{index}]
598Add a match rule to the access control list, allowing or denying access.
599The match will normally be an exact username or x509 distinguished name,
600but can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
601allow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
2313086a 602normally be appended to the end of the ACL, but can be inserted
15dfcd45
JK
603earlier in the list if the optional @var{index} parameter is supplied.
604ETEXI
605
606 { "acl_remove", "ss", do_acl_remove, "aclname match",
607 "remove a match rule from the access control list" },
608STEXI
609@item acl_remove @var{aclname} @var{match}
610Remove the specified match rule from the access control list.
611ETEXI
612
613 { "acl_reset", "s", do_acl_reset, "aclname",
614 "reset the access control list" },
615STEXI
616@item acl_remove @var{aclname} @var{match}
617Remove all matches from the access control list, and set the default
2313086a 618policy back to @code{deny}.
2313086a
BS
619ETEXI
620
79c4f6b0
HY
621#if defined(TARGET_I386)
622 { "mce", "iillll", do_inject_mce, "cpu bank status mcgstatus addr misc", "inject a MCE on the given CPU"},
623#endif
624STEXI
625@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
626Inject an MCE on the given CPU (x86 only).
f07918fd
MM
627ETEXI
628
629 { "getfd", "s", do_getfd, "getfd name",
630 "receive a file descriptor via SCM rights and assign it a name" },
631STEXI
632@item getfd @var{fdname}
633If a file descriptor is passed alongside this command using the SCM_RIGHTS
634mechanism on unix sockets, it is stored using the name @var{fdname} for
635later use by other monitor commands.
636ETEXI
637
638 { "closefd", "s", do_closefd, "closefd name",
639 "close a file descriptor previously passed via SCM rights" },
640STEXI
641@item closefd @var{fdname}
642Close the file descriptor previously assigned to @var{fdname} using the
643@code{getfd} command. This is only needed if the file descriptor was never
644used by another monitor command.
79c4f6b0
HY
645ETEXI
646
2313086a
BS
647STEXI
648@end table
649ETEXI