Statistics
| Branch: | Revision:

root / qemu-monitor.hx @ 6c6a58ae

History | View | Annotate | Download (30 kB)

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
@findex help
23
Show the help for all commands or just for command @var{cmd}.
24
ETEXI
25

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

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

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

    
49
STEXI
50
@item info @var{subcommand}
51
@findex info
52
Show various information about the system state.
53

    
54
@table @option
55
@item info version
56
show the version of QEMU
57
@item info network
58
show the various VLANs and the associated devices
59
@item info chardev
60
show the character devices
61
@item info block
62
show the block devices
63
@item info block
64
show block device statistics
65
@item info registers
66
show the cpu registers
67
@item info cpus
68
show infos for each CPU
69
@item info history
70
show the command line history
71
@item info irq
72
show the interrupts statistics (if available)
73
@item info pic
74
show i8259 (PIC) state
75
@item info pci
76
show emulated PCI device info
77
@item info tlb
78
show virtual to physical memory mappings (i386 only)
79
@item info mem
80
show the active virtual memory mappings (i386 only)
81
@item info hpet
82
show state of HPET (i386 only)
83
@item info kvm
84
show KVM information
85
@item info usb
86
show USB devices plugged on the virtual USB hub
87
@item info usbhost
88
show all USB host devices
89
@item info profile
90
show profiling information
91
@item info capture
92
show information about active capturing
93
@item info snapshots
94
show list of VM snapshots
95
@item info status
96
show the current VM status (running|paused)
97
@item info pcmcia
98
show guest PCMCIA status
99
@item info mice
100
show which guest mouse is receiving events
101
@item info vnc
102
show the vnc server status
103
@item info name
104
show the current VM name
105
@item info uuid
106
show the current VM UUID
107
@item info cpustats
108
show CPU statistics
109
@item info usernet
110
show user network stack connection states
111
@item info migrate
112
show migration status
113
@item info balloon
114
show balloon information
115
@item info qtree
116
show device tree
117
@end table
118
ETEXI
119

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

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

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

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

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

    
159
STEXI
160
@item change @var{device} @var{setting}
161
@findex change
162

    
163
Change the configuration of a device.
164

    
165
@table @option
166
@item change @var{diskdevice} @var{filename} [@var{format}]
167
Change 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}
176
Change the configuration of the VNC server. The valid syntax for @var{display}
177
and @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

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

    
189
@example
190
(qemu) change vnc password
191
Password: ********
192
@end example
193

    
194
@end table
195
ETEXI
196

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
375
@table @var
376
@item count
377
is the number of items to be dumped.
378

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

    
383
@item size
384
can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
385
@code{h} or @code{w} can be specified with the @code{i} format to
386
respectively select 16 or 32 bit code instruction size.
387

    
388
@end table
389

    
390
Examples:
391
@itemize
392
@item
393
Dump 10 instructions at the current instruction pointer:
394
@example
395
(qemu) x/10i $eip
396
0x90107063:  ret
397
0x90107064:  sti
398
0x90107065:  lea    0x0(%esi,1),%esi
399
0x90107069:  lea    0x0(%edi,1),%edi
400
0x90107070:  ret
401
0x90107071:  jmp    0x90107080
402
0x90107073:  nop
403
0x90107074:  nop
404
0x90107075:  nop
405
0x90107076:  nop
406
@end example
407

    
408
@item
409
Dump 80 16 bit values at the start of the video memory.
410
@smallexample
411
(qemu) xp/80hx 0xb8000
412
0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
413
0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
414
0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
415
0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
416
0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
417
0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
418
0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
419
0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
420
0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
421
0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
422
@end smallexample
423
@end itemize
424
ETEXI
425

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

    
434
STEXI
435
@item p or print/@var{fmt} @var{expr}
436
@findex print
437

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

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

    
450
STEXI
451
Read I/O port.
452
ETEXI
453

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

    
462
STEXI
463
Write to I/O port.
464
ETEXI
465

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

    
474
STEXI
475
@item sendkey @var{keys}
476
@findex sendkey
477

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

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

    
489
    {
490
        .name       = "system_reset",
491
        .args_type  = "",
492
        .params     = "",
493
        .help       = "reset the system",
494
        .user_print = monitor_user_noop,
495
        .mhandler.cmd_new = do_system_reset,
496
    },
497

    
498
STEXI
499
@item system_reset
500
@findex system_reset
501

    
502
Reset the system.
503
ETEXI
504

    
505
    {
506
        .name       = "system_powerdown",
507
        .args_type  = "",
508
        .params     = "",
509
        .help       = "send system power down event",
510
        .user_print = monitor_user_noop,
511
        .mhandler.cmd_new = do_system_powerdown,
512
    },
513

    
514
STEXI
515
@item system_powerdown
516
@findex system_powerdown
517

    
518
Power down the system (if supported).
519
ETEXI
520

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

    
529
STEXI
530
@item sum @var{addr} @var{size}
531
@findex sum
532

    
533
Compute the checksum of a memory region.
534
ETEXI
535

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

    
544
STEXI
545
@item usb_add @var{devname}
546
@findex usb_add
547

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

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

    
560
STEXI
561
@item usb_del @var{devname}
562
@findex usb_del
563

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

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

    
578
STEXI
579
@item device_add @var{config}
580
@findex device_add
581

    
582
Add device.
583
ETEXI
584

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

    
594
STEXI
595
@item device_del @var{id}
596
@findex device_del
597

    
598
Remove device @var{id}.
599
ETEXI
600

    
601
    {
602
        .name       = "cpu",
603
        .args_type  = "index:i",
604
        .params     = "index",
605
        .help       = "set the default CPU",
606
        .user_print = monitor_user_noop,
607
        .mhandler.cmd_new = do_cpu_set,
608
    },
609

    
610
STEXI
611
@item cpu @var{index}
612
@findex cpu
613
Set the default CPU.
614
ETEXI
615

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

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

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

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

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

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

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

    
678
Defaults:
679
@itemize @minus
680
@item Sample rate = 44100 Hz - CD quality
681
@item Bits = 16
682
@item Number of channels = 2 - Stereo
683
@end itemize
684
ETEXI
685

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

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

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

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

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

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

    
742
STEXI
743
@item boot_set @var{bootdevicelist}
744
@findex boot_set
745

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

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

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

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

    
781

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

    
790
    {
791
        .name       = "migrate_cancel",
792
        .args_type  = "",
793
        .params     = "",
794
        .help       = "cancel the current VM migration",
795
        .user_print = monitor_user_noop,
796
        .mhandler.cmd_new = do_migrate_cancel,
797
    },
798

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

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

    
814
STEXI
815
@item migrate_set_speed @var{value}
816
@findex migrate_set_speed
817
Set maximum speed to @var{value} (in bytes) for migrations.
818
ETEXI
819

    
820
    {
821
        .name       = "migrate_set_downtime",
822
        .args_type  = "value:T",
823
        .params     = "value",
824
        .help       = "set maximum tolerated downtime (in seconds) for migrations",
825
        .user_print = monitor_user_noop,
826
        .mhandler.cmd_new = do_migrate_set_downtime,
827
    },
828

    
829
STEXI
830
@item migrate_set_downtime @var{second}
831
@findex migrate_set_downtime
832
Set maximum tolerated downtime (in seconds) for migration.
833
ETEXI
834

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

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

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

    
865
STEXI
866
@item pci_add
867
@findex pci_add
868
Hot-add PCI device.
869
ETEXI
870

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

    
882
STEXI
883
@item pci_del
884
@findex pci_del
885
Hot remove PCI device.
886
ETEXI
887

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

    
896
STEXI
897
@item host_net_add
898
@findex host_net_add
899
Add host VLAN client.
900
ETEXI
901

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

    
910
STEXI
911
@item host_net_remove
912
@findex host_net_remove
913
Remove host VLAN client.
914
ETEXI
915

    
916
    {
917
        .name       = "netdev_add",
918
        .args_type  = "netdev:O",
919
        .params     = "[user|tap|socket],id=str[,prop=value][,...]",
920
        .help       = "add host network device",
921
        .user_print = monitor_user_noop,
922
        .mhandler.cmd_new = do_netdev_add,
923
    },
924

    
925
STEXI
926
@item netdev_add
927
@findex netdev_add
928
Add host network device.
929
ETEXI
930

    
931
    {
932
        .name       = "netdev_del",
933
        .args_type  = "id:s",
934
        .params     = "id",
935
        .help       = "remove host network device",
936
        .user_print = monitor_user_noop,
937
        .mhandler.cmd_new = do_netdev_del,
938
    },
939

    
940
STEXI
941
@item netdev_del
942
@findex netdev_del
943
Remove host network device.
944
ETEXI
945

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

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

    
970
#endif
971
STEXI
972
@item hostfwd_remove
973
@findex hostfwd_remove
974
Remove host-to-guest TCP or UDP redirection.
975
ETEXI
976

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

    
987
STEXI
988
@item balloon @var{value}
989
@findex balloon
990
Request VM to change its memory allocation to @var{value} (in MB).
991
ETEXI
992

    
993
    {
994
        .name       = "set_link",
995
        .args_type  = "name:s,up:b",
996
        .params     = "name on|off",
997
        .help       = "change the link status of a network adapter",
998
        .user_print = monitor_user_noop,
999
        .mhandler.cmd_new = do_set_link,
1000
    },
1001

    
1002
STEXI
1003
@item set_link @var{name} [on|off]
1004
@findex set_link
1005
Switch link @var{name} on (i.e. up) or off (i.e. down).
1006
ETEXI
1007

    
1008
    {
1009
        .name       = "watchdog_action",
1010
        .args_type  = "action:s",
1011
        .params     = "[reset|shutdown|poweroff|pause|debug|none]",
1012
        .help       = "change watchdog action",
1013
        .mhandler.cmd = do_watchdog_action,
1014
    },
1015

    
1016
STEXI
1017
@item watchdog_action
1018
@findex watchdog_action
1019
Change watchdog action.
1020
ETEXI
1021

    
1022
    {
1023
        .name       = "acl_show",
1024
        .args_type  = "aclname:s",
1025
        .params     = "aclname",
1026
        .help       = "list rules in the access control list",
1027
        .mhandler.cmd = do_acl_show,
1028
    },
1029

    
1030
STEXI
1031
@item acl_show @var{aclname}
1032
@findex acl_show
1033
List all the matching rules in the access control list, and the default
1034
policy. There are currently two named access control lists,
1035
@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
1036
certificate distinguished name, and SASL username respectively.
1037
ETEXI
1038

    
1039
    {
1040
        .name       = "acl_policy",
1041
        .args_type  = "aclname:s,policy:s",
1042
        .params     = "aclname allow|deny",
1043
        .help       = "set default access control list policy",
1044
        .mhandler.cmd = do_acl_policy,
1045
    },
1046

    
1047
STEXI
1048
@item acl_policy @var{aclname} @code{allow|deny}
1049
@findex acl_policy
1050
Set the default access control list policy, used in the event that
1051
none of the explicit rules match. The default policy at startup is
1052
always @code{deny}.
1053
ETEXI
1054

    
1055
    {
1056
        .name       = "acl_add",
1057
        .args_type  = "aclname:s,match:s,policy:s,index:i?",
1058
        .params     = "aclname match allow|deny [index]",
1059
        .help       = "add a match rule to the access control list",
1060
        .mhandler.cmd = do_acl_add,
1061
    },
1062

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

    
1074
    {
1075
        .name       = "acl_remove",
1076
        .args_type  = "aclname:s,match:s",
1077
        .params     = "aclname match",
1078
        .help       = "remove a match rule from the access control list",
1079
        .mhandler.cmd = do_acl_remove,
1080
    },
1081

    
1082
STEXI
1083
@item acl_remove @var{aclname} @var{match}
1084
@findex acl_remove
1085
Remove the specified match rule from the access control list.
1086
ETEXI
1087

    
1088
    {
1089
        .name       = "acl_reset",
1090
        .args_type  = "aclname:s",
1091
        .params     = "aclname",
1092
        .help       = "reset the access control list",
1093
        .mhandler.cmd = do_acl_reset,
1094
    },
1095

    
1096
STEXI
1097
@item acl_reset @var{aclname}
1098
@findex acl_reset
1099
Remove all matches from the access control list, and set the default
1100
policy back to @code{deny}.
1101
ETEXI
1102

    
1103
#if defined(TARGET_I386)
1104

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

    
1113
#endif
1114
STEXI
1115
@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
1116
@findex mce (x86)
1117
Inject an MCE on the given CPU (x86 only).
1118
ETEXI
1119

    
1120
    {
1121
        .name       = "getfd",
1122
        .args_type  = "fdname:s",
1123
        .params     = "getfd name",
1124
        .help       = "receive a file descriptor via SCM rights and assign it a name",
1125
        .user_print = monitor_user_noop,
1126
        .mhandler.cmd_new = do_getfd,
1127
    },
1128

    
1129
STEXI
1130
@item getfd @var{fdname}
1131
@findex getfd
1132
If a file descriptor is passed alongside this command using the SCM_RIGHTS
1133
mechanism on unix sockets, it is stored using the name @var{fdname} for
1134
later use by other monitor commands.
1135
ETEXI
1136

    
1137
    {
1138
        .name       = "closefd",
1139
        .args_type  = "fdname:s",
1140
        .params     = "closefd name",
1141
        .help       = "close a file descriptor previously passed via SCM rights",
1142
        .user_print = monitor_user_noop,
1143
        .mhandler.cmd_new = do_closefd,
1144
    },
1145

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

    
1154
    {
1155
        .name       = "block_passwd",
1156
        .args_type  = "device:B,password:s",
1157
        .params     = "block_passwd device password",
1158
        .help       = "set the password of encrypted block devices",
1159
        .user_print = monitor_user_noop,
1160
        .mhandler.cmd_new = do_block_set_passwd,
1161
    },
1162

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

    
1169
    {
1170
        .name       = "qmp_capabilities",
1171
        .args_type  = "",
1172
        .params     = "",
1173
        .help       = "enable QMP capabilities",
1174
        .user_print = monitor_user_noop,
1175
        .mhandler.cmd_new = do_qmp_capabilities,
1176
    },
1177

    
1178
STEXI
1179
@item qmp_capabilities
1180
@findex qmp_capabilities
1181
Enable the specified QMP capabilities
1182
ETEXI
1183

    
1184
STEXI
1185
@end table
1186
ETEXI