Statistics
| Branch: | Revision:

root / hmp-commands.hx @ 5f964155

History | View | Annotate | Download (38.3 kB)

1
HXCOMM Use DEFHEADING() to define headings in both help text and texi
2
HXCOMM Text between STEXI and ETEXI are copied to texi version and
3
HXCOMM discarded from C version
4
HXCOMM DEF(command, args, callback, arg_string, help) is used to construct
5
HXCOMM monitor commands
6
HXCOMM HXCOMM can be used for comments, discarded from both texi and C
7

    
8
STEXI
9
@table @option
10
ETEXI
11

    
12
    {
13
        .name       = "help|?",
14
        .args_type  = "name:s?",
15
        .params     = "[cmd]",
16
        .help       = "show the help",
17
        .mhandler.cmd = do_help_cmd,
18
    },
19

    
20
STEXI
21
@item help or ? [@var{cmd}]
22
@findex help
23
Show the help for all commands or just for command @var{cmd}.
24
ETEXI
25

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

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

    
40
    {
41
        .name       = "q|quit",
42
        .args_type  = "",
43
        .params     = "",
44
        .help       = "quit the emulator",
45
        .user_print = monitor_user_noop,
46
        .mhandler.cmd = hmp_quit,
47
    },
48

    
49
STEXI
50
@item q or quit
51
@findex quit
52
Quit the emulator.
53
ETEXI
54

    
55
    {
56
        .name       = "block_resize",
57
        .args_type  = "device:B,size:o",
58
        .params     = "device size",
59
        .help       = "resize a block image",
60
        .mhandler.cmd = hmp_block_resize,
61
    },
62

    
63
STEXI
64
@item block_resize
65
@findex block_resize
66
Resize a block image while a guest is running.  Usually requires guest
67
action to see the updated size.  Resize to a lower size is supported,
68
but should be used with extreme caution.  Note that this command only
69
resizes image files, it can not resize block devices like LVM volumes.
70
ETEXI
71

    
72
    {
73
        .name       = "block_stream",
74
        .args_type  = "device:B,speed:o?,base:s?",
75
        .params     = "device [speed [base]]",
76
        .help       = "copy data from a backing file into a block device",
77
        .mhandler.cmd = hmp_block_stream,
78
    },
79

    
80
STEXI
81
@item block_stream
82
@findex block_stream
83
Copy data from a backing file into a block device.
84
ETEXI
85

    
86
    {
87
        .name       = "block_job_set_speed",
88
        .args_type  = "device:B,speed:o",
89
        .params     = "device speed",
90
        .help       = "set maximum speed for a background block operation",
91
        .mhandler.cmd = hmp_block_job_set_speed,
92
    },
93

    
94
STEXI
95
@item block_job_set_speed
96
@findex block_job_set_speed
97
Set maximum speed for a background block operation.
98
ETEXI
99

    
100
    {
101
        .name       = "block_job_cancel",
102
        .args_type  = "device:B",
103
        .params     = "device",
104
        .help       = "stop an active block streaming operation",
105
        .mhandler.cmd = hmp_block_job_cancel,
106
    },
107

    
108
STEXI
109
@item block_job_cancel
110
@findex block_job_cancel
111
Stop an active block streaming operation.
112
ETEXI
113

    
114
    {
115
        .name       = "eject",
116
        .args_type  = "force:-f,device:B",
117
        .params     = "[-f] device",
118
        .help       = "eject a removable medium (use -f to force it)",
119
        .mhandler.cmd = hmp_eject,
120
    },
121

    
122
STEXI
123
@item eject [-f] @var{device}
124
@findex eject
125
Eject a removable medium (use -f to force it).
126
ETEXI
127

    
128
    {
129
        .name       = "drive_del",
130
        .args_type  = "id:s",
131
        .params     = "device",
132
        .help       = "remove host block device",
133
        .user_print = monitor_user_noop,
134
        .mhandler.cmd_new = do_drive_del,
135
    },
136

    
137
STEXI
138
@item drive_del @var{device}
139
@findex drive_del
140
Remove host block device.  The result is that guest generated IO is no longer
141
submitted against the host device underlying the disk.  Once a drive has
142
been deleted, the QEMU Block layer returns -EIO which results in IO
143
errors in the guest for applications that are reading/writing to the device.
144
ETEXI
145

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

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

    
158
Change the configuration of a device.
159

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

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

    
168
@var{format} is optional.
169

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

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

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

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

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

    
189
@end table
190
ETEXI
191

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

    
201
STEXI
202
@item screendump @var{filename}
203
@findex screendump
204
Save screen into PPM image @var{filename}.
205
ETEXI
206

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

    
215
STEXI
216
@item logfile @var{filename}
217
@findex logfile
218
Output logs to @var{filename}.
219
ETEXI
220

    
221
    {
222
        .name       = "trace-event",
223
        .args_type  = "name:s,option:b",
224
        .params     = "name on|off",
225
        .help       = "changes status of a specific trace event",
226
        .mhandler.cmd = do_trace_event_set_state,
227
    },
228

    
229
STEXI
230
@item trace-event
231
@findex trace-event
232
changes status of a trace event
233
ETEXI
234

    
235
#if defined(CONFIG_TRACE_SIMPLE)
236
    {
237
        .name       = "trace-file",
238
        .args_type  = "op:s?,arg:F?",
239
        .params     = "on|off|flush|set [arg]",
240
        .help       = "open, close, or flush trace file, or set a new file name",
241
        .mhandler.cmd = do_trace_file,
242
    },
243

    
244
STEXI
245
@item trace-file on|off|flush
246
@findex trace-file
247
Open, close, or flush the trace file.  If no argument is given, the status of the trace file is displayed.
248
ETEXI
249
#endif
250

    
251
    {
252
        .name       = "log",
253
        .args_type  = "items:s",
254
        .params     = "item1[,...]",
255
        .help       = "activate logging of the specified items to '/tmp/qemu.log'",
256
        .mhandler.cmd = do_log,
257
    },
258

    
259
STEXI
260
@item log @var{item1}[,...]
261
@findex log
262
Activate logging of the specified items to @file{/tmp/qemu.log}.
263
ETEXI
264

    
265
    {
266
        .name       = "savevm",
267
        .args_type  = "name:s?",
268
        .params     = "[tag|id]",
269
        .help       = "save a VM snapshot. If no tag or id are provided, a new snapshot is created",
270
        .mhandler.cmd = do_savevm,
271
    },
272

    
273
STEXI
274
@item savevm [@var{tag}|@var{id}]
275
@findex savevm
276
Create a snapshot of the whole virtual machine. If @var{tag} is
277
provided, it is used as human readable identifier. If there is already
278
a snapshot with the same tag or ID, it is replaced. More info at
279
@ref{vm_snapshots}.
280
ETEXI
281

    
282
    {
283
        .name       = "loadvm",
284
        .args_type  = "name:s",
285
        .params     = "tag|id",
286
        .help       = "restore a VM snapshot from its tag or id",
287
        .mhandler.cmd = do_loadvm,
288
    },
289

    
290
STEXI
291
@item loadvm @var{tag}|@var{id}
292
@findex loadvm
293
Set the whole virtual machine to the snapshot identified by the tag
294
@var{tag} or the unique snapshot ID @var{id}.
295
ETEXI
296

    
297
    {
298
        .name       = "delvm",
299
        .args_type  = "name:s",
300
        .params     = "tag|id",
301
        .help       = "delete a VM snapshot from its tag or id",
302
        .mhandler.cmd = do_delvm,
303
    },
304

    
305
STEXI
306
@item delvm @var{tag}|@var{id}
307
@findex delvm
308
Delete the snapshot identified by @var{tag} or @var{id}.
309
ETEXI
310

    
311
    {
312
        .name       = "singlestep",
313
        .args_type  = "option:s?",
314
        .params     = "[on|off]",
315
        .help       = "run emulation in singlestep mode or switch to normal mode",
316
        .mhandler.cmd = do_singlestep,
317
    },
318

    
319
STEXI
320
@item singlestep [off]
321
@findex singlestep
322
Run the emulation in single step mode.
323
If called with option off, the emulation returns to normal mode.
324
ETEXI
325

    
326
    {
327
        .name       = "stop",
328
        .args_type  = "",
329
        .params     = "",
330
        .help       = "stop emulation",
331
        .mhandler.cmd = hmp_stop,
332
    },
333

    
334
STEXI
335
@item stop
336
@findex stop
337
Stop emulation.
338
ETEXI
339

    
340
    {
341
        .name       = "c|cont",
342
        .args_type  = "",
343
        .params     = "",
344
        .help       = "resume emulation",
345
        .mhandler.cmd = hmp_cont,
346
    },
347

    
348
STEXI
349
@item c or cont
350
@findex cont
351
Resume emulation.
352
ETEXI
353

    
354
    {
355
        .name       = "system_wakeup",
356
        .args_type  = "",
357
        .params     = "",
358
        .help       = "wakeup guest from suspend",
359
        .mhandler.cmd = hmp_system_wakeup,
360
    },
361

    
362
STEXI
363
@item system_wakeup
364
@findex system_wakeup
365
Wakeup guest from suspend.
366
ETEXI
367

    
368
    {
369
        .name       = "gdbserver",
370
        .args_type  = "device:s?",
371
        .params     = "[device]",
372
        .help       = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
373
        .mhandler.cmd = do_gdbserver,
374
    },
375

    
376
STEXI
377
@item gdbserver [@var{port}]
378
@findex gdbserver
379
Start gdbserver session (default @var{port}=1234)
380
ETEXI
381

    
382
    {
383
        .name       = "x",
384
        .args_type  = "fmt:/,addr:l",
385
        .params     = "/fmt addr",
386
        .help       = "virtual memory dump starting at 'addr'",
387
        .mhandler.cmd = do_memory_dump,
388
    },
389

    
390
STEXI
391
@item x/fmt @var{addr}
392
@findex x
393
Virtual memory dump starting at @var{addr}.
394
ETEXI
395

    
396
    {
397
        .name       = "xp",
398
        .args_type  = "fmt:/,addr:l",
399
        .params     = "/fmt addr",
400
        .help       = "physical memory dump starting at 'addr'",
401
        .mhandler.cmd = do_physical_memory_dump,
402
    },
403

    
404
STEXI
405
@item xp /@var{fmt} @var{addr}
406
@findex xp
407
Physical memory dump starting at @var{addr}.
408

    
409
@var{fmt} is a format which tells the command how to format the
410
data. Its syntax is: @option{/@{count@}@{format@}@{size@}}
411

    
412
@table @var
413
@item count
414
is the number of items to be dumped.
415

    
416
@item format
417
can be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
418
c (char) or i (asm instruction).
419

    
420
@item size
421
can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
422
@code{h} or @code{w} can be specified with the @code{i} format to
423
respectively select 16 or 32 bit code instruction size.
424

    
425
@end table
426

    
427
Examples:
428
@itemize
429
@item
430
Dump 10 instructions at the current instruction pointer:
431
@example
432
(qemu) x/10i $eip
433
0x90107063:  ret
434
0x90107064:  sti
435
0x90107065:  lea    0x0(%esi,1),%esi
436
0x90107069:  lea    0x0(%edi,1),%edi
437
0x90107070:  ret
438
0x90107071:  jmp    0x90107080
439
0x90107073:  nop
440
0x90107074:  nop
441
0x90107075:  nop
442
0x90107076:  nop
443
@end example
444

    
445
@item
446
Dump 80 16 bit values at the start of the video memory.
447
@smallexample
448
(qemu) xp/80hx 0xb8000
449
0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
450
0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
451
0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
452
0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
453
0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
454
0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
455
0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
456
0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
457
0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
458
0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
459
@end smallexample
460
@end itemize
461
ETEXI
462

    
463
    {
464
        .name       = "p|print",
465
        .args_type  = "fmt:/,val:l",
466
        .params     = "/fmt expr",
467
        .help       = "print expression value (use $reg for CPU register access)",
468
        .mhandler.cmd = do_print,
469
    },
470

    
471
STEXI
472
@item p or print/@var{fmt} @var{expr}
473
@findex print
474

    
475
Print expression value. Only the @var{format} part of @var{fmt} is
476
used.
477
ETEXI
478

    
479
    {
480
        .name       = "i",
481
        .args_type  = "fmt:/,addr:i,index:i.",
482
        .params     = "/fmt addr",
483
        .help       = "I/O port read",
484
        .mhandler.cmd = do_ioport_read,
485
    },
486

    
487
STEXI
488
Read I/O port.
489
ETEXI
490

    
491
    {
492
        .name       = "o",
493
        .args_type  = "fmt:/,addr:i,val:i",
494
        .params     = "/fmt addr value",
495
        .help       = "I/O port write",
496
        .mhandler.cmd = do_ioport_write,
497
    },
498

    
499
STEXI
500
Write to I/O port.
501
ETEXI
502

    
503
    {
504
        .name       = "sendkey",
505
        .args_type  = "string:s,hold_time:i?",
506
        .params     = "keys [hold_ms]",
507
        .help       = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
508
        .mhandler.cmd = do_sendkey,
509
    },
510

    
511
STEXI
512
@item sendkey @var{keys}
513
@findex sendkey
514

    
515
Send @var{keys} to the emulator. @var{keys} could be the name of the
516
key or @code{#} followed by the raw value in either decimal or hexadecimal
517
format. Use @code{-} to press several keys simultaneously. Example:
518
@example
519
sendkey ctrl-alt-f1
520
@end example
521

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

    
526
    {
527
        .name       = "system_reset",
528
        .args_type  = "",
529
        .params     = "",
530
        .help       = "reset the system",
531
        .mhandler.cmd = hmp_system_reset,
532
    },
533

    
534
STEXI
535
@item system_reset
536
@findex system_reset
537

    
538
Reset the system.
539
ETEXI
540

    
541
    {
542
        .name       = "system_powerdown",
543
        .args_type  = "",
544
        .params     = "",
545
        .help       = "send system power down event",
546
        .mhandler.cmd = hmp_system_powerdown,
547
    },
548

    
549
STEXI
550
@item system_powerdown
551
@findex system_powerdown
552

    
553
Power down the system (if supported).
554
ETEXI
555

    
556
    {
557
        .name       = "sum",
558
        .args_type  = "start:i,size:i",
559
        .params     = "addr size",
560
        .help       = "compute the checksum of a memory region",
561
        .mhandler.cmd = do_sum,
562
    },
563

    
564
STEXI
565
@item sum @var{addr} @var{size}
566
@findex sum
567

    
568
Compute the checksum of a memory region.
569
ETEXI
570

    
571
    {
572
        .name       = "usb_add",
573
        .args_type  = "devname:s",
574
        .params     = "device",
575
        .help       = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
576
        .mhandler.cmd = do_usb_add,
577
    },
578

    
579
STEXI
580
@item usb_add @var{devname}
581
@findex usb_add
582

    
583
Add the USB device @var{devname}.  For details of available devices see
584
@ref{usb_devices}
585
ETEXI
586

    
587
    {
588
        .name       = "usb_del",
589
        .args_type  = "devname:s",
590
        .params     = "device",
591
        .help       = "remove USB device 'bus.addr'",
592
        .mhandler.cmd = do_usb_del,
593
    },
594

    
595
STEXI
596
@item usb_del @var{devname}
597
@findex usb_del
598

    
599
Remove the USB device @var{devname} from the QEMU virtual USB
600
hub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
601
command @code{info usb} to see the devices you can remove.
602
ETEXI
603

    
604
    {
605
        .name       = "device_add",
606
        .args_type  = "device:O",
607
        .params     = "driver[,prop=value][,...]",
608
        .help       = "add device, like -device on the command line",
609
        .user_print = monitor_user_noop,
610
        .mhandler.cmd_new = do_device_add,
611
    },
612

    
613
STEXI
614
@item device_add @var{config}
615
@findex device_add
616

    
617
Add device.
618
ETEXI
619

    
620
    {
621
        .name       = "device_del",
622
        .args_type  = "id:s",
623
        .params     = "device",
624
        .help       = "remove device",
625
        .mhandler.cmd = hmp_device_del,
626
    },
627

    
628
STEXI
629
@item device_del @var{id}
630
@findex device_del
631

    
632
Remove device @var{id}.
633
ETEXI
634

    
635
    {
636
        .name       = "cpu",
637
        .args_type  = "index:i",
638
        .params     = "index",
639
        .help       = "set the default CPU",
640
        .mhandler.cmd = hmp_cpu,
641
    },
642

    
643
STEXI
644
@item cpu @var{index}
645
@findex cpu
646
Set the default CPU.
647
ETEXI
648

    
649
    {
650
        .name       = "mouse_move",
651
        .args_type  = "dx_str:s,dy_str:s,dz_str:s?",
652
        .params     = "dx dy [dz]",
653
        .help       = "send mouse move events",
654
        .mhandler.cmd = do_mouse_move,
655
    },
656

    
657
STEXI
658
@item mouse_move @var{dx} @var{dy} [@var{dz}]
659
@findex mouse_move
660
Move the active mouse to the specified coordinates @var{dx} @var{dy}
661
with optional scroll axis @var{dz}.
662
ETEXI
663

    
664
    {
665
        .name       = "mouse_button",
666
        .args_type  = "button_state:i",
667
        .params     = "state",
668
        .help       = "change mouse button state (1=L, 2=M, 4=R)",
669
        .mhandler.cmd = do_mouse_button,
670
    },
671

    
672
STEXI
673
@item mouse_button @var{val}
674
@findex mouse_button
675
Change the active mouse button state @var{val} (1=L, 2=M, 4=R).
676
ETEXI
677

    
678
    {
679
        .name       = "mouse_set",
680
        .args_type  = "index:i",
681
        .params     = "index",
682
        .help       = "set which mouse device receives events",
683
        .mhandler.cmd = do_mouse_set,
684
    },
685

    
686
STEXI
687
@item mouse_set @var{index}
688
@findex mouse_set
689
Set which mouse device receives events at given @var{index}, index
690
can be obtained with
691
@example
692
info mice
693
@end example
694
ETEXI
695

    
696
#ifdef HAS_AUDIO
697
    {
698
        .name       = "wavcapture",
699
        .args_type  = "path:F,freq:i?,bits:i?,nchannels:i?",
700
        .params     = "path [frequency [bits [channels]]]",
701
        .help       = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
702
        .mhandler.cmd = do_wav_capture,
703
    },
704
#endif
705
STEXI
706
@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
707
@findex wavcapture
708
Capture audio into @var{filename}. Using sample rate @var{frequency}
709
bits per sample @var{bits} and number of channels @var{channels}.
710

    
711
Defaults:
712
@itemize @minus
713
@item Sample rate = 44100 Hz - CD quality
714
@item Bits = 16
715
@item Number of channels = 2 - Stereo
716
@end itemize
717
ETEXI
718

    
719
#ifdef HAS_AUDIO
720
    {
721
        .name       = "stopcapture",
722
        .args_type  = "n:i",
723
        .params     = "capture index",
724
        .help       = "stop capture",
725
        .mhandler.cmd = do_stop_capture,
726
    },
727
#endif
728
STEXI
729
@item stopcapture @var{index}
730
@findex stopcapture
731
Stop capture with a given @var{index}, index can be obtained with
732
@example
733
info capture
734
@end example
735
ETEXI
736

    
737
    {
738
        .name       = "memsave",
739
        .args_type  = "val:l,size:i,filename:s",
740
        .params     = "addr size file",
741
        .help       = "save to disk virtual memory dump starting at 'addr' of size 'size'",
742
        .mhandler.cmd = hmp_memsave,
743
    },
744

    
745
STEXI
746
@item memsave @var{addr} @var{size} @var{file}
747
@findex memsave
748
save to disk virtual memory dump starting at @var{addr} of size @var{size}.
749
ETEXI
750

    
751
    {
752
        .name       = "pmemsave",
753
        .args_type  = "val:l,size:i,filename:s",
754
        .params     = "addr size file",
755
        .help       = "save to disk physical memory dump starting at 'addr' of size 'size'",
756
        .mhandler.cmd = hmp_pmemsave,
757
    },
758

    
759
STEXI
760
@item pmemsave @var{addr} @var{size} @var{file}
761
@findex pmemsave
762
save to disk physical memory dump starting at @var{addr} of size @var{size}.
763
ETEXI
764

    
765
    {
766
        .name       = "boot_set",
767
        .args_type  = "bootdevice:s",
768
        .params     = "bootdevice",
769
        .help       = "define new values for the boot device list",
770
        .mhandler.cmd = do_boot_set,
771
    },
772

    
773
STEXI
774
@item boot_set @var{bootdevicelist}
775
@findex boot_set
776

    
777
Define new values for the boot device list. Those values will override
778
the values specified on the command line through the @code{-boot} option.
779

    
780
The values that can be specified here depend on the machine type, but are
781
the same that can be specified in the @code{-boot} command line option.
782
ETEXI
783

    
784
#if defined(TARGET_I386)
785
    {
786
        .name       = "nmi",
787
        .args_type  = "",
788
        .params     = "",
789
        .help       = "inject an NMI on all guest's CPUs",
790
        .mhandler.cmd = hmp_inject_nmi,
791
    },
792
#endif
793
STEXI
794
@item nmi @var{cpu}
795
@findex nmi
796
Inject an NMI on the given CPU (x86 only).
797
ETEXI
798

    
799
    {
800
        .name       = "migrate",
801
        .args_type  = "detach:-d,blk:-b,inc:-i,uri:s",
802
        .params     = "[-d] [-b] [-i] uri",
803
        .help       = "migrate to URI (using -d to not wait for completion)"
804
		      "\n\t\t\t -b for migration without shared storage with"
805
		      " full copy of disk\n\t\t\t -i for migration without "
806
		      "shared storage with incremental copy of disk "
807
		      "(base image shared between src and destination)",
808
        .mhandler.cmd = hmp_migrate,
809
    },
810

    
811

    
812
STEXI
813
@item migrate [-d] [-b] [-i] @var{uri}
814
@findex migrate
815
Migrate to @var{uri} (using -d to not wait for completion).
816
	-b for migration with full copy of disk
817
	-i for migration with incremental copy of disk (base image is shared)
818
ETEXI
819

    
820
    {
821
        .name       = "migrate_cancel",
822
        .args_type  = "",
823
        .params     = "",
824
        .help       = "cancel the current VM migration",
825
        .mhandler.cmd = hmp_migrate_cancel,
826
    },
827

    
828
STEXI
829
@item migrate_cancel
830
@findex migrate_cancel
831
Cancel the current VM migration.
832
ETEXI
833

    
834
    {
835
        .name       = "migrate_set_speed",
836
        .args_type  = "value:o",
837
        .params     = "value",
838
        .help       = "set maximum speed (in bytes) for migrations. "
839
	"Defaults to MB if no size suffix is specified, ie. B/K/M/G/T",
840
        .mhandler.cmd = hmp_migrate_set_speed,
841
    },
842

    
843
STEXI
844
@item migrate_set_speed @var{value}
845
@findex migrate_set_speed
846
Set maximum speed to @var{value} (in bytes) for migrations.
847
ETEXI
848

    
849
    {
850
        .name       = "migrate_set_downtime",
851
        .args_type  = "value:T",
852
        .params     = "value",
853
        .help       = "set maximum tolerated downtime (in seconds) for migrations",
854
        .mhandler.cmd = hmp_migrate_set_downtime,
855
    },
856

    
857
STEXI
858
@item migrate_set_downtime @var{second}
859
@findex migrate_set_downtime
860
Set maximum tolerated downtime (in seconds) for migration.
861
ETEXI
862

    
863
    {
864
        .name       = "client_migrate_info",
865
        .args_type  = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
866
        .params     = "protocol hostname port tls-port cert-subject",
867
        .help       = "send migration info to spice/vnc client",
868
        .user_print = monitor_user_noop,
869
        .mhandler.cmd_async = client_migrate_info,
870
        .flags      = MONITOR_CMD_ASYNC,
871
    },
872

    
873
STEXI
874
@item client_migrate_info @var{protocol} @var{hostname} @var{port} @var{tls-port} @var{cert-subject}
875
@findex client_migrate_info
876
Set the spice/vnc connection info for the migration target.  The spice/vnc
877
server will ask the spice/vnc client to automatically reconnect using the
878
new parameters (if specified) once the vm migration finished successfully.
879
ETEXI
880

    
881
#if defined(CONFIG_HAVE_CORE_DUMP)
882
    {
883
        .name       = "dump-guest-memory",
884
        .args_type  = "paging:-p,protocol:s,begin:i?,length:i?",
885
        .params     = "[-p] protocol [begin] [length]",
886
        .help       = "dump guest memory to file"
887
                      "\n\t\t\t begin(optional): the starting physical address"
888
                      "\n\t\t\t length(optional): the memory size, in bytes",
889
        .user_print = monitor_user_noop,
890
        .mhandler.cmd = hmp_dump_guest_memory,
891
    },
892

    
893

    
894
STEXI
895
@item dump-guest-memory [-p] @var{protocol} @var{begin} @var{length}
896
@findex dump-guest-memory
897
Dump guest memory to @var{protocol}. The file can be processed with crash or
898
gdb.
899
  protocol: destination file(started with "file:") or destination file
900
            descriptor (started with "fd:")
901
    paging: do paging to get guest's memory mapping
902
     begin: the starting physical address. It's optional, and should be
903
            specified with length together.
904
    length: the memory size, in bytes. It's optional, and should be specified
905
            with begin together.
906
ETEXI
907
#endif
908

    
909
    {
910
        .name       = "snapshot_blkdev",
911
        .args_type  = "reuse:-n,device:B,snapshot-file:s?,format:s?",
912
        .params     = "[-n] device [new-image-file] [format]",
913
        .help       = "initiates a live snapshot\n\t\t\t"
914
                      "of device. If a new image file is specified, the\n\t\t\t"
915
                      "new image file will become the new root image.\n\t\t\t"
916
                      "If format is specified, the snapshot file will\n\t\t\t"
917
                      "be created in that format. Otherwise the\n\t\t\t"
918
                      "snapshot will be internal! (currently unsupported).\n\t\t\t"
919
                      "The default format is qcow2.  The -n flag requests QEMU\n\t\t\t"
920
                      "to reuse the image found in new-image-file, instead of\n\t\t\t"
921
                      "recreating it from scratch.",
922
        .mhandler.cmd = hmp_snapshot_blkdev,
923
    },
924

    
925
STEXI
926
@item snapshot_blkdev
927
@findex snapshot_blkdev
928
Snapshot device, using snapshot file as target if provided
929
ETEXI
930

    
931
    {
932
        .name       = "drive_add",
933
        .args_type  = "pci_addr:s,opts:s",
934
        .params     = "[[<domain>:]<bus>:]<slot>\n"
935
                      "[file=file][,if=type][,bus=n]\n"
936
                      "[,unit=m][,media=d][,index=i]\n"
937
                      "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
938
                      "[,snapshot=on|off][,cache=on|off]\n"
939
                      "[,readonly=on|off][,copy-on-read=on|off]",
940
        .help       = "add drive to PCI storage controller",
941
        .mhandler.cmd = drive_hot_add,
942
    },
943

    
944
STEXI
945
@item drive_add
946
@findex drive_add
947
Add drive to PCI storage controller.
948
ETEXI
949

    
950
#if defined(TARGET_I386)
951
    {
952
        .name       = "pci_add",
953
        .args_type  = "pci_addr:s,type:s,opts:s?",
954
        .params     = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
955
        .help       = "hot-add PCI device",
956
        .mhandler.cmd = pci_device_hot_add,
957
    },
958
#endif
959

    
960
STEXI
961
@item pci_add
962
@findex pci_add
963
Hot-add PCI device.
964
ETEXI
965

    
966
#if defined(TARGET_I386)
967
    {
968
        .name       = "pci_del",
969
        .args_type  = "pci_addr:s",
970
        .params     = "[[<domain>:]<bus>:]<slot>",
971
        .help       = "hot remove PCI device",
972
        .mhandler.cmd = do_pci_device_hot_remove,
973
    },
974
#endif
975

    
976
STEXI
977
@item pci_del
978
@findex pci_del
979
Hot remove PCI device.
980
ETEXI
981

    
982
    {
983
        .name       = "pcie_aer_inject_error",
984
        .args_type  = "advisory_non_fatal:-a,correctable:-c,"
985
	              "id:s,error_status:s,"
986
	              "header0:i?,header1:i?,header2:i?,header3:i?,"
987
	              "prefix0:i?,prefix1:i?,prefix2:i?,prefix3:i?",
988
        .params     = "[-a] [-c] id "
989
                      "<error_status> [<tlp header> [<tlp header prefix>]]",
990
        .help       = "inject pcie aer error\n\t\t\t"
991
	              " -a for advisory non fatal error\n\t\t\t"
992
	              " -c for correctable error\n\t\t\t"
993
                      "<id> = qdev device id\n\t\t\t"
994
                      "<error_status> = error string or 32bit\n\t\t\t"
995
                      "<tlb header> = 32bit x 4\n\t\t\t"
996
                      "<tlb header prefix> = 32bit x 4",
997
        .user_print  = pcie_aer_inject_error_print,
998
        .mhandler.cmd_new = do_pcie_aer_inject_error,
999
    },
1000

    
1001
STEXI
1002
@item pcie_aer_inject_error
1003
@findex pcie_aer_inject_error
1004
Inject PCIe AER error
1005
ETEXI
1006

    
1007
    {
1008
        .name       = "host_net_add",
1009
        .args_type  = "device:s,opts:s?",
1010
        .params     = "tap|user|socket|vde|dump [options]",
1011
        .help       = "add host VLAN client",
1012
        .mhandler.cmd = net_host_device_add,
1013
    },
1014

    
1015
STEXI
1016
@item host_net_add
1017
@findex host_net_add
1018
Add host VLAN client.
1019
ETEXI
1020

    
1021
    {
1022
        .name       = "host_net_remove",
1023
        .args_type  = "vlan_id:i,device:s",
1024
        .params     = "vlan_id name",
1025
        .help       = "remove host VLAN client",
1026
        .mhandler.cmd = net_host_device_remove,
1027
    },
1028

    
1029
STEXI
1030
@item host_net_remove
1031
@findex host_net_remove
1032
Remove host VLAN client.
1033
ETEXI
1034

    
1035
    {
1036
        .name       = "netdev_add",
1037
        .args_type  = "netdev:O",
1038
        .params     = "[user|tap|socket],id=str[,prop=value][,...]",
1039
        .help       = "add host network device",
1040
        .mhandler.cmd = hmp_netdev_add,
1041
    },
1042

    
1043
STEXI
1044
@item netdev_add
1045
@findex netdev_add
1046
Add host network device.
1047
ETEXI
1048

    
1049
    {
1050
        .name       = "netdev_del",
1051
        .args_type  = "id:s",
1052
        .params     = "id",
1053
        .help       = "remove host network device",
1054
        .mhandler.cmd = hmp_netdev_del,
1055
    },
1056

    
1057
STEXI
1058
@item netdev_del
1059
@findex netdev_del
1060
Remove host network device.
1061
ETEXI
1062

    
1063
#ifdef CONFIG_SLIRP
1064
    {
1065
        .name       = "hostfwd_add",
1066
        .args_type  = "arg1:s,arg2:s?,arg3:s?",
1067
        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
1068
        .help       = "redirect TCP or UDP connections from host to guest (requires -net user)",
1069
        .mhandler.cmd = net_slirp_hostfwd_add,
1070
    },
1071
#endif
1072
STEXI
1073
@item hostfwd_add
1074
@findex hostfwd_add
1075
Redirect TCP or UDP connections from host to guest (requires -net user).
1076
ETEXI
1077

    
1078
#ifdef CONFIG_SLIRP
1079
    {
1080
        .name       = "hostfwd_remove",
1081
        .args_type  = "arg1:s,arg2:s?,arg3:s?",
1082
        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
1083
        .help       = "remove host-to-guest TCP or UDP redirection",
1084
        .mhandler.cmd = net_slirp_hostfwd_remove,
1085
    },
1086

    
1087
#endif
1088
STEXI
1089
@item hostfwd_remove
1090
@findex hostfwd_remove
1091
Remove host-to-guest TCP or UDP redirection.
1092
ETEXI
1093

    
1094
    {
1095
        .name       = "balloon",
1096
        .args_type  = "value:M",
1097
        .params     = "target",
1098
        .help       = "request VM to change its memory allocation (in MB)",
1099
        .mhandler.cmd = hmp_balloon,
1100
    },
1101

    
1102
STEXI
1103
@item balloon @var{value}
1104
@findex balloon
1105
Request VM to change its memory allocation to @var{value} (in MB).
1106
ETEXI
1107

    
1108
    {
1109
        .name       = "set_link",
1110
        .args_type  = "name:s,up:b",
1111
        .params     = "name on|off",
1112
        .help       = "change the link status of a network adapter",
1113
        .mhandler.cmd = hmp_set_link,
1114
    },
1115

    
1116
STEXI
1117
@item set_link @var{name} [on|off]
1118
@findex set_link
1119
Switch link @var{name} on (i.e. up) or off (i.e. down).
1120
ETEXI
1121

    
1122
    {
1123
        .name       = "watchdog_action",
1124
        .args_type  = "action:s",
1125
        .params     = "[reset|shutdown|poweroff|pause|debug|none]",
1126
        .help       = "change watchdog action",
1127
        .mhandler.cmd = do_watchdog_action,
1128
    },
1129

    
1130
STEXI
1131
@item watchdog_action
1132
@findex watchdog_action
1133
Change watchdog action.
1134
ETEXI
1135

    
1136
    {
1137
        .name       = "acl_show",
1138
        .args_type  = "aclname:s",
1139
        .params     = "aclname",
1140
        .help       = "list rules in the access control list",
1141
        .mhandler.cmd = do_acl_show,
1142
    },
1143

    
1144
STEXI
1145
@item acl_show @var{aclname}
1146
@findex acl_show
1147
List all the matching rules in the access control list, and the default
1148
policy. There are currently two named access control lists,
1149
@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
1150
certificate distinguished name, and SASL username respectively.
1151
ETEXI
1152

    
1153
    {
1154
        .name       = "acl_policy",
1155
        .args_type  = "aclname:s,policy:s",
1156
        .params     = "aclname allow|deny",
1157
        .help       = "set default access control list policy",
1158
        .mhandler.cmd = do_acl_policy,
1159
    },
1160

    
1161
STEXI
1162
@item acl_policy @var{aclname} @code{allow|deny}
1163
@findex acl_policy
1164
Set the default access control list policy, used in the event that
1165
none of the explicit rules match. The default policy at startup is
1166
always @code{deny}.
1167
ETEXI
1168

    
1169
    {
1170
        .name       = "acl_add",
1171
        .args_type  = "aclname:s,match:s,policy:s,index:i?",
1172
        .params     = "aclname match allow|deny [index]",
1173
        .help       = "add a match rule to the access control list",
1174
        .mhandler.cmd = do_acl_add,
1175
    },
1176

    
1177
STEXI
1178
@item acl_add @var{aclname} @var{match} @code{allow|deny} [@var{index}]
1179
@findex acl_add
1180
Add a match rule to the access control list, allowing or denying access.
1181
The match will normally be an exact username or x509 distinguished name,
1182
but can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
1183
allow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
1184
normally be appended to the end of the ACL, but can be inserted
1185
earlier in the list if the optional @var{index} parameter is supplied.
1186
ETEXI
1187

    
1188
    {
1189
        .name       = "acl_remove",
1190
        .args_type  = "aclname:s,match:s",
1191
        .params     = "aclname match",
1192
        .help       = "remove a match rule from the access control list",
1193
        .mhandler.cmd = do_acl_remove,
1194
    },
1195

    
1196
STEXI
1197
@item acl_remove @var{aclname} @var{match}
1198
@findex acl_remove
1199
Remove the specified match rule from the access control list.
1200
ETEXI
1201

    
1202
    {
1203
        .name       = "acl_reset",
1204
        .args_type  = "aclname:s",
1205
        .params     = "aclname",
1206
        .help       = "reset the access control list",
1207
        .mhandler.cmd = do_acl_reset,
1208
    },
1209

    
1210
STEXI
1211
@item acl_reset @var{aclname}
1212
@findex acl_reset
1213
Remove all matches from the access control list, and set the default
1214
policy back to @code{deny}.
1215
ETEXI
1216

    
1217
#if defined(TARGET_I386)
1218

    
1219
    {
1220
        .name       = "mce",
1221
        .args_type  = "broadcast:-b,cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
1222
        .params     = "[-b] cpu bank status mcgstatus addr misc",
1223
        .help       = "inject a MCE on the given CPU [and broadcast to other CPUs with -b option]",
1224
        .mhandler.cmd = do_inject_mce,
1225
    },
1226

    
1227
#endif
1228
STEXI
1229
@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
1230
@findex mce (x86)
1231
Inject an MCE on the given CPU (x86 only).
1232
ETEXI
1233

    
1234
    {
1235
        .name       = "getfd",
1236
        .args_type  = "fdname:s",
1237
        .params     = "getfd name",
1238
        .help       = "receive a file descriptor via SCM rights and assign it a name",
1239
        .user_print = monitor_user_noop,
1240
        .mhandler.cmd_new = do_getfd,
1241
    },
1242

    
1243
STEXI
1244
@item getfd @var{fdname}
1245
@findex getfd
1246
If a file descriptor is passed alongside this command using the SCM_RIGHTS
1247
mechanism on unix sockets, it is stored using the name @var{fdname} for
1248
later use by other monitor commands.
1249
ETEXI
1250

    
1251
    {
1252
        .name       = "closefd",
1253
        .args_type  = "fdname:s",
1254
        .params     = "closefd name",
1255
        .help       = "close a file descriptor previously passed via SCM rights",
1256
        .user_print = monitor_user_noop,
1257
        .mhandler.cmd_new = do_closefd,
1258
    },
1259

    
1260
STEXI
1261
@item closefd @var{fdname}
1262
@findex closefd
1263
Close the file descriptor previously assigned to @var{fdname} using the
1264
@code{getfd} command. This is only needed if the file descriptor was never
1265
used by another monitor command.
1266
ETEXI
1267

    
1268
    {
1269
        .name       = "block_passwd",
1270
        .args_type  = "device:B,password:s",
1271
        .params     = "block_passwd device password",
1272
        .help       = "set the password of encrypted block devices",
1273
        .mhandler.cmd = hmp_block_passwd,
1274
    },
1275

    
1276
STEXI
1277
@item block_set_io_throttle @var{device} @var{bps} @var{bps_rd} @var{bps_wr} @var{iops} @var{iops_rd} @var{iops_wr}
1278
@findex block_set_io_throttle
1279
Change I/O throttle limits for a block drive to @var{bps} @var{bps_rd} @var{bps_wr} @var{iops} @var{iops_rd} @var{iops_wr}
1280
ETEXI
1281

    
1282
    {
1283
        .name       = "block_set_io_throttle",
1284
        .args_type  = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l",
1285
        .params     = "device bps bps_rd bps_wr iops iops_rd iops_wr",
1286
        .help       = "change I/O throttle limits for a block drive",
1287
        .mhandler.cmd = hmp_block_set_io_throttle,
1288
    },
1289

    
1290
STEXI
1291
@item block_passwd @var{device} @var{password}
1292
@findex block_passwd
1293
Set the encrypted device @var{device} password to @var{password}
1294
ETEXI
1295

    
1296
    {
1297
        .name       = "set_password",
1298
        .args_type  = "protocol:s,password:s,connected:s?",
1299
        .params     = "protocol password action-if-connected",
1300
        .help       = "set spice/vnc password",
1301
        .mhandler.cmd = hmp_set_password,
1302
    },
1303

    
1304
STEXI
1305
@item set_password [ vnc | spice ] password [ action-if-connected ]
1306
@findex set_password
1307

    
1308
Change spice/vnc password.  Use zero to make the password stay valid
1309
forever.  @var{action-if-connected} specifies what should happen in
1310
case a connection is established: @var{fail} makes the password change
1311
fail.  @var{disconnect} changes the password and disconnects the
1312
client.  @var{keep} changes the password and keeps the connection up.
1313
@var{keep} is the default.
1314
ETEXI
1315

    
1316
    {
1317
        .name       = "expire_password",
1318
        .args_type  = "protocol:s,time:s",
1319
        .params     = "protocol time",
1320
        .help       = "set spice/vnc password expire-time",
1321
        .mhandler.cmd = hmp_expire_password,
1322
    },
1323

    
1324
STEXI
1325
@item expire_password [ vnc | spice ] expire-time
1326
@findex expire_password
1327

    
1328
Specify when a password for spice/vnc becomes
1329
invalid. @var{expire-time} accepts:
1330

    
1331
@table @var
1332
@item now
1333
Invalidate password instantly.
1334

    
1335
@item never
1336
Password stays valid forever.
1337

    
1338
@item +nsec
1339
Password stays valid for @var{nsec} seconds starting now.
1340

    
1341
@item nsec
1342
Password is invalidated at the given time.  @var{nsec} are the seconds
1343
passed since 1970, i.e. unix epoch.
1344

    
1345
@end table
1346
ETEXI
1347

    
1348
    {
1349
        .name       = "info",
1350
        .args_type  = "item:s?",
1351
        .params     = "[subcommand]",
1352
        .help       = "show various information about the system state",
1353
        .mhandler.cmd = do_info,
1354
    },
1355

    
1356
STEXI
1357
@item info @var{subcommand}
1358
@findex info
1359
Show various information about the system state.
1360

    
1361
@table @option
1362
@item info version
1363
show the version of QEMU
1364
@item info network
1365
show the various VLANs and the associated devices
1366
@item info chardev
1367
show the character devices
1368
@item info block
1369
show the block devices
1370
@item info blockstats
1371
show block device statistics
1372
@item info registers
1373
show the cpu registers
1374
@item info cpus
1375
show infos for each CPU
1376
@item info history
1377
show the command line history
1378
@item info irq
1379
show the interrupts statistics (if available)
1380
@item info pic
1381
show i8259 (PIC) state
1382
@item info pci
1383
show emulated PCI device info
1384
@item info tlb
1385
show virtual to physical memory mappings (i386, SH4, SPARC, PPC, and Xtensa only)
1386
@item info mem
1387
show the active virtual memory mappings (i386 only)
1388
@item info jit
1389
show dynamic compiler info
1390
@item info numa
1391
show NUMA information
1392
@item info kvm
1393
show KVM information
1394
@item info usb
1395
show USB devices plugged on the virtual USB hub
1396
@item info usbhost
1397
show all USB host devices
1398
@item info profile
1399
show profiling information
1400
@item info capture
1401
show information about active capturing
1402
@item info snapshots
1403
show list of VM snapshots
1404
@item info status
1405
show the current VM status (running|paused)
1406
@item info pcmcia
1407
show guest PCMCIA status
1408
@item info mice
1409
show which guest mouse is receiving events
1410
@item info vnc
1411
show the vnc server status
1412
@item info name
1413
show the current VM name
1414
@item info uuid
1415
show the current VM UUID
1416
@item info cpustats
1417
show CPU statistics
1418
@item info usernet
1419
show user network stack connection states
1420
@item info migrate
1421
show migration status
1422
@item info balloon
1423
show balloon information
1424
@item info qtree
1425
show device tree
1426
@item info qdm
1427
show qdev device model list
1428
@item info roms
1429
show roms
1430
@end table
1431
ETEXI
1432

    
1433
#ifdef CONFIG_TRACE_SIMPLE
1434
STEXI
1435
@item info trace
1436
show contents of trace buffer
1437
ETEXI
1438
#endif
1439

    
1440
STEXI
1441
@item info trace-events
1442
show available trace events and their state
1443
ETEXI
1444

    
1445
STEXI
1446
@end table
1447
ETEXI