Statistics
| Branch: | Revision:

root / qemu-monitor.hx @ 5667c493

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
        .mhandler.cmd = do_migrate_set_speed,
768
    },
769

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

    
775
    {
776
        .name       = "migrate_set_downtime",
777
        .args_type  = "value:s",
778
        .params     = "value",
779
        .help       = "set maximum tolerated downtime (in seconds) for migrations",
780
        .mhandler.cmd = do_migrate_set_downtime,
781
    },
782

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
1005
#if defined(TARGET_I386)
1006

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

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

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

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

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

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

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

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

    
1067
STEXI
1068
@end table
1069
ETEXI