Statistics
| Branch: | Revision:

root / qemu-monitor.hx @ c6027f56

History | View | Annotate | Download (27.8 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
Show the help for all commands or just for command @var{cmd}.
23
ETEXI
24

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

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

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

    
47
STEXI
48
@item info @var{subcommand}
49
Show various information about the system state.
50

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

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

    
126
STEXI
127
@item q or quit
128
Quit the emulator.
129
ETEXI
130

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

    
140
STEXI
141
@item eject [-f] @var{device}
142
Eject a removable medium (use -f to force it).
143
ETEXI
144

    
145
    {
146
        .name       = "change",
147
        .args_type  = "device:B,target:F,arg:s?",
148
        .params     = "device filename [format]",
149
        .help       = "change a removable medium, optional format",
150
        .user_print = monitor_user_noop,
151
        .mhandler.cmd_new = do_change,
152
    },
153

    
154
STEXI
155
@item change @var{device} @var{setting}
156

    
157
Change the configuration of a device.
158

    
159
@table @option
160
@item change @var{diskdevice} @var{filename} [@var{format}]
161
Change the medium for a removable disk device to point to @var{filename}. eg
162

    
163
@example
164
(qemu) change ide1-cd0 /path/to/some.iso
165
@end example
166

    
167
@var{format} is optional.
168

    
169
@item change vnc @var{display},@var{options}
170
Change the configuration of the VNC server. The valid syntax for @var{display}
171
and @var{options} are described at @ref{sec_invocation}. eg
172

    
173
@example
174
(qemu) change vnc localhost:1
175
@end example
176

    
177
@item change vnc password [@var{password}]
178

    
179
Change the password associated with the VNC server. If the new password is not
180
supplied, the monitor will prompt for it to be entered. VNC passwords are only
181
significant up to 8 letters. eg
182

    
183
@example
184
(qemu) change vnc password
185
Password: ********
186
@end example
187

    
188
@end table
189
ETEXI
190

    
191
    {
192
        .name       = "screendump",
193
        .args_type  = "filename:F",
194
        .params     = "filename",
195
        .help       = "save screen into PPM image 'filename'",
196
        .mhandler.cmd = do_screen_dump,
197
    },
198

    
199
STEXI
200
@item screendump @var{filename}
201
Save screen into PPM image @var{filename}.
202
ETEXI
203

    
204
    {
205
        .name       = "logfile",
206
        .args_type  = "filename:F",
207
        .params     = "filename",
208
        .help       = "output logs to 'filename'",
209
        .mhandler.cmd = do_logfile,
210
    },
211

    
212
STEXI
213
@item logfile @var{filename}
214
Output logs to @var{filename}.
215
ETEXI
216

    
217
    {
218
        .name       = "log",
219
        .args_type  = "items:s",
220
        .params     = "item1[,...]",
221
        .help       = "activate logging of the specified items to '/tmp/qemu.log'",
222
        .mhandler.cmd = do_log,
223
    },
224

    
225
STEXI
226
@item log @var{item1}[,...]
227
Activate logging of the specified items to @file{/tmp/qemu.log}.
228
ETEXI
229

    
230
    {
231
        .name       = "savevm",
232
        .args_type  = "name:s?",
233
        .params     = "[tag|id]",
234
        .help       = "save a VM snapshot. If no tag or id are provided, a new snapshot is created",
235
        .mhandler.cmd = do_savevm,
236
    },
237

    
238
STEXI
239
@item savevm [@var{tag}|@var{id}]
240
Create a snapshot of the whole virtual machine. If @var{tag} is
241
provided, it is used as human readable identifier. If there is already
242
a snapshot with the same tag or ID, it is replaced. More info at
243
@ref{vm_snapshots}.
244
ETEXI
245

    
246
    {
247
        .name       = "loadvm",
248
        .args_type  = "name:s",
249
        .params     = "tag|id",
250
        .help       = "restore a VM snapshot from its tag or id",
251
        .mhandler.cmd = do_loadvm,
252
    },
253

    
254
STEXI
255
@item loadvm @var{tag}|@var{id}
256
Set the whole virtual machine to the snapshot identified by the tag
257
@var{tag} or the unique snapshot ID @var{id}.
258
ETEXI
259

    
260
    {
261
        .name       = "delvm",
262
        .args_type  = "name:s",
263
        .params     = "tag|id",
264
        .help       = "delete a VM snapshot from its tag or id",
265
        .mhandler.cmd = do_delvm,
266
    },
267

    
268
STEXI
269
@item delvm @var{tag}|@var{id}
270
Delete the snapshot identified by @var{tag} or @var{id}.
271
ETEXI
272

    
273
    {
274
        .name       = "singlestep",
275
        .args_type  = "option:s?",
276
        .params     = "[on|off]",
277
        .help       = "run emulation in singlestep mode or switch to normal mode",
278
        .mhandler.cmd = do_singlestep,
279
    },
280

    
281
STEXI
282
@item singlestep [off]
283
Run the emulation in single step mode.
284
If called with option off, the emulation returns to normal mode.
285
ETEXI
286

    
287
    {
288
        .name       = "stop",
289
        .args_type  = "",
290
        .params     = "",
291
        .help       = "stop emulation",
292
        .user_print = monitor_user_noop,
293
        .mhandler.cmd_new = do_stop,
294
    },
295

    
296
STEXI
297
@item stop
298
Stop emulation.
299
ETEXI
300

    
301
    {
302
        .name       = "c|cont",
303
        .args_type  = "",
304
        .params     = "",
305
        .help       = "resume emulation",
306
        .user_print = monitor_user_noop,
307
        .mhandler.cmd_new = do_cont,
308
    },
309

    
310
STEXI
311
@item c or cont
312
Resume emulation.
313
ETEXI
314

    
315
    {
316
        .name       = "gdbserver",
317
        .args_type  = "device:s?",
318
        .params     = "[device]",
319
        .help       = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
320
        .mhandler.cmd = do_gdbserver,
321
    },
322

    
323
STEXI
324
@item gdbserver [@var{port}]
325
Start gdbserver session (default @var{port}=1234)
326
ETEXI
327

    
328
    {
329
        .name       = "x",
330
        .args_type  = "fmt:/,addr:l",
331
        .params     = "/fmt addr",
332
        .help       = "virtual memory dump starting at 'addr'",
333
        .mhandler.cmd = do_memory_dump,
334
    },
335

    
336
STEXI
337
@item x/fmt @var{addr}
338
Virtual memory dump starting at @var{addr}.
339
ETEXI
340

    
341
    {
342
        .name       = "xp",
343
        .args_type  = "fmt:/,addr:l",
344
        .params     = "/fmt addr",
345
        .help       = "physical memory dump starting at 'addr'",
346
        .mhandler.cmd = do_physical_memory_dump,
347
    },
348

    
349
STEXI
350
@item xp /@var{fmt} @var{addr}
351
Physical memory dump starting at @var{addr}.
352

    
353
@var{fmt} is a format which tells the command how to format the
354
data. Its syntax is: @option{/@{count@}@{format@}@{size@}}
355

    
356
@table @var
357
@item count
358
is the number of items to be dumped.
359

    
360
@item format
361
can be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
362
c (char) or i (asm instruction).
363

    
364
@item size
365
can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
366
@code{h} or @code{w} can be specified with the @code{i} format to
367
respectively select 16 or 32 bit code instruction size.
368

    
369
@end table
370

    
371
Examples:
372
@itemize
373
@item
374
Dump 10 instructions at the current instruction pointer:
375
@example
376
(qemu) x/10i $eip
377
0x90107063:  ret
378
0x90107064:  sti
379
0x90107065:  lea    0x0(%esi,1),%esi
380
0x90107069:  lea    0x0(%edi,1),%edi
381
0x90107070:  ret
382
0x90107071:  jmp    0x90107080
383
0x90107073:  nop
384
0x90107074:  nop
385
0x90107075:  nop
386
0x90107076:  nop
387
@end example
388

    
389
@item
390
Dump 80 16 bit values at the start of the video memory.
391
@smallexample
392
(qemu) xp/80hx 0xb8000
393
0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
394
0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
395
0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
396
0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
397
0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
398
0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
399
0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
400
0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
401
0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
402
0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
403
@end smallexample
404
@end itemize
405
ETEXI
406

    
407
    {
408
        .name       = "p|print",
409
        .args_type  = "fmt:/,val:l",
410
        .params     = "/fmt expr",
411
        .help       = "print expression value (use $reg for CPU register access)",
412
        .mhandler.cmd = do_print,
413
    },
414

    
415
STEXI
416
@item p or print/@var{fmt} @var{expr}
417

    
418
Print expression value. Only the @var{format} part of @var{fmt} is
419
used.
420
ETEXI
421

    
422
    {
423
        .name       = "i",
424
        .args_type  = "fmt:/,addr:i,index:i.",
425
        .params     = "/fmt addr",
426
        .help       = "I/O port read",
427
        .mhandler.cmd = do_ioport_read,
428
    },
429

    
430
STEXI
431
Read I/O port.
432
ETEXI
433

    
434
    {
435
        .name       = "o",
436
        .args_type  = "fmt:/,addr:i,val:i",
437
        .params     = "/fmt addr value",
438
        .help       = "I/O port write",
439
        .mhandler.cmd = do_ioport_write,
440
    },
441

    
442
STEXI
443
Write to I/O port.
444
ETEXI
445

    
446
    {
447
        .name       = "sendkey",
448
        .args_type  = "string:s,hold_time:i?",
449
        .params     = "keys [hold_ms]",
450
        .help       = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
451
        .mhandler.cmd = do_sendkey,
452
    },
453

    
454
STEXI
455
@item sendkey @var{keys}
456

    
457
Send @var{keys} to the emulator. @var{keys} could be the name of the
458
key or @code{#} followed by the raw value in either decimal or hexadecimal
459
format. Use @code{-} to press several keys simultaneously. Example:
460
@example
461
sendkey ctrl-alt-f1
462
@end example
463

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

    
468
    {
469
        .name       = "system_reset",
470
        .args_type  = "",
471
        .params     = "",
472
        .help       = "reset the system",
473
        .user_print = monitor_user_noop,
474
        .mhandler.cmd_new = do_system_reset,
475
    },
476

    
477
STEXI
478
@item system_reset
479

    
480
Reset the system.
481
ETEXI
482

    
483
    {
484
        .name       = "system_powerdown",
485
        .args_type  = "",
486
        .params     = "",
487
        .help       = "send system power down event",
488
        .user_print = monitor_user_noop,
489
        .mhandler.cmd_new = do_system_powerdown,
490
    },
491

    
492
STEXI
493
@item system_powerdown
494

    
495
Power down the system (if supported).
496
ETEXI
497

    
498
    {
499
        .name       = "sum",
500
        .args_type  = "start:i,size:i",
501
        .params     = "addr size",
502
        .help       = "compute the checksum of a memory region",
503
        .mhandler.cmd = do_sum,
504
    },
505

    
506
STEXI
507
@item sum @var{addr} @var{size}
508

    
509
Compute the checksum of a memory region.
510
ETEXI
511

    
512
    {
513
        .name       = "usb_add",
514
        .args_type  = "devname:s",
515
        .params     = "device",
516
        .help       = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
517
        .mhandler.cmd = do_usb_add,
518
    },
519

    
520
STEXI
521
@item usb_add @var{devname}
522

    
523
Add the USB device @var{devname}.  For details of available devices see
524
@ref{usb_devices}
525
ETEXI
526

    
527
    {
528
        .name       = "usb_del",
529
        .args_type  = "devname:s",
530
        .params     = "device",
531
        .help       = "remove USB device 'bus.addr'",
532
        .mhandler.cmd = do_usb_del,
533
    },
534

    
535
STEXI
536
@item usb_del @var{devname}
537

    
538
Remove the USB device @var{devname} from the QEMU virtual USB
539
hub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
540
command @code{info usb} to see the devices you can remove.
541
ETEXI
542

    
543
    {
544
        .name       = "device_add",
545
        .args_type  = "config:s",
546
        .params     = "device",
547
        .help       = "add device, like -device on the command line",
548
        .mhandler.cmd = do_device_add,
549
    },
550

    
551
STEXI
552
@item device_add @var{config}
553

    
554
Add device.
555
ETEXI
556

    
557
    {
558
        .name       = "device_del",
559
        .args_type  = "id:s",
560
        .params     = "device",
561
        .help       = "remove device",
562
        .mhandler.cmd = do_device_del,
563
    },
564

    
565
STEXI
566
@item device_del @var{id}
567

    
568
Remove device @var{id}.
569
ETEXI
570

    
571
    {
572
        .name       = "cpu",
573
        .args_type  = "index:i",
574
        .params     = "index",
575
        .help       = "set the default CPU",
576
        .user_print = monitor_user_noop,
577
        .mhandler.cmd_new = do_cpu_set,
578
    },
579

    
580
STEXI
581
Set the default CPU.
582
ETEXI
583

    
584
    {
585
        .name       = "mouse_move",
586
        .args_type  = "dx_str:s,dy_str:s,dz_str:s?",
587
        .params     = "dx dy [dz]",
588
        .help       = "send mouse move events",
589
        .mhandler.cmd = do_mouse_move,
590
    },
591

    
592
STEXI
593
@item mouse_move @var{dx} @var{dy} [@var{dz}]
594
Move the active mouse to the specified coordinates @var{dx} @var{dy}
595
with optional scroll axis @var{dz}.
596
ETEXI
597

    
598
    {
599
        .name       = "mouse_button",
600
        .args_type  = "button_state:i",
601
        .params     = "state",
602
        .help       = "change mouse button state (1=L, 2=M, 4=R)",
603
        .mhandler.cmd = do_mouse_button,
604
    },
605

    
606
STEXI
607
@item mouse_button @var{val}
608
Change the active mouse button state @var{val} (1=L, 2=M, 4=R).
609
ETEXI
610

    
611
    {
612
        .name       = "mouse_set",
613
        .args_type  = "index:i",
614
        .params     = "index",
615
        .help       = "set which mouse device receives events",
616
        .mhandler.cmd = do_mouse_set,
617
    },
618

    
619
STEXI
620
@item mouse_set @var{index}
621
Set which mouse device receives events at given @var{index}, index
622
can be obtained with
623
@example
624
info mice
625
@end example
626
ETEXI
627

    
628
#ifdef HAS_AUDIO
629
    {
630
        .name       = "wavcapture",
631
        .args_type  = "path:F,freq:i?,bits:i?,nchannels:i?",
632
        .params     = "path [frequency [bits [channels]]]",
633
        .help       = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
634
        .mhandler.cmd = do_wav_capture,
635
    },
636
#endif
637
STEXI
638
@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
639
Capture audio into @var{filename}. Using sample rate @var{frequency}
640
bits per sample @var{bits} and number of channels @var{channels}.
641

    
642
Defaults:
643
@itemize @minus
644
@item Sample rate = 44100 Hz - CD quality
645
@item Bits = 16
646
@item Number of channels = 2 - Stereo
647
@end itemize
648
ETEXI
649

    
650
#ifdef HAS_AUDIO
651
    {
652
        .name       = "stopcapture",
653
        .args_type  = "n:i",
654
        .params     = "capture index",
655
        .help       = "stop capture",
656
        .mhandler.cmd = do_stop_capture,
657
    },
658
#endif
659
STEXI
660
@item stopcapture @var{index}
661
Stop capture with a given @var{index}, index can be obtained with
662
@example
663
info capture
664
@end example
665
ETEXI
666

    
667
    {
668
        .name       = "memsave",
669
        .args_type  = "val:l,size:i,filename:s",
670
        .params     = "addr size file",
671
        .help       = "save to disk virtual memory dump starting at 'addr' of size 'size'",
672
        .user_print = monitor_user_noop,
673
        .mhandler.cmd_new = do_memory_save,
674
    },
675

    
676
STEXI
677
@item memsave @var{addr} @var{size} @var{file}
678
save to disk virtual memory dump starting at @var{addr} of size @var{size}.
679
ETEXI
680

    
681
    {
682
        .name       = "pmemsave",
683
        .args_type  = "val:l,size:i,filename:s",
684
        .params     = "addr size file",
685
        .help       = "save to disk physical memory dump starting at 'addr' of size 'size'",
686
        .user_print = monitor_user_noop,
687
        .mhandler.cmd_new = do_physical_memory_save,
688
    },
689

    
690
STEXI
691
@item pmemsave @var{addr} @var{size} @var{file}
692
save to disk physical memory dump starting at @var{addr} of size @var{size}.
693
ETEXI
694

    
695
    {
696
        .name       = "boot_set",
697
        .args_type  = "bootdevice:s",
698
        .params     = "bootdevice",
699
        .help       = "define new values for the boot device list",
700
        .mhandler.cmd = do_boot_set,
701
    },
702

    
703
STEXI
704
@item boot_set @var{bootdevicelist}
705

    
706
Define new values for the boot device list. Those values will override
707
the values specified on the command line through the @code{-boot} option.
708

    
709
The values that can be specified here depend on the machine type, but are
710
the same that can be specified in the @code{-boot} command line option.
711
ETEXI
712

    
713
#if defined(TARGET_I386)
714
    {
715
        .name       = "nmi",
716
        .args_type  = "cpu_index:i",
717
        .params     = "cpu",
718
        .help       = "inject an NMI on the given CPU",
719
        .mhandler.cmd = do_inject_nmi,
720
    },
721
#endif
722
STEXI
723
@item nmi @var{cpu}
724
Inject an NMI on the given CPU (x86 only).
725
ETEXI
726

    
727
    {
728
        .name       = "migrate",
729
        .args_type  = "detach:-d,blk:-b,inc:-i,uri:s",
730
        .params     = "[-d] [-b] [-i] uri",
731
        .help       = "migrate to URI (using -d to not wait for completion)"
732
		      "\n\t\t\t -b for migration without shared storage with"
733
		      " full copy of disk\n\t\t\t -i for migration without "
734
		      "shared storage with incremental copy of disk "
735
		      "(base image shared between src and destination)",
736
        .user_print = monitor_user_noop,	
737
	.mhandler.cmd_new = do_migrate,
738
    },
739

    
740

    
741
STEXI
742
@item migrate [-d] [-b] [-i] @var{uri}
743
Migrate to @var{uri} (using -d to not wait for completion).
744
	-b for migration with full copy of disk
745
	-i for migration with incremental copy of disk (base image is shared)
746
ETEXI
747

    
748
    {
749
        .name       = "migrate_cancel",
750
        .args_type  = "",
751
        .params     = "",
752
        .help       = "cancel the current VM migration",
753
        .user_print = monitor_user_noop,
754
        .mhandler.cmd_new = do_migrate_cancel,
755
    },
756

    
757
STEXI
758
@item migrate_cancel
759
Cancel the current VM migration.
760
ETEXI
761

    
762
    {
763
        .name       = "migrate_set_speed",
764
        .args_type  = "value:b",
765
        .params     = "value",
766
        .help       = "set maximum speed (in bytes) for migrations",
767
        .user_print = monitor_user_noop,
768
        .mhandler.cmd_new = do_migrate_set_speed,
769
    },
770

    
771
STEXI
772
@item migrate_set_speed @var{value}
773
Set maximum speed to @var{value} (in bytes) for migrations.
774
ETEXI
775

    
776
    {
777
        .name       = "migrate_set_downtime",
778
        .args_type  = "value:T",
779
        .params     = "value",
780
        .help       = "set maximum tolerated downtime (in seconds) for migrations",
781
        .user_print = monitor_user_noop,
782
        .mhandler.cmd_new = do_migrate_set_downtime,
783
    },
784

    
785
STEXI
786
@item migrate_set_downtime @var{second}
787
Set maximum tolerated downtime (in seconds) for migration.
788
ETEXI
789

    
790
#if defined(TARGET_I386)
791
    {
792
        .name       = "drive_add",
793
        .args_type  = "pci_addr:s,opts:s",
794
        .params     = "[[<domain>:]<bus>:]<slot>\n"
795
                      "[file=file][,if=type][,bus=n]\n"
796
                      "[,unit=m][,media=d][index=i]\n"
797
                      "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
798
                      "[snapshot=on|off][,cache=on|off]",
799
        .help       = "add drive to PCI storage controller",
800
        .mhandler.cmd = drive_hot_add,
801
    },
802
#endif
803

    
804
STEXI
805
@item drive_add
806
Add drive to PCI storage controller.
807
ETEXI
808

    
809
#if defined(TARGET_I386)
810
    {
811
        .name       = "pci_add",
812
        .args_type  = "pci_addr:s,type:s,opts:s?",
813
        .params     = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
814
        .help       = "hot-add PCI device",
815
        .user_print = pci_device_hot_add_print,
816
        .mhandler.cmd_new = pci_device_hot_add,
817
    },
818
#endif
819

    
820
STEXI
821
@item pci_add
822
Hot-add PCI device.
823
ETEXI
824

    
825
#if defined(TARGET_I386)
826
    {
827
        .name       = "pci_del",
828
        .args_type  = "pci_addr:s",
829
        .params     = "[[<domain>:]<bus>:]<slot>",
830
        .help       = "hot remove PCI device",
831
        .user_print = monitor_user_noop,
832
        .mhandler.cmd_new = do_pci_device_hot_remove,
833
    },
834
#endif
835

    
836
STEXI
837
@item pci_del
838
Hot remove PCI device.
839
ETEXI
840

    
841
    {
842
        .name       = "host_net_add",
843
        .args_type  = "device:s,opts:s?",
844
        .params     = "tap|user|socket|vde|dump [options]",
845
        .help       = "add host VLAN client",
846
        .mhandler.cmd = net_host_device_add,
847
    },
848

    
849
STEXI
850
@item host_net_add
851
Add host VLAN client.
852
ETEXI
853

    
854
    {
855
        .name       = "host_net_remove",
856
        .args_type  = "vlan_id:i,device:s",
857
        .params     = "vlan_id name",
858
        .help       = "remove host VLAN client",
859
        .mhandler.cmd = net_host_device_remove,
860
    },
861

    
862
STEXI
863
@item host_net_remove
864
Remove host VLAN client.
865
ETEXI
866

    
867
#ifdef CONFIG_SLIRP
868
    {
869
        .name       = "hostfwd_add",
870
        .args_type  = "arg1:s,arg2:s?,arg3:s?",
871
        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
872
        .help       = "redirect TCP or UDP connections from host to guest (requires -net user)",
873
        .mhandler.cmd = net_slirp_hostfwd_add,
874
    },
875

    
876
    {
877
        .name       = "hostfwd_remove",
878
        .args_type  = "arg1:s,arg2:s?,arg3:s?",
879
        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
880
        .help       = "remove host-to-guest TCP or UDP redirection",
881
        .mhandler.cmd = net_slirp_hostfwd_remove,
882
    },
883

    
884
#endif
885
STEXI
886
@item host_net_redir
887
Redirect TCP or UDP connections from host to guest (requires -net user).
888
ETEXI
889

    
890
    {
891
        .name       = "balloon",
892
        .args_type  = "value:M",
893
        .params     = "target",
894
        .help       = "request VM to change it's memory allocation (in MB)",
895
        .user_print = monitor_user_noop,
896
        .mhandler.cmd_async = do_balloon,
897
        .async      = 1,
898
    },
899

    
900
STEXI
901
@item balloon @var{value}
902
Request VM to change its memory allocation to @var{value} (in MB).
903
ETEXI
904

    
905
    {
906
        .name       = "set_link",
907
        .args_type  = "name:s,up_or_down:s",
908
        .params     = "name up|down",
909
        .help       = "change the link status of a network adapter",
910
        .mhandler.cmd = do_set_link,
911
    },
912

    
913
STEXI
914
@item set_link @var{name} [up|down]
915
Set link @var{name} up or down.
916
ETEXI
917

    
918
    {
919
        .name       = "watchdog_action",
920
        .args_type  = "action:s",
921
        .params     = "[reset|shutdown|poweroff|pause|debug|none]",
922
        .help       = "change watchdog action",
923
        .mhandler.cmd = do_watchdog_action,
924
    },
925

    
926
STEXI
927
@item watchdog_action
928
Change watchdog action.
929
ETEXI
930

    
931
    {
932
        .name       = "acl_show",
933
        .args_type  = "aclname:s",
934
        .params     = "aclname",
935
        .help       = "list rules in the access control list",
936
        .mhandler.cmd = do_acl_show,
937
    },
938

    
939
STEXI
940
@item acl_show @var{aclname}
941
List all the matching rules in the access control list, and the default
942
policy. There are currently two named access control lists,
943
@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
944
certificate distinguished name, and SASL username respectively.
945
ETEXI
946

    
947
    {
948
        .name       = "acl_policy",
949
        .args_type  = "aclname:s,policy:s",
950
        .params     = "aclname allow|deny",
951
        .help       = "set default access control list policy",
952
        .mhandler.cmd = do_acl_policy,
953
    },
954

    
955
STEXI
956
@item acl_policy @var{aclname} @code{allow|deny}
957
Set the default access control list policy, used in the event that
958
none of the explicit rules match. The default policy at startup is
959
always @code{deny}.
960
ETEXI
961

    
962
    {
963
        .name       = "acl_add",
964
        .args_type  = "aclname:s,match:s,policy:s,index:i?",
965
        .params     = "aclname match allow|deny [index]",
966
        .help       = "add a match rule to the access control list",
967
        .mhandler.cmd = do_acl_add,
968
    },
969

    
970
STEXI
971
@item acl_allow @var{aclname} @var{match} @code{allow|deny} [@var{index}]
972
Add a match rule to the access control list, allowing or denying access.
973
The match will normally be an exact username or x509 distinguished name,
974
but can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
975
allow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
976
normally be appended to the end of the ACL, but can be inserted
977
earlier in the list if the optional @var{index} parameter is supplied.
978
ETEXI
979

    
980
    {
981
        .name       = "acl_remove",
982
        .args_type  = "aclname:s,match:s",
983
        .params     = "aclname match",
984
        .help       = "remove a match rule from the access control list",
985
        .mhandler.cmd = do_acl_remove,
986
    },
987

    
988
STEXI
989
@item acl_remove @var{aclname} @var{match}
990
Remove the specified match rule from the access control list.
991
ETEXI
992

    
993
    {
994
        .name       = "acl_reset",
995
        .args_type  = "aclname:s",
996
        .params     = "aclname",
997
        .help       = "reset the access control list",
998
        .mhandler.cmd = do_acl_reset,
999
    },
1000

    
1001
STEXI
1002
@item acl_remove @var{aclname} @var{match}
1003
Remove all matches from the access control list, and set the default
1004
policy back to @code{deny}.
1005
ETEXI
1006

    
1007
#if defined(TARGET_I386)
1008

    
1009
    {
1010
        .name       = "mce",
1011
        .args_type  = "cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
1012
        .params     = "cpu bank status mcgstatus addr misc",
1013
        .help       = "inject a MCE on the given CPU",
1014
        .mhandler.cmd = do_inject_mce,
1015
    },
1016

    
1017
#endif
1018
STEXI
1019
@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
1020
Inject an MCE on the given CPU (x86 only).
1021
ETEXI
1022

    
1023
    {
1024
        .name       = "getfd",
1025
        .args_type  = "fdname:s",
1026
        .params     = "getfd name",
1027
        .help       = "receive a file descriptor via SCM rights and assign it a name",
1028
        .user_print = monitor_user_noop,
1029
        .mhandler.cmd_new = do_getfd,
1030
    },
1031

    
1032
STEXI
1033
@item getfd @var{fdname}
1034
If a file descriptor is passed alongside this command using the SCM_RIGHTS
1035
mechanism on unix sockets, it is stored using the name @var{fdname} for
1036
later use by other monitor commands.
1037
ETEXI
1038

    
1039
    {
1040
        .name       = "closefd",
1041
        .args_type  = "fdname:s",
1042
        .params     = "closefd name",
1043
        .help       = "close a file descriptor previously passed via SCM rights",
1044
        .user_print = monitor_user_noop,
1045
        .mhandler.cmd_new = do_closefd,
1046
    },
1047

    
1048
STEXI
1049
@item closefd @var{fdname}
1050
Close the file descriptor previously assigned to @var{fdname} using the
1051
@code{getfd} command. This is only needed if the file descriptor was never
1052
used by another monitor command.
1053
ETEXI
1054

    
1055
    {
1056
        .name       = "block_passwd",
1057
        .args_type  = "device:B,password:s",
1058
        .params     = "block_passwd device password",
1059
        .help       = "set the password of encrypted block devices",
1060
        .user_print = monitor_user_noop,
1061
        .mhandler.cmd_new = do_block_set_passwd,
1062
    },
1063

    
1064
STEXI
1065
@item block_passwd @var{device} @var{password}
1066
Set the encrypted device @var{device} password to @var{password}
1067
ETEXI
1068

    
1069
STEXI
1070
@end table
1071
ETEXI