File:  [Qemu by Fabrice Bellard] / qemu / hmp-commands.hx
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 18:34:28 2018 UTC (3 years, 1 month ago) by root
Branches: qemu, MAIN
CVS tags: qemu0150, qemu0141, qemu0140, HEAD
qemu 0.14.0

    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_new = do_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:         .user_print = monitor_user_noop,
   61:         .mhandler.cmd_new = do_block_resize,
   62:     },
   63: 
   64: STEXI
   65: @item block_resize
   66: @findex block_resize
   67: Resize a block image while a guest is running.  Usually requires guest
   68: action to see the updated size.  Resize to a lower size is supported,
   69: but should be used with extreme caution.  Note that this command only
   70: resizes image files, it can not resize block devices like LVM volumes.
   71: ETEXI
   72: 
   73: 
   74:     {
   75:         .name       = "eject",
   76:         .args_type  = "force:-f,device:B",
   77:         .params     = "[-f] device",
   78:         .help       = "eject a removable medium (use -f to force it)",
   79:         .user_print = monitor_user_noop,
   80:         .mhandler.cmd_new = do_eject,
   81:     },
   82: 
   83: STEXI
   84: @item eject [-f] @var{device}
   85: @findex eject
   86: Eject a removable medium (use -f to force it).
   87: ETEXI
   88: 
   89:     {
   90:         .name       = "drive_del",
   91:         .args_type  = "id:s",
   92:         .params     = "device",
   93:         .help       = "remove host block device",
   94:         .user_print = monitor_user_noop,
   95:         .mhandler.cmd_new = do_drive_del,
   96:     },
   97: 
   98: STEXI
   99: @item drive_del @var{device}
  100: @findex drive_del
  101: Remove host block device.  The result is that guest generated IO is no longer
  102: submitted against the host device underlying the disk.  Once a drive has
  103: been deleted, the QEMU Block layer returns -EIO which results in IO
  104: errors in the guest for applications that are reading/writing to the device.
  105: ETEXI
  106: 
  107:     {
  108:         .name       = "change",
  109:         .args_type  = "device:B,target:F,arg:s?",
  110:         .params     = "device filename [format]",
  111:         .help       = "change a removable medium, optional format",
  112:         .user_print = monitor_user_noop,
  113:         .mhandler.cmd_new = do_change,
  114:     },
  115: 
  116: STEXI
  117: @item change @var{device} @var{setting}
  118: @findex change
  119: 
  120: Change the configuration of a device.
  121: 
  122: @table @option
  123: @item change @var{diskdevice} @var{filename} [@var{format}]
  124: Change the medium for a removable disk device to point to @var{filename}. eg
  125: 
  126: @example
  127: (qemu) change ide1-cd0 /path/to/some.iso
  128: @end example
  129: 
  130: @var{format} is optional.
  131: 
  132: @item change vnc @var{display},@var{options}
  133: Change the configuration of the VNC server. The valid syntax for @var{display}
  134: and @var{options} are described at @ref{sec_invocation}. eg
  135: 
  136: @example
  137: (qemu) change vnc localhost:1
  138: @end example
  139: 
  140: @item change vnc password [@var{password}]
  141: 
  142: Change the password associated with the VNC server. If the new password is not
  143: supplied, the monitor will prompt for it to be entered. VNC passwords are only
  144: significant up to 8 letters. eg
  145: 
  146: @example
  147: (qemu) change vnc password
  148: Password: ********
  149: @end example
  150: 
  151: @end table
  152: ETEXI
  153: 
  154:     {
  155:         .name       = "screendump",
  156:         .args_type  = "filename:F",
  157:         .params     = "filename",
  158:         .help       = "save screen into PPM image 'filename'",
  159:         .user_print = monitor_user_noop,
  160:         .mhandler.cmd_new = do_screen_dump,
  161:     },
  162: 
  163: STEXI
  164: @item screendump @var{filename}
  165: @findex screendump
  166: Save screen into PPM image @var{filename}.
  167: ETEXI
  168: 
  169:     {
  170:         .name       = "logfile",
  171:         .args_type  = "filename:F",
  172:         .params     = "filename",
  173:         .help       = "output logs to 'filename'",
  174:         .mhandler.cmd = do_logfile,
  175:     },
  176: 
  177: STEXI
  178: @item logfile @var{filename}
  179: @findex logfile
  180: Output logs to @var{filename}.
  181: ETEXI
  182: 
  183: #ifdef CONFIG_SIMPLE_TRACE
  184:     {
  185:         .name       = "trace-event",
  186:         .args_type  = "name:s,option:b",
  187:         .params     = "name on|off",
  188:         .help       = "changes status of a specific trace event",
  189:         .mhandler.cmd = do_change_trace_event_state,
  190:     },
  191: 
  192: STEXI
  193: @item trace-event
  194: @findex trace-event
  195: changes status of a trace event
  196: ETEXI
  197: 
  198:     {
  199:         .name       = "trace-file",
  200:         .args_type  = "op:s?,arg:F?",
  201:         .params     = "on|off|flush|set [arg]",
  202:         .help       = "open, close, or flush trace file, or set a new file name",
  203:         .mhandler.cmd = do_trace_file,
  204:     },
  205: 
  206: STEXI
  207: @item trace-file on|off|flush
  208: @findex trace-file
  209: Open, close, or flush the trace file.  If no argument is given, the status of the trace file is displayed.
  210: ETEXI
  211: #endif
  212: 
  213:     {
  214:         .name       = "log",
  215:         .args_type  = "items:s",
  216:         .params     = "item1[,...]",
  217:         .help       = "activate logging of the specified items to '/tmp/qemu.log'",
  218:         .mhandler.cmd = do_log,
  219:     },
  220: 
  221: STEXI
  222: @item log @var{item1}[,...]
  223: @findex log
  224: Activate logging of the specified items to @file{/tmp/qemu.log}.
  225: ETEXI
  226: 
  227:     {
  228:         .name       = "savevm",
  229:         .args_type  = "name:s?",
  230:         .params     = "[tag|id]",
  231:         .help       = "save a VM snapshot. If no tag or id are provided, a new snapshot is created",
  232:         .mhandler.cmd = do_savevm,
  233:     },
  234: 
  235: STEXI
  236: @item savevm [@var{tag}|@var{id}]
  237: @findex savevm
  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: @findex loadvm
  255: Set the whole virtual machine to the snapshot identified by the tag
  256: @var{tag} or the unique snapshot ID @var{id}.
  257: ETEXI
  258: 
  259:     {
  260:         .name       = "delvm",
  261:         .args_type  = "name:s",
  262:         .params     = "tag|id",
  263:         .help       = "delete a VM snapshot from its tag or id",
  264:         .mhandler.cmd = do_delvm,
  265:     },
  266: 
  267: STEXI
  268: @item delvm @var{tag}|@var{id}
  269: @findex delvm
  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: @findex singlestep
  284: Run the emulation in single step mode.
  285: If called with option off, the emulation returns to normal mode.
  286: ETEXI
  287: 
  288:     {
  289:         .name       = "stop",
  290:         .args_type  = "",
  291:         .params     = "",
  292:         .help       = "stop emulation",
  293:         .user_print = monitor_user_noop,
  294:         .mhandler.cmd_new = do_stop,
  295:     },
  296: 
  297: STEXI
  298: @item stop
  299: @findex stop
  300: Stop emulation.
  301: ETEXI
  302: 
  303:     {
  304:         .name       = "c|cont",
  305:         .args_type  = "",
  306:         .params     = "",
  307:         .help       = "resume emulation",
  308:         .user_print = monitor_user_noop,
  309:         .mhandler.cmd_new = do_cont,
  310:     },
  311: 
  312: STEXI
  313: @item c or cont
  314: @findex cont
  315: Resume emulation.
  316: ETEXI
  317: 
  318:     {
  319:         .name       = "gdbserver",
  320:         .args_type  = "device:s?",
  321:         .params     = "[device]",
  322:         .help       = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
  323:         .mhandler.cmd = do_gdbserver,
  324:     },
  325: 
  326: STEXI
  327: @item gdbserver [@var{port}]
  328: @findex gdbserver
  329: Start gdbserver session (default @var{port}=1234)
  330: ETEXI
  331: 
  332:     {
  333:         .name       = "x",
  334:         .args_type  = "fmt:/,addr:l",
  335:         .params     = "/fmt addr",
  336:         .help       = "virtual memory dump starting at 'addr'",
  337:         .mhandler.cmd = do_memory_dump,
  338:     },
  339: 
  340: STEXI
  341: @item x/fmt @var{addr}
  342: @findex x
  343: Virtual memory dump starting at @var{addr}.
  344: ETEXI
  345: 
  346:     {
  347:         .name       = "xp",
  348:         .args_type  = "fmt:/,addr:l",
  349:         .params     = "/fmt addr",
  350:         .help       = "physical memory dump starting at 'addr'",
  351:         .mhandler.cmd = do_physical_memory_dump,
  352:     },
  353: 
  354: STEXI
  355: @item xp /@var{fmt} @var{addr}
  356: @findex xp
  357: Physical memory dump starting at @var{addr}.
  358: 
  359: @var{fmt} is a format which tells the command how to format the
  360: data. Its syntax is: @option{/@{count@}@{format@}@{size@}}
  361: 
  362: @table @var
  363: @item count
  364: is the number of items to be dumped.
  365: 
  366: @item format
  367: can be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
  368: c (char) or i (asm instruction).
  369: 
  370: @item size
  371: can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
  372: @code{h} or @code{w} can be specified with the @code{i} format to
  373: respectively select 16 or 32 bit code instruction size.
  374: 
  375: @end table
  376: 
  377: Examples:
  378: @itemize
  379: @item
  380: Dump 10 instructions at the current instruction pointer:
  381: @example
  382: (qemu) x/10i $eip
  383: 0x90107063:  ret
  384: 0x90107064:  sti
  385: 0x90107065:  lea    0x0(%esi,1),%esi
  386: 0x90107069:  lea    0x0(%edi,1),%edi
  387: 0x90107070:  ret
  388: 0x90107071:  jmp    0x90107080
  389: 0x90107073:  nop
  390: 0x90107074:  nop
  391: 0x90107075:  nop
  392: 0x90107076:  nop
  393: @end example
  394: 
  395: @item
  396: Dump 80 16 bit values at the start of the video memory.
  397: @smallexample
  398: (qemu) xp/80hx 0xb8000
  399: 0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
  400: 0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
  401: 0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
  402: 0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
  403: 0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
  404: 0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
  405: 0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
  406: 0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
  407: 0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
  408: 0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
  409: @end smallexample
  410: @end itemize
  411: ETEXI
  412: 
  413:     {
  414:         .name       = "p|print",
  415:         .args_type  = "fmt:/,val:l",
  416:         .params     = "/fmt expr",
  417:         .help       = "print expression value (use $reg for CPU register access)",
  418:         .mhandler.cmd = do_print,
  419:     },
  420: 
  421: STEXI
  422: @item p or print/@var{fmt} @var{expr}
  423: @findex print
  424: 
  425: Print expression value. Only the @var{format} part of @var{fmt} is
  426: used.
  427: ETEXI
  428: 
  429:     {
  430:         .name       = "i",
  431:         .args_type  = "fmt:/,addr:i,index:i.",
  432:         .params     = "/fmt addr",
  433:         .help       = "I/O port read",
  434:         .mhandler.cmd = do_ioport_read,
  435:     },
  436: 
  437: STEXI
  438: Read I/O port.
  439: ETEXI
  440: 
  441:     {
  442:         .name       = "o",
  443:         .args_type  = "fmt:/,addr:i,val:i",
  444:         .params     = "/fmt addr value",
  445:         .help       = "I/O port write",
  446:         .mhandler.cmd = do_ioport_write,
  447:     },
  448: 
  449: STEXI
  450: Write to I/O port.
  451: ETEXI
  452: 
  453:     {
  454:         .name       = "sendkey",
  455:         .args_type  = "string:s,hold_time:i?",
  456:         .params     = "keys [hold_ms]",
  457:         .help       = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
  458:         .mhandler.cmd = do_sendkey,
  459:     },
  460: 
  461: STEXI
  462: @item sendkey @var{keys}
  463: @findex sendkey
  464: 
  465: Send @var{keys} to the emulator. @var{keys} could be the name of the
  466: key or @code{#} followed by the raw value in either decimal or hexadecimal
  467: format. Use @code{-} to press several keys simultaneously. Example:
  468: @example
  469: sendkey ctrl-alt-f1
  470: @end example
  471: 
  472: This command is useful to send keys that your graphical user interface
  473: intercepts at low level, such as @code{ctrl-alt-f1} in X Window.
  474: ETEXI
  475: 
  476:     {
  477:         .name       = "system_reset",
  478:         .args_type  = "",
  479:         .params     = "",
  480:         .help       = "reset the system",
  481:         .user_print = monitor_user_noop,
  482:         .mhandler.cmd_new = do_system_reset,
  483:     },
  484: 
  485: STEXI
  486: @item system_reset
  487: @findex system_reset
  488: 
  489: Reset the system.
  490: ETEXI
  491: 
  492:     {
  493:         .name       = "system_powerdown",
  494:         .args_type  = "",
  495:         .params     = "",
  496:         .help       = "send system power down event",
  497:         .user_print = monitor_user_noop,
  498:         .mhandler.cmd_new = do_system_powerdown,
  499:     },
  500: 
  501: STEXI
  502: @item system_powerdown
  503: @findex system_powerdown
  504: 
  505: Power down the system (if supported).
  506: ETEXI
  507: 
  508:     {
  509:         .name       = "sum",
  510:         .args_type  = "start:i,size:i",
  511:         .params     = "addr size",
  512:         .help       = "compute the checksum of a memory region",
  513:         .mhandler.cmd = do_sum,
  514:     },
  515: 
  516: STEXI
  517: @item sum @var{addr} @var{size}
  518: @findex sum
  519: 
  520: Compute the checksum of a memory region.
  521: ETEXI
  522: 
  523:     {
  524:         .name       = "usb_add",
  525:         .args_type  = "devname:s",
  526:         .params     = "device",
  527:         .help       = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
  528:         .mhandler.cmd = do_usb_add,
  529:     },
  530: 
  531: STEXI
  532: @item usb_add @var{devname}
  533: @findex usb_add
  534: 
  535: Add the USB device @var{devname}.  For details of available devices see
  536: @ref{usb_devices}
  537: ETEXI
  538: 
  539:     {
  540:         .name       = "usb_del",
  541:         .args_type  = "devname:s",
  542:         .params     = "device",
  543:         .help       = "remove USB device 'bus.addr'",
  544:         .mhandler.cmd = do_usb_del,
  545:     },
  546: 
  547: STEXI
  548: @item usb_del @var{devname}
  549: @findex usb_del
  550: 
  551: Remove the USB device @var{devname} from the QEMU virtual USB
  552: hub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
  553: command @code{info usb} to see the devices you can remove.
  554: ETEXI
  555: 
  556:     {
  557:         .name       = "device_add",
  558:         .args_type  = "device:O",
  559:         .params     = "driver[,prop=value][,...]",
  560:         .help       = "add device, like -device on the command line",
  561:         .user_print = monitor_user_noop,
  562:         .mhandler.cmd_new = do_device_add,
  563:     },
  564: 
  565: STEXI
  566: @item device_add @var{config}
  567: @findex device_add
  568: 
  569: Add device.
  570: ETEXI
  571: 
  572:     {
  573:         .name       = "device_del",
  574:         .args_type  = "id:s",
  575:         .params     = "device",
  576:         .help       = "remove device",
  577:         .user_print = monitor_user_noop,
  578:         .mhandler.cmd_new = do_device_del,
  579:     },
  580: 
  581: STEXI
  582: @item device_del @var{id}
  583: @findex device_del
  584: 
  585: Remove device @var{id}.
  586: ETEXI
  587: 
  588:     {
  589:         .name       = "cpu",
  590:         .args_type  = "index:i",
  591:         .params     = "index",
  592:         .help       = "set the default CPU",
  593:         .user_print = monitor_user_noop,
  594:         .mhandler.cmd_new = do_cpu_set,
  595:     },
  596: 
  597: STEXI
  598: @item cpu @var{index}
  599: @findex cpu
  600: Set the default CPU.
  601: ETEXI
  602: 
  603:     {
  604:         .name       = "mouse_move",
  605:         .args_type  = "dx_str:s,dy_str:s,dz_str:s?",
  606:         .params     = "dx dy [dz]",
  607:         .help       = "send mouse move events",
  608:         .mhandler.cmd = do_mouse_move,
  609:     },
  610: 
  611: STEXI
  612: @item mouse_move @var{dx} @var{dy} [@var{dz}]
  613: @findex mouse_move
  614: Move the active mouse to the specified coordinates @var{dx} @var{dy}
  615: with optional scroll axis @var{dz}.
  616: ETEXI
  617: 
  618:     {
  619:         .name       = "mouse_button",
  620:         .args_type  = "button_state:i",
  621:         .params     = "state",
  622:         .help       = "change mouse button state (1=L, 2=M, 4=R)",
  623:         .mhandler.cmd = do_mouse_button,
  624:     },
  625: 
  626: STEXI
  627: @item mouse_button @var{val}
  628: @findex mouse_button
  629: Change the active mouse button state @var{val} (1=L, 2=M, 4=R).
  630: ETEXI
  631: 
  632:     {
  633:         .name       = "mouse_set",
  634:         .args_type  = "index:i",
  635:         .params     = "index",
  636:         .help       = "set which mouse device receives events",
  637:         .mhandler.cmd = do_mouse_set,
  638:     },
  639: 
  640: STEXI
  641: @item mouse_set @var{index}
  642: @findex mouse_set
  643: Set which mouse device receives events at given @var{index}, index
  644: can be obtained with
  645: @example
  646: info mice
  647: @end example
  648: ETEXI
  649: 
  650: #ifdef HAS_AUDIO
  651:     {
  652:         .name       = "wavcapture",
  653:         .args_type  = "path:F,freq:i?,bits:i?,nchannels:i?",
  654:         .params     = "path [frequency [bits [channels]]]",
  655:         .help       = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
  656:         .mhandler.cmd = do_wav_capture,
  657:     },
  658: #endif
  659: STEXI
  660: @item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
  661: @findex wavcapture
  662: Capture audio into @var{filename}. Using sample rate @var{frequency}
  663: bits per sample @var{bits} and number of channels @var{channels}.
  664: 
  665: Defaults:
  666: @itemize @minus
  667: @item Sample rate = 44100 Hz - CD quality
  668: @item Bits = 16
  669: @item Number of channels = 2 - Stereo
  670: @end itemize
  671: ETEXI
  672: 
  673: #ifdef HAS_AUDIO
  674:     {
  675:         .name       = "stopcapture",
  676:         .args_type  = "n:i",
  677:         .params     = "capture index",
  678:         .help       = "stop capture",
  679:         .mhandler.cmd = do_stop_capture,
  680:     },
  681: #endif
  682: STEXI
  683: @item stopcapture @var{index}
  684: @findex stopcapture
  685: Stop capture with a given @var{index}, index can be obtained with
  686: @example
  687: info capture
  688: @end example
  689: ETEXI
  690: 
  691:     {
  692:         .name       = "memsave",
  693:         .args_type  = "val:l,size:i,filename:s",
  694:         .params     = "addr size file",
  695:         .help       = "save to disk virtual memory dump starting at 'addr' of size 'size'",
  696:         .user_print = monitor_user_noop,
  697:         .mhandler.cmd_new = do_memory_save,
  698:     },
  699: 
  700: STEXI
  701: @item memsave @var{addr} @var{size} @var{file}
  702: @findex memsave
  703: save to disk virtual memory dump starting at @var{addr} of size @var{size}.
  704: ETEXI
  705: 
  706:     {
  707:         .name       = "pmemsave",
  708:         .args_type  = "val:l,size:i,filename:s",
  709:         .params     = "addr size file",
  710:         .help       = "save to disk physical memory dump starting at 'addr' of size 'size'",
  711:         .user_print = monitor_user_noop,
  712:         .mhandler.cmd_new = do_physical_memory_save,
  713:     },
  714: 
  715: STEXI
  716: @item pmemsave @var{addr} @var{size} @var{file}
  717: @findex pmemsave
  718: save to disk physical memory dump starting at @var{addr} of size @var{size}.
  719: ETEXI
  720: 
  721:     {
  722:         .name       = "boot_set",
  723:         .args_type  = "bootdevice:s",
  724:         .params     = "bootdevice",
  725:         .help       = "define new values for the boot device list",
  726:         .mhandler.cmd = do_boot_set,
  727:     },
  728: 
  729: STEXI
  730: @item boot_set @var{bootdevicelist}
  731: @findex boot_set
  732: 
  733: Define new values for the boot device list. Those values will override
  734: the values specified on the command line through the @code{-boot} option.
  735: 
  736: The values that can be specified here depend on the machine type, but are
  737: the same that can be specified in the @code{-boot} command line option.
  738: ETEXI
  739: 
  740: #if defined(TARGET_I386)
  741:     {
  742:         .name       = "nmi",
  743:         .args_type  = "cpu_index:i",
  744:         .params     = "cpu",
  745:         .help       = "inject an NMI on the given CPU",
  746:         .mhandler.cmd = do_inject_nmi,
  747:     },
  748: #endif
  749: STEXI
  750: @item nmi @var{cpu}
  751: @findex nmi
  752: Inject an NMI on the given CPU (x86 only).
  753: ETEXI
  754: 
  755:     {
  756:         .name       = "migrate",
  757:         .args_type  = "detach:-d,blk:-b,inc:-i,uri:s",
  758:         .params     = "[-d] [-b] [-i] uri",
  759:         .help       = "migrate to URI (using -d to not wait for completion)"
  760: 		      "\n\t\t\t -b for migration without shared storage with"
  761: 		      " full copy of disk\n\t\t\t -i for migration without "
  762: 		      "shared storage with incremental copy of disk "
  763: 		      "(base image shared between src and destination)",
  764:         .user_print = monitor_user_noop,	
  765: 	.mhandler.cmd_new = do_migrate,
  766:     },
  767: 
  768: 
  769: STEXI
  770: @item migrate [-d] [-b] [-i] @var{uri}
  771: @findex migrate
  772: Migrate to @var{uri} (using -d to not wait for completion).
  773: 	-b for migration with full copy of disk
  774: 	-i for migration with incremental copy of disk (base image is shared)
  775: ETEXI
  776: 
  777:     {
  778:         .name       = "migrate_cancel",
  779:         .args_type  = "",
  780:         .params     = "",
  781:         .help       = "cancel the current VM migration",
  782:         .user_print = monitor_user_noop,
  783:         .mhandler.cmd_new = do_migrate_cancel,
  784:     },
  785: 
  786: STEXI
  787: @item migrate_cancel
  788: @findex migrate_cancel
  789: Cancel the current VM migration.
  790: ETEXI
  791: 
  792:     {
  793:         .name       = "migrate_set_speed",
  794:         .args_type  = "value:o",
  795:         .params     = "value",
  796:         .help       = "set maximum speed (in bytes) for migrations. "
  797: 	"Defaults to MB if no size suffix is specified, ie. B/K/M/G/T",
  798:         .user_print = monitor_user_noop,
  799:         .mhandler.cmd_new = do_migrate_set_speed,
  800:     },
  801: 
  802: STEXI
  803: @item migrate_set_speed @var{value}
  804: @findex migrate_set_speed
  805: Set maximum speed to @var{value} (in bytes) for migrations.
  806: ETEXI
  807: 
  808:     {
  809:         .name       = "migrate_set_downtime",
  810:         .args_type  = "value:T",
  811:         .params     = "value",
  812:         .help       = "set maximum tolerated downtime (in seconds) for migrations",
  813:         .user_print = monitor_user_noop,
  814:         .mhandler.cmd_new = do_migrate_set_downtime,
  815:     },
  816: 
  817: STEXI
  818: @item migrate_set_downtime @var{second}
  819: @findex migrate_set_downtime
  820: Set maximum tolerated downtime (in seconds) for migration.
  821: ETEXI
  822: 
  823:     {
  824:         .name       = "snapshot_blkdev",
  825:         .args_type  = "device:B,snapshot_file:s?,format:s?",
  826:         .params     = "device [new-image-file] [format]",
  827:         .help       = "initiates a live snapshot\n\t\t\t"
  828:                       "of device. If a new image file is specified, the\n\t\t\t"
  829:                       "new image file will become the new root image.\n\t\t\t"
  830:                       "If format is specified, the snapshot file will\n\t\t\t"
  831:                       "be created in that format. Otherwise the\n\t\t\t"
  832:                       "snapshot will be internal! (currently unsupported)",
  833:         .mhandler.cmd_new = do_snapshot_blkdev,
  834:     },
  835: 
  836: STEXI
  837: @item client_migrate_info @var{protocol} @var{hostname} @var{port} @var{tls-port} @var{cert-subject}
  838: @findex client_migrate_info
  839: Set the spice/vnc connection info for the migration target.  The spice/vnc
  840: server will ask the spice/vnc client to automatically reconnect using the
  841: new parameters (if specified) once the vm migration finished successfully.
  842: ETEXI
  843: 
  844:     {
  845:         .name       = "client_migrate_info",
  846:         .args_type  = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
  847:         .params     = "protocol hostname port tls-port cert-subject",
  848:         .help       = "send migration info to spice/vnc client",
  849:         .user_print = monitor_user_noop,
  850:         .mhandler.cmd_new = client_migrate_info,
  851:     },
  852: 
  853: STEXI
  854: @item snapshot_blkdev
  855: @findex snapshot_blkdev
  856: Snapshot device, using snapshot file as target if provided
  857: ETEXI
  858: 
  859: #if defined(TARGET_I386)
  860:     {
  861:         .name       = "drive_add",
  862:         .args_type  = "pci_addr:s,opts:s",
  863:         .params     = "[[<domain>:]<bus>:]<slot>\n"
  864:                       "[file=file][,if=type][,bus=n]\n"
  865:                       "[,unit=m][,media=d][index=i]\n"
  866:                       "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
  867:                       "[snapshot=on|off][,cache=on|off]",
  868:         .help       = "add drive to PCI storage controller",
  869:         .mhandler.cmd = drive_hot_add,
  870:     },
  871: #endif
  872: 
  873: STEXI
  874: @item drive_add
  875: @findex drive_add
  876: Add drive to PCI storage controller.
  877: ETEXI
  878: 
  879: #if defined(TARGET_I386)
  880:     {
  881:         .name       = "pci_add",
  882:         .args_type  = "pci_addr:s,type:s,opts:s?",
  883:         .params     = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
  884:         .help       = "hot-add PCI device",
  885:         .mhandler.cmd = pci_device_hot_add,
  886:     },
  887: #endif
  888: 
  889: STEXI
  890: @item pci_add
  891: @findex pci_add
  892: Hot-add PCI device.
  893: ETEXI
  894: 
  895: #if defined(TARGET_I386)
  896:     {
  897:         .name       = "pci_del",
  898:         .args_type  = "pci_addr:s",
  899:         .params     = "[[<domain>:]<bus>:]<slot>",
  900:         .help       = "hot remove PCI device",
  901:         .mhandler.cmd = do_pci_device_hot_remove,
  902:     },
  903: #endif
  904: 
  905: STEXI
  906: @item pci_del
  907: @findex pci_del
  908: Hot remove PCI device.
  909: ETEXI
  910: 
  911:     {
  912:         .name       = "pcie_aer_inject_error",
  913:         .args_type  = "advisory_non_fatal:-a,correctable:-c,"
  914: 	              "id:s,error_status:s,"
  915: 	              "header0:i?,header1:i?,header2:i?,header3:i?,"
  916: 	              "prefix0:i?,prefix1:i?,prefix2:i?,prefix3:i?",
  917:         .params     = "[-a] [-c] id "
  918:                       "<error_status> [<tlp header> [<tlp header prefix>]]",
  919:         .help       = "inject pcie aer error\n\t\t\t"
  920: 	              " -a for advisory non fatal error\n\t\t\t"
  921: 	              " -c for correctable error\n\t\t\t"
  922:                       "<id> = qdev device id\n\t\t\t"
  923:                       "<error_status> = error string or 32bit\n\t\t\t"
  924:                       "<tlb header> = 32bit x 4\n\t\t\t"
  925:                       "<tlb header prefix> = 32bit x 4",
  926:         .user_print  = pcie_aer_inject_error_print,
  927:         .mhandler.cmd_new = do_pcie_aer_inejct_error,
  928:     },
  929: 
  930: STEXI
  931: @item pcie_aer_inject_error
  932: @findex pcie_aer_inject_error
  933: Inject PCIe AER error
  934: ETEXI
  935: 
  936:     {
  937:         .name       = "host_net_add",
  938:         .args_type  = "device:s,opts:s?",
  939:         .params     = "tap|user|socket|vde|dump [options]",
  940:         .help       = "add host VLAN client",
  941:         .mhandler.cmd = net_host_device_add,
  942:     },
  943: 
  944: STEXI
  945: @item host_net_add
  946: @findex host_net_add
  947: Add host VLAN client.
  948: ETEXI
  949: 
  950:     {
  951:         .name       = "host_net_remove",
  952:         .args_type  = "vlan_id:i,device:s",
  953:         .params     = "vlan_id name",
  954:         .help       = "remove host VLAN client",
  955:         .mhandler.cmd = net_host_device_remove,
  956:     },
  957: 
  958: STEXI
  959: @item host_net_remove
  960: @findex host_net_remove
  961: Remove host VLAN client.
  962: ETEXI
  963: 
  964:     {
  965:         .name       = "netdev_add",
  966:         .args_type  = "netdev:O",
  967:         .params     = "[user|tap|socket],id=str[,prop=value][,...]",
  968:         .help       = "add host network device",
  969:         .user_print = monitor_user_noop,
  970:         .mhandler.cmd_new = do_netdev_add,
  971:     },
  972: 
  973: STEXI
  974: @item netdev_add
  975: @findex netdev_add
  976: Add host network device.
  977: ETEXI
  978: 
  979:     {
  980:         .name       = "netdev_del",
  981:         .args_type  = "id:s",
  982:         .params     = "id",
  983:         .help       = "remove host network device",
  984:         .user_print = monitor_user_noop,
  985:         .mhandler.cmd_new = do_netdev_del,
  986:     },
  987: 
  988: STEXI
  989: @item netdev_del
  990: @findex netdev_del
  991: Remove host network device.
  992: ETEXI
  993: 
  994: #ifdef CONFIG_SLIRP
  995:     {
  996:         .name       = "hostfwd_add",
  997:         .args_type  = "arg1:s,arg2:s?,arg3:s?",
  998:         .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
  999:         .help       = "redirect TCP or UDP connections from host to guest (requires -net user)",
 1000:         .mhandler.cmd = net_slirp_hostfwd_add,
 1001:     },
 1002: #endif
 1003: STEXI
 1004: @item hostfwd_add
 1005: @findex hostfwd_add
 1006: Redirect TCP or UDP connections from host to guest (requires -net user).
 1007: ETEXI
 1008: 
 1009: #ifdef CONFIG_SLIRP
 1010:     {
 1011:         .name       = "hostfwd_remove",
 1012:         .args_type  = "arg1:s,arg2:s?,arg3:s?",
 1013:         .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
 1014:         .help       = "remove host-to-guest TCP or UDP redirection",
 1015:         .mhandler.cmd = net_slirp_hostfwd_remove,
 1016:     },
 1017: 
 1018: #endif
 1019: STEXI
 1020: @item hostfwd_remove
 1021: @findex hostfwd_remove
 1022: Remove host-to-guest TCP or UDP redirection.
 1023: ETEXI
 1024: 
 1025:     {
 1026:         .name       = "balloon",
 1027:         .args_type  = "value:M",
 1028:         .params     = "target",
 1029:         .help       = "request VM to change its memory allocation (in MB)",
 1030:         .user_print = monitor_user_noop,
 1031:         .mhandler.cmd_async = do_balloon,
 1032:         .flags      = MONITOR_CMD_ASYNC,
 1033:     },
 1034: 
 1035: STEXI
 1036: @item balloon @var{value}
 1037: @findex balloon
 1038: Request VM to change its memory allocation to @var{value} (in MB).
 1039: ETEXI
 1040: 
 1041:     {
 1042:         .name       = "set_link",
 1043:         .args_type  = "name:s,up:b",
 1044:         .params     = "name on|off",
 1045:         .help       = "change the link status of a network adapter",
 1046:         .user_print = monitor_user_noop,
 1047:         .mhandler.cmd_new = do_set_link,
 1048:     },
 1049: 
 1050: STEXI
 1051: @item set_link @var{name} [on|off]
 1052: @findex set_link
 1053: Switch link @var{name} on (i.e. up) or off (i.e. down).
 1054: ETEXI
 1055: 
 1056:     {
 1057:         .name       = "watchdog_action",
 1058:         .args_type  = "action:s",
 1059:         .params     = "[reset|shutdown|poweroff|pause|debug|none]",
 1060:         .help       = "change watchdog action",
 1061:         .mhandler.cmd = do_watchdog_action,
 1062:     },
 1063: 
 1064: STEXI
 1065: @item watchdog_action
 1066: @findex watchdog_action
 1067: Change watchdog action.
 1068: ETEXI
 1069: 
 1070:     {
 1071:         .name       = "acl_show",
 1072:         .args_type  = "aclname:s",
 1073:         .params     = "aclname",
 1074:         .help       = "list rules in the access control list",
 1075:         .mhandler.cmd = do_acl_show,
 1076:     },
 1077: 
 1078: STEXI
 1079: @item acl_show @var{aclname}
 1080: @findex acl_show
 1081: List all the matching rules in the access control list, and the default
 1082: policy. There are currently two named access control lists,
 1083: @var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
 1084: certificate distinguished name, and SASL username respectively.
 1085: ETEXI
 1086: 
 1087:     {
 1088:         .name       = "acl_policy",
 1089:         .args_type  = "aclname:s,policy:s",
 1090:         .params     = "aclname allow|deny",
 1091:         .help       = "set default access control list policy",
 1092:         .mhandler.cmd = do_acl_policy,
 1093:     },
 1094: 
 1095: STEXI
 1096: @item acl_policy @var{aclname} @code{allow|deny}
 1097: @findex acl_policy
 1098: Set the default access control list policy, used in the event that
 1099: none of the explicit rules match. The default policy at startup is
 1100: always @code{deny}.
 1101: ETEXI
 1102: 
 1103:     {
 1104:         .name       = "acl_add",
 1105:         .args_type  = "aclname:s,match:s,policy:s,index:i?",
 1106:         .params     = "aclname match allow|deny [index]",
 1107:         .help       = "add a match rule to the access control list",
 1108:         .mhandler.cmd = do_acl_add,
 1109:     },
 1110: 
 1111: STEXI
 1112: @item acl_add @var{aclname} @var{match} @code{allow|deny} [@var{index}]
 1113: @findex acl_add
 1114: Add a match rule to the access control list, allowing or denying access.
 1115: The match will normally be an exact username or x509 distinguished name,
 1116: but can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
 1117: allow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
 1118: normally be appended to the end of the ACL, but can be inserted
 1119: earlier in the list if the optional @var{index} parameter is supplied.
 1120: ETEXI
 1121: 
 1122:     {
 1123:         .name       = "acl_remove",
 1124:         .args_type  = "aclname:s,match:s",
 1125:         .params     = "aclname match",
 1126:         .help       = "remove a match rule from the access control list",
 1127:         .mhandler.cmd = do_acl_remove,
 1128:     },
 1129: 
 1130: STEXI
 1131: @item acl_remove @var{aclname} @var{match}
 1132: @findex acl_remove
 1133: Remove the specified match rule from the access control list.
 1134: ETEXI
 1135: 
 1136:     {
 1137:         .name       = "acl_reset",
 1138:         .args_type  = "aclname:s",
 1139:         .params     = "aclname",
 1140:         .help       = "reset the access control list",
 1141:         .mhandler.cmd = do_acl_reset,
 1142:     },
 1143: 
 1144: STEXI
 1145: @item acl_reset @var{aclname}
 1146: @findex acl_reset
 1147: Remove all matches from the access control list, and set the default
 1148: policy back to @code{deny}.
 1149: ETEXI
 1150: 
 1151: #if defined(TARGET_I386)
 1152: 
 1153:     {
 1154:         .name       = "mce",
 1155:         .args_type  = "broadcast:-b,cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
 1156:         .params     = "[-b] cpu bank status mcgstatus addr misc",
 1157:         .help       = "inject a MCE on the given CPU [and broadcast to other CPUs with -b option]",
 1158:         .mhandler.cmd = do_inject_mce,
 1159:     },
 1160: 
 1161: #endif
 1162: STEXI
 1163: @item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
 1164: @findex mce (x86)
 1165: Inject an MCE on the given CPU (x86 only).
 1166: ETEXI
 1167: 
 1168:     {
 1169:         .name       = "getfd",
 1170:         .args_type  = "fdname:s",
 1171:         .params     = "getfd name",
 1172:         .help       = "receive a file descriptor via SCM rights and assign it a name",
 1173:         .user_print = monitor_user_noop,
 1174:         .mhandler.cmd_new = do_getfd,
 1175:     },
 1176: 
 1177: STEXI
 1178: @item getfd @var{fdname}
 1179: @findex getfd
 1180: If a file descriptor is passed alongside this command using the SCM_RIGHTS
 1181: mechanism on unix sockets, it is stored using the name @var{fdname} for
 1182: later use by other monitor commands.
 1183: ETEXI
 1184: 
 1185:     {
 1186:         .name       = "closefd",
 1187:         .args_type  = "fdname:s",
 1188:         .params     = "closefd name",
 1189:         .help       = "close a file descriptor previously passed via SCM rights",
 1190:         .user_print = monitor_user_noop,
 1191:         .mhandler.cmd_new = do_closefd,
 1192:     },
 1193: 
 1194: STEXI
 1195: @item closefd @var{fdname}
 1196: @findex closefd
 1197: Close the file descriptor previously assigned to @var{fdname} using the
 1198: @code{getfd} command. This is only needed if the file descriptor was never
 1199: used by another monitor command.
 1200: ETEXI
 1201: 
 1202:     {
 1203:         .name       = "block_passwd",
 1204:         .args_type  = "device:B,password:s",
 1205:         .params     = "block_passwd device password",
 1206:         .help       = "set the password of encrypted block devices",
 1207:         .user_print = monitor_user_noop,
 1208:         .mhandler.cmd_new = do_block_set_passwd,
 1209:     },
 1210: 
 1211: STEXI
 1212: @item block_passwd @var{device} @var{password}
 1213: @findex block_passwd
 1214: Set the encrypted device @var{device} password to @var{password}
 1215: ETEXI
 1216: 
 1217:     {
 1218:         .name       = "set_password",
 1219:         .args_type  = "protocol:s,password:s,connected:s?",
 1220:         .params     = "protocol password action-if-connected",
 1221:         .help       = "set spice/vnc password",
 1222:         .user_print = monitor_user_noop,
 1223:         .mhandler.cmd_new = set_password,
 1224:     },
 1225: 
 1226: STEXI
 1227: @item set_password [ vnc | spice ] password [ action-if-connected ]
 1228: @findex set_password
 1229: 
 1230: Change spice/vnc password.  Use zero to make the password stay valid
 1231: forever.  @var{action-if-connected} specifies what should happen in
 1232: case a connection is established: @var{fail} makes the password change
 1233: fail.  @var{disconnect} changes the password and disconnects the
 1234: client.  @var{keep} changes the password and keeps the connection up.
 1235: @var{keep} is the default.
 1236: ETEXI
 1237: 
 1238:     {
 1239:         .name       = "expire_password",
 1240:         .args_type  = "protocol:s,time:s",
 1241:         .params     = "protocol time",
 1242:         .help       = "set spice/vnc password expire-time",
 1243:         .user_print = monitor_user_noop,
 1244:         .mhandler.cmd_new = expire_password,
 1245:     },
 1246: 
 1247: STEXI
 1248: @item expire_password [ vnc | spice ] expire-time
 1249: @findex expire_password
 1250: 
 1251: Specify when a password for spice/vnc becomes
 1252: invalid. @var{expire-time} accepts:
 1253: 
 1254: @table @var
 1255: @item now
 1256: Invalidate password instantly.
 1257: 
 1258: @item never
 1259: Password stays valid forever.
 1260: 
 1261: @item +nsec
 1262: Password stays valid for @var{nsec} seconds starting now.
 1263: 
 1264: @item nsec
 1265: Password is invalidated at the given time.  @var{nsec} are the seconds
 1266: passed since 1970, i.e. unix epoch.
 1267: 
 1268: @end table
 1269: ETEXI
 1270: 
 1271:     {
 1272:         .name       = "info",
 1273:         .args_type  = "item:s?",
 1274:         .params     = "[subcommand]",
 1275:         .help       = "show various information about the system state",
 1276:         .mhandler.cmd = do_info,
 1277:     },
 1278: 
 1279: STEXI
 1280: @item info @var{subcommand}
 1281: @findex info
 1282: Show various information about the system state.
 1283: 
 1284: @table @option
 1285: @item info version
 1286: show the version of QEMU
 1287: @item info network
 1288: show the various VLANs and the associated devices
 1289: @item info chardev
 1290: show the character devices
 1291: @item info block
 1292: show the block devices
 1293: @item info blockstats
 1294: show block device statistics
 1295: @item info registers
 1296: show the cpu registers
 1297: @item info cpus
 1298: show infos for each CPU
 1299: @item info history
 1300: show the command line history
 1301: @item info irq
 1302: show the interrupts statistics (if available)
 1303: @item info pic
 1304: show i8259 (PIC) state
 1305: @item info pci
 1306: show emulated PCI device info
 1307: @item info tlb
 1308: show virtual to physical memory mappings (i386, SH4 and SPARC only)
 1309: @item info mem
 1310: show the active virtual memory mappings (i386 only)
 1311: @item info jit
 1312: show dynamic compiler info
 1313: @item info kvm
 1314: show KVM information
 1315: @item info numa
 1316: show NUMA information
 1317: @item info kvm
 1318: show KVM information
 1319: @item info usb
 1320: show USB devices plugged on the virtual USB hub
 1321: @item info usbhost
 1322: show all USB host devices
 1323: @item info profile
 1324: show profiling information
 1325: @item info capture
 1326: show information about active capturing
 1327: @item info snapshots
 1328: show list of VM snapshots
 1329: @item info status
 1330: show the current VM status (running|paused)
 1331: @item info pcmcia
 1332: show guest PCMCIA status
 1333: @item info mice
 1334: show which guest mouse is receiving events
 1335: @item info vnc
 1336: show the vnc server status
 1337: @item info name
 1338: show the current VM name
 1339: @item info uuid
 1340: show the current VM UUID
 1341: @item info cpustats
 1342: show CPU statistics
 1343: @item info usernet
 1344: show user network stack connection states
 1345: @item info migrate
 1346: show migration status
 1347: @item info balloon
 1348: show balloon information
 1349: @item info qtree
 1350: show device tree
 1351: @item info qdm
 1352: show qdev device model list
 1353: @item info roms
 1354: show roms
 1355: @end table
 1356: ETEXI
 1357: 
 1358: #ifdef CONFIG_SIMPLE_TRACE
 1359: STEXI
 1360: @item info trace
 1361: show contents of trace buffer
 1362: @item info trace-events
 1363: show available trace events and their state
 1364: ETEXI
 1365: #endif
 1366: 
 1367: STEXI
 1368: @end table
 1369: ETEXI

unix.superglobalmegacorp.com