Statistics
| Branch: | Revision:

root / qemu-monitor.hx @ 8bc27249

History | View | Annotate | Download (29.1 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
        .mhandler.cmd = do_screen_dump,
203
    },
204

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
390
@end table
391

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

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

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

    
436
STEXI
437
@item p or print/@var{fmt} @var{expr}
438
@findex print
439

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

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

    
452
STEXI
453
Read I/O port.
454
ETEXI
455

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

    
464
STEXI
465
Write to I/O port.
466
ETEXI
467

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

    
476
STEXI
477
@item sendkey @var{keys}
478
@findex sendkey
479

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

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

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

    
500
STEXI
501
@item system_reset
502
@findex system_reset
503

    
504
Reset the system.
505
ETEXI
506

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

    
516
STEXI
517
@item system_powerdown
518
@findex system_powerdown
519

    
520
Power down the system (if supported).
521
ETEXI
522

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

    
531
STEXI
532
@item sum @var{addr} @var{size}
533
@findex sum
534

    
535
Compute the checksum of a memory region.
536
ETEXI
537

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

    
546
STEXI
547
@item usb_add @var{devname}
548
@findex usb_add
549

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

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

    
562
STEXI
563
@item usb_del @var{devname}
564
@findex usb_del
565

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

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

    
580
STEXI
581
@item device_add @var{config}
582
@findex device_add
583

    
584
Add device.
585
ETEXI
586

    
587
    {
588
        .name       = "device_del",
589
        .args_type  = "id:s",
590
        .params     = "device",
591
        .help       = "remove device",
592
        .mhandler.cmd = do_device_del,
593
    },
594

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

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

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

    
611
STEXI
612
Set the default CPU.
613
ETEXI
614

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
780

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

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

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

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

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

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

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

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

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

    
854
#if defined(TARGET_I386)
855
    {
856
        .name       = "pci_add",
857
        .args_type  = "pci_addr:s,type:s,opts:s?",
858
        .params     = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
859
        .help       = "hot-add PCI device",
860
        .user_print = pci_device_hot_add_print,
861
        .mhandler.cmd_new = 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
#ifdef CONFIG_SLIRP
917
    {
918
        .name       = "hostfwd_add",
919
        .args_type  = "arg1:s,arg2:s?,arg3:s?",
920
        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
921
        .help       = "redirect TCP or UDP connections from host to guest (requires -net user)",
922
        .mhandler.cmd = net_slirp_hostfwd_add,
923
    },
924

    
925
    {
926
        .name       = "hostfwd_remove",
927
        .args_type  = "arg1:s,arg2:s?,arg3:s?",
928
        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
929
        .help       = "remove host-to-guest TCP or UDP redirection",
930
        .mhandler.cmd = net_slirp_hostfwd_remove,
931
    },
932

    
933
#endif
934
STEXI
935
@item host_net_redir
936
@findex host_net_redir
937
Redirect TCP or UDP connections from host to guest (requires -net user).
938
ETEXI
939

    
940
    {
941
        .name       = "balloon",
942
        .args_type  = "value:M",
943
        .params     = "target",
944
        .help       = "request VM to change it's memory allocation (in MB)",
945
        .user_print = monitor_user_noop,
946
        .mhandler.cmd_async = do_balloon,
947
        .async      = 1,
948
    },
949

    
950
STEXI
951
@item balloon @var{value}
952
@findex balloon
953
Request VM to change its memory allocation to @var{value} (in MB).
954
ETEXI
955

    
956
    {
957
        .name       = "set_link",
958
        .args_type  = "name:s,up_or_down:s",
959
        .params     = "name up|down",
960
        .help       = "change the link status of a network adapter",
961
        .mhandler.cmd = do_set_link,
962
    },
963

    
964
STEXI
965
@item set_link @var{name} [up|down]
966
@findex set_link
967
Set link @var{name} up or down.
968
ETEXI
969

    
970
    {
971
        .name       = "watchdog_action",
972
        .args_type  = "action:s",
973
        .params     = "[reset|shutdown|poweroff|pause|debug|none]",
974
        .help       = "change watchdog action",
975
        .mhandler.cmd = do_watchdog_action,
976
    },
977

    
978
STEXI
979
@item watchdog_action
980
@findex watchdog_action
981
Change watchdog action.
982
ETEXI
983

    
984
    {
985
        .name       = "acl_show",
986
        .args_type  = "aclname:s",
987
        .params     = "aclname",
988
        .help       = "list rules in the access control list",
989
        .mhandler.cmd = do_acl_show,
990
    },
991

    
992
STEXI
993
@item acl_show @var{aclname}
994
@findex acl_show
995
List all the matching rules in the access control list, and the default
996
policy. There are currently two named access control lists,
997
@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
998
certificate distinguished name, and SASL username respectively.
999
ETEXI
1000

    
1001
    {
1002
        .name       = "acl_policy",
1003
        .args_type  = "aclname:s,policy:s",
1004
        .params     = "aclname allow|deny",
1005
        .help       = "set default access control list policy",
1006
        .mhandler.cmd = do_acl_policy,
1007
    },
1008

    
1009
STEXI
1010
@item acl_policy @var{aclname} @code{allow|deny}
1011
@findex acl_policy
1012
Set the default access control list policy, used in the event that
1013
none of the explicit rules match. The default policy at startup is
1014
always @code{deny}.
1015
ETEXI
1016

    
1017
    {
1018
        .name       = "acl_add",
1019
        .args_type  = "aclname:s,match:s,policy:s,index:i?",
1020
        .params     = "aclname match allow|deny [index]",
1021
        .help       = "add a match rule to the access control list",
1022
        .mhandler.cmd = do_acl_add,
1023
    },
1024

    
1025
STEXI
1026
@item acl_allow @var{aclname} @var{match} @code{allow|deny} [@var{index}]
1027
@findex acl_allow
1028
Add a match rule to the access control list, allowing or denying access.
1029
The match will normally be an exact username or x509 distinguished name,
1030
but can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
1031
allow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
1032
normally be appended to the end of the ACL, but can be inserted
1033
earlier in the list if the optional @var{index} parameter is supplied.
1034
ETEXI
1035

    
1036
    {
1037
        .name       = "acl_remove",
1038
        .args_type  = "aclname:s,match:s",
1039
        .params     = "aclname match",
1040
        .help       = "remove a match rule from the access control list",
1041
        .mhandler.cmd = do_acl_remove,
1042
    },
1043

    
1044
STEXI
1045
@item acl_remove @var{aclname} @var{match}
1046
@findex acl_remove
1047
Remove the specified match rule from the access control list.
1048
ETEXI
1049

    
1050
    {
1051
        .name       = "acl_reset",
1052
        .args_type  = "aclname:s",
1053
        .params     = "aclname",
1054
        .help       = "reset the access control list",
1055
        .mhandler.cmd = do_acl_reset,
1056
    },
1057

    
1058
STEXI
1059
@item acl_remove @var{aclname}
1060
Remove all matches from the access control list, and set the default
1061
policy back to @code{deny}.
1062
ETEXI
1063

    
1064
#if defined(TARGET_I386)
1065

    
1066
    {
1067
        .name       = "mce",
1068
        .args_type  = "cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
1069
        .params     = "cpu bank status mcgstatus addr misc",
1070
        .help       = "inject a MCE on the given CPU",
1071
        .mhandler.cmd = do_inject_mce,
1072
    },
1073

    
1074
#endif
1075
STEXI
1076
@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
1077
@findex mce (x86)
1078
Inject an MCE on the given CPU (x86 only).
1079
ETEXI
1080

    
1081
    {
1082
        .name       = "getfd",
1083
        .args_type  = "fdname:s",
1084
        .params     = "getfd name",
1085
        .help       = "receive a file descriptor via SCM rights and assign it a name",
1086
        .user_print = monitor_user_noop,
1087
        .mhandler.cmd_new = do_getfd,
1088
    },
1089

    
1090
STEXI
1091
@item getfd @var{fdname}
1092
@findex getfd
1093
If a file descriptor is passed alongside this command using the SCM_RIGHTS
1094
mechanism on unix sockets, it is stored using the name @var{fdname} for
1095
later use by other monitor commands.
1096
ETEXI
1097

    
1098
    {
1099
        .name       = "closefd",
1100
        .args_type  = "fdname:s",
1101
        .params     = "closefd name",
1102
        .help       = "close a file descriptor previously passed via SCM rights",
1103
        .user_print = monitor_user_noop,
1104
        .mhandler.cmd_new = do_closefd,
1105
    },
1106

    
1107
STEXI
1108
@item closefd @var{fdname}
1109
@findex closefd
1110
Close the file descriptor previously assigned to @var{fdname} using the
1111
@code{getfd} command. This is only needed if the file descriptor was never
1112
used by another monitor command.
1113
ETEXI
1114

    
1115
    {
1116
        .name       = "block_passwd",
1117
        .args_type  = "device:B,password:s",
1118
        .params     = "block_passwd device password",
1119
        .help       = "set the password of encrypted block devices",
1120
        .user_print = monitor_user_noop,
1121
        .mhandler.cmd_new = do_block_set_passwd,
1122
    },
1123

    
1124
STEXI
1125
@item block_passwd @var{device} @var{password}
1126
@findex block_passwd
1127
Set the encrypted device @var{device} password to @var{password}
1128
ETEXI
1129

    
1130
    {
1131
        .name       = "qmp_capabilities",
1132
        .args_type  = "",
1133
        .params     = "",
1134
        .help       = "enable QMP capabilities",
1135
        .user_print = monitor_user_noop,
1136
        .mhandler.cmd_new = do_qmp_capabilities,
1137
    },
1138

    
1139
STEXI
1140
@item qmp_capabilities
1141
Enable the specified QMP capabilities
1142
ETEXI
1143

    
1144
STEXI
1145
@end table
1146
ETEXI