Statistics
| Branch: | Revision:

root / qemu-monitor.hx @ 83fb1de2

History | View | Annotate | Download (26.4 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,filename:B",
134
        .params     = "[-f] device",
135
        .help       = "eject a removable medium (use -f to force it)",
136
        .mhandler.cmd = do_eject,
137
    },
138

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

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

    
152
STEXI
153
@item change @var{device} @var{setting}
154

    
155
Change the configuration of a device.
156

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

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

    
165
@var{format} is optional.
166

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

    
171
@example
172
(qemu) change vnc localhost:1
173
@end example
174

    
175
@item change vnc password [@var{password}]
176

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

    
181
@example
182
(qemu) change vnc password
183
Password: ********
184
@end example
185

    
186
@end table
187
ETEXI
188

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
294
STEXI
295
@item stop
296
Stop emulation.
297
ETEXI
298

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

    
308
STEXI
309
@item c or cont
310
Resume emulation.
311
ETEXI
312

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

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

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

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

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

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

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

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

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

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

    
367
@end table
368

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

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

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

    
413
STEXI
414
@item p or print/@var{fmt} @var{expr}
415

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

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

    
428
STEXI
429
Read I/O port.
430
ETEXI
431

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

    
440
STEXI
441
Write to I/O port.
442
ETEXI
443

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

    
452
STEXI
453
@item sendkey @var{keys}
454

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

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

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

    
475
STEXI
476
@item system_reset
477

    
478
Reset the system.
479
ETEXI
480

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

    
490
STEXI
491
@item system_powerdown
492

    
493
Power down the system (if supported).
494
ETEXI
495

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

    
504
STEXI
505
@item sum @var{addr} @var{size}
506

    
507
Compute the checksum of a memory region.
508
ETEXI
509

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

    
518
STEXI
519
@item usb_add @var{devname}
520

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

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

    
533
STEXI
534
@item usb_del @var{devname}
535

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

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

    
549
STEXI
550
@item device_add @var{config}
551

    
552
Add device.
553
ETEXI
554

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

    
563
STEXI
564
@item device_del @var{id}
565

    
566
Remove device @var{id}.
567
ETEXI
568

    
569
    {
570
        .name       = "cpu",
571
        .args_type  = "index:i",
572
        .params     = "index",
573
        .help       = "set the default CPU",
574
        .mhandler.cmd = do_cpu_set,
575
    },
576

    
577
STEXI
578
Set the default CPU.
579
ETEXI
580

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

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

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

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

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

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

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

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

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

    
664
    {
665
        .name       = "memsave",
666
        .args_type  = "val:l,size:i,filename:s",
667
        .params     = "addr size file",
668
        .help       = "save to disk virtual memory dump starting at 'addr' of size 'size'",
669
        .mhandler.cmd = do_memory_save,
670
    },
671

    
672
STEXI
673
@item memsave @var{addr} @var{size} @var{file}
674
save to disk virtual memory dump starting at @var{addr} of size @var{size}.
675
ETEXI
676

    
677
    {
678
        .name       = "pmemsave",
679
        .args_type  = "val:l,size:i,filename:s",
680
        .params     = "addr size file",
681
        .help       = "save to disk physical memory dump starting at 'addr' of size 'size'",
682
        .mhandler.cmd = do_physical_memory_save,
683
    },
684

    
685
STEXI
686
@item pmemsave @var{addr} @var{size} @var{file}
687
save to disk physical memory dump starting at @var{addr} of size @var{size}.
688
ETEXI
689

    
690
    {
691
        .name       = "boot_set",
692
        .args_type  = "bootdevice:s",
693
        .params     = "bootdevice",
694
        .help       = "define new values for the boot device list",
695
        .mhandler.cmd = do_boot_set,
696
    },
697

    
698
STEXI
699
@item boot_set @var{bootdevicelist}
700

    
701
Define new values for the boot device list. Those values will override
702
the values specified on the command line through the @code{-boot} option.
703

    
704
The values that can be specified here depend on the machine type, but are
705
the same that can be specified in the @code{-boot} command line option.
706
ETEXI
707

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

    
722
    {
723
        .name       = "migrate",
724
        .args_type  = "detach:-d,uri:s",
725
        .params     = "[-d] uri",
726
        .help       = "migrate to URI (using -d to not wait for completion)",
727
        .mhandler.cmd = do_migrate,
728
    },
729

    
730
STEXI
731
@item migrate [-d] @var{uri}
732
Migrate to @var{uri} (using -d to not wait for completion).
733
ETEXI
734

    
735
    {
736
        .name       = "migrate_cancel",
737
        .args_type  = "",
738
        .params     = "",
739
        .help       = "cancel the current VM migration",
740
        .mhandler.cmd = do_migrate_cancel,
741
    },
742

    
743
STEXI
744
@item migrate_cancel
745
Cancel the current VM migration.
746
ETEXI
747

    
748
    {
749
        .name       = "migrate_set_speed",
750
        .args_type  = "value:s",
751
        .params     = "value",
752
        .help       = "set maximum speed (in bytes) for migrations",
753
        .mhandler.cmd = do_migrate_set_speed,
754
    },
755

    
756
STEXI
757
@item migrate_set_speed @var{value}
758
Set maximum speed to @var{value} (in bytes) for migrations.
759
ETEXI
760

    
761
    {
762
        .name       = "migrate_set_downtime",
763
        .args_type  = "value:s",
764
        .params     = "value",
765
        .help       = "set maximum tolerated downtime (in seconds) for migrations",
766
        .mhandler.cmd = do_migrate_set_downtime,
767
    },
768

    
769
STEXI
770
@item migrate_set_downtime @var{second}
771
Set maximum tolerated downtime (in seconds) for migration.
772
ETEXI
773

    
774
#if defined(TARGET_I386)
775
    {
776
        .name       = "drive_add",
777
        .args_type  = "pci_addr:s,opts:s",
778
        .params     = "[[<domain>:]<bus>:]<slot>\n"
779
                      "[file=file][,if=type][,bus=n]\n"
780
                      "[,unit=m][,media=d][index=i]\n"
781
                      "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
782
                      "[snapshot=on|off][,cache=on|off]",
783
        .help       = "add drive to PCI storage controller",
784
        .mhandler.cmd = drive_hot_add,
785
    },
786
#endif
787

    
788
STEXI
789
@item drive_add
790
Add drive to PCI storage controller.
791
ETEXI
792

    
793
#if defined(TARGET_I386)
794
    {
795
        .name       = "pci_add",
796
        .args_type  = "pci_addr:s,type:s,opts:s?",
797
        .params     = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
798
        .help       = "hot-add PCI device",
799
        .mhandler.cmd = pci_device_hot_add,
800
    },
801
#endif
802

    
803
STEXI
804
@item pci_add
805
Hot-add PCI device.
806
ETEXI
807

    
808
#if defined(TARGET_I386)
809
    {
810
        .name       = "pci_del",
811
        .args_type  = "pci_addr:s",
812
        .params     = "[[<domain>:]<bus>:]<slot>",
813
        .help       = "hot remove PCI device",
814
        .mhandler.cmd = do_pci_device_hot_remove,
815
    },
816
#endif
817

    
818
STEXI
819
@item pci_del
820
Hot remove PCI device.
821
ETEXI
822

    
823
    {
824
        .name       = "host_net_add",
825
        .args_type  = "device:s,opts:s?",
826
        .params     = "tap|user|socket|vde|dump [options]",
827
        .help       = "add host VLAN client",
828
        .mhandler.cmd = net_host_device_add,
829
    },
830

    
831
STEXI
832
@item host_net_add
833
Add host VLAN client.
834
ETEXI
835

    
836
    {
837
        .name       = "host_net_remove",
838
        .args_type  = "vlan_id:i,device:s",
839
        .params     = "vlan_id name",
840
        .help       = "remove host VLAN client",
841
        .mhandler.cmd = net_host_device_remove,
842
    },
843

    
844
STEXI
845
@item host_net_remove
846
Remove host VLAN client.
847
ETEXI
848

    
849
#ifdef CONFIG_SLIRP
850
    {
851
        .name       = "hostfwd_add",
852
        .args_type  = "arg1:s,arg2:s?,arg3:s?",
853
        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
854
        .help       = "redirect TCP or UDP connections from host to guest (requires -net user)",
855
        .mhandler.cmd = net_slirp_hostfwd_add,
856
    },
857

    
858
    {
859
        .name       = "hostfwd_remove",
860
        .args_type  = "arg1:s,arg2:s?,arg3:s?",
861
        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
862
        .help       = "remove host-to-guest TCP or UDP redirection",
863
        .mhandler.cmd = net_slirp_hostfwd_remove,
864
    },
865

    
866
#endif
867
STEXI
868
@item host_net_redir
869
Redirect TCP or UDP connections from host to guest (requires -net user).
870
ETEXI
871

    
872
    {
873
        .name       = "balloon",
874
        .args_type  = "value:i",
875
        .params     = "target",
876
        .help       = "request VM to change it's memory allocation (in MB)",
877
        .user_print = monitor_user_noop,
878
        .mhandler.cmd_new = do_balloon,
879
    },
880

    
881
STEXI
882
@item balloon @var{value}
883
Request VM to change its memory allocation to @var{value} (in MB).
884
ETEXI
885

    
886
    {
887
        .name       = "set_link",
888
        .args_type  = "name:s,up_or_down:s",
889
        .params     = "name up|down",
890
        .help       = "change the link status of a network adapter",
891
        .mhandler.cmd = do_set_link,
892
    },
893

    
894
STEXI
895
@item set_link @var{name} [up|down]
896
Set link @var{name} up or down.
897
ETEXI
898

    
899
    {
900
        .name       = "watchdog_action",
901
        .args_type  = "action:s",
902
        .params     = "[reset|shutdown|poweroff|pause|debug|none]",
903
        .help       = "change watchdog action",
904
        .mhandler.cmd = do_watchdog_action,
905
    },
906

    
907
STEXI
908
@item watchdog_action
909
Change watchdog action.
910
ETEXI
911

    
912
    {
913
        .name       = "acl_show",
914
        .args_type  = "aclname:s",
915
        .params     = "aclname",
916
        .help       = "list rules in the access control list",
917
        .mhandler.cmd = do_acl_show,
918
    },
919

    
920
STEXI
921
@item acl_show @var{aclname}
922
List all the matching rules in the access control list, and the default
923
policy. There are currently two named access control lists,
924
@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
925
certificate distinguished name, and SASL username respectively.
926
ETEXI
927

    
928
    {
929
        .name       = "acl_policy",
930
        .args_type  = "aclname:s,policy:s",
931
        .params     = "aclname allow|deny",
932
        .help       = "set default access control list policy",
933
        .mhandler.cmd = do_acl_policy,
934
    },
935

    
936
STEXI
937
@item acl_policy @var{aclname} @code{allow|deny}
938
Set the default access control list policy, used in the event that
939
none of the explicit rules match. The default policy at startup is
940
always @code{deny}.
941
ETEXI
942

    
943
    {
944
        .name       = "acl_add",
945
        .args_type  = "aclname:s,match:s,policy:s,index:i?",
946
        .params     = "aclname match allow|deny [index]",
947
        .help       = "add a match rule to the access control list",
948
        .mhandler.cmd = do_acl_add,
949
    },
950

    
951
STEXI
952
@item acl_allow @var{aclname} @var{match} @code{allow|deny} [@var{index}]
953
Add a match rule to the access control list, allowing or denying access.
954
The match will normally be an exact username or x509 distinguished name,
955
but can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
956
allow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
957
normally be appended to the end of the ACL, but can be inserted
958
earlier in the list if the optional @var{index} parameter is supplied.
959
ETEXI
960

    
961
    {
962
        .name       = "acl_remove",
963
        .args_type  = "aclname:s,match:s",
964
        .params     = "aclname match",
965
        .help       = "remove a match rule from the access control list",
966
        .mhandler.cmd = do_acl_remove,
967
    },
968

    
969
STEXI
970
@item acl_remove @var{aclname} @var{match}
971
Remove the specified match rule from the access control list.
972
ETEXI
973

    
974
    {
975
        .name       = "acl_reset",
976
        .args_type  = "aclname:s",
977
        .params     = "aclname",
978
        .help       = "reset the access control list",
979
        .mhandler.cmd = do_acl_reset,
980
    },
981

    
982
STEXI
983
@item acl_remove @var{aclname} @var{match}
984
Remove all matches from the access control list, and set the default
985
policy back to @code{deny}.
986
ETEXI
987

    
988
#if defined(TARGET_I386)
989

    
990
    {
991
        .name       = "mce",
992
        .args_type  = "cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
993
        .params     = "cpu bank status mcgstatus addr misc",
994
        .help       = "inject a MCE on the given CPU",
995
        .mhandler.cmd = do_inject_mce,
996
    },
997

    
998
#endif
999
STEXI
1000
@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
1001
Inject an MCE on the given CPU (x86 only).
1002
ETEXI
1003

    
1004
    {
1005
        .name       = "getfd",
1006
        .args_type  = "fdname:s",
1007
        .params     = "getfd name",
1008
        .help       = "receive a file descriptor via SCM rights and assign it a name",
1009
        .mhandler.cmd = do_getfd,
1010
    },
1011

    
1012
STEXI
1013
@item getfd @var{fdname}
1014
If a file descriptor is passed alongside this command using the SCM_RIGHTS
1015
mechanism on unix sockets, it is stored using the name @var{fdname} for
1016
later use by other monitor commands.
1017
ETEXI
1018

    
1019
    {
1020
        .name       = "closefd",
1021
        .args_type  = "fdname:s",
1022
        .params     = "closefd name",
1023
        .help       = "close a file descriptor previously passed via SCM rights",
1024
        .mhandler.cmd = do_closefd,
1025
    },
1026

    
1027
STEXI
1028
@item closefd @var{fdname}
1029
Close the file descriptor previously assigned to @var{fdname} using the
1030
@code{getfd} command. This is only needed if the file descriptor was never
1031
used by another monitor command.
1032
ETEXI
1033

    
1034
STEXI
1035
@end table
1036
ETEXI