Statistics
| Branch: | Revision:

root / qemu-monitor.hx @ b0fbf7d3

History | View | Annotate | Download (27.7 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
        .mhandler.cmd = do_migrate_set_downtime,
782
    },
783

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
1006
#if defined(TARGET_I386)
1007

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

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

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

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

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

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

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

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

    
1068
STEXI
1069
@end table
1070
ETEXI