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