File:  [Qemu by Fabrice Bellard] / qemu / hmp-commands.hx
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 18:56:43 2018 UTC (3 years, 1 month ago) by root
Branches: qemu, MAIN
CVS tags: qemu1000, qemu0151, HEAD
qemu 0.15.1

    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  = "",
  744:         .params     = "",
  745:         .help       = "inject an NMI on all guest's CPUs",
  746:         .user_print = monitor_user_noop,
  747:         .mhandler.cmd_new = do_inject_nmi,
  748:     },
  749: #endif
  750: STEXI
  751: @item nmi @var{cpu}
  752: @findex nmi
  753: Inject an NMI on the given CPU (x86 only).
  754: ETEXI
  755: 
  756:     {
  757:         .name       = "migrate",
  758:         .args_type  = "detach:-d,blk:-b,inc:-i,uri:s",
  759:         .params     = "[-d] [-b] [-i] uri",
  760:         .help       = "migrate to URI (using -d to not wait for completion)"
  761: 		      "\n\t\t\t -b for migration without shared storage with"
  762: 		      " full copy of disk\n\t\t\t -i for migration without "
  763: 		      "shared storage with incremental copy of disk "
  764: 		      "(base image shared between src and destination)",
  765:         .user_print = monitor_user_noop,	
  766: 	.mhandler.cmd_new = do_migrate,
  767:     },
  768: 
  769: 
  770: STEXI
  771: @item migrate [-d] [-b] [-i] @var{uri}
  772: @findex migrate
  773: Migrate to @var{uri} (using -d to not wait for completion).
  774: 	-b for migration with full copy of disk
  775: 	-i for migration with incremental copy of disk (base image is shared)
  776: ETEXI
  777: 
  778:     {
  779:         .name       = "migrate_cancel",
  780:         .args_type  = "",
  781:         .params     = "",
  782:         .help       = "cancel the current VM migration",
  783:         .user_print = monitor_user_noop,
  784:         .mhandler.cmd_new = do_migrate_cancel,
  785:     },
  786: 
  787: STEXI
  788: @item migrate_cancel
  789: @findex migrate_cancel
  790: Cancel the current VM migration.
  791: ETEXI
  792: 
  793:     {
  794:         .name       = "migrate_set_speed",
  795:         .args_type  = "value:o",
  796:         .params     = "value",
  797:         .help       = "set maximum speed (in bytes) for migrations. "
  798: 	"Defaults to MB if no size suffix is specified, ie. B/K/M/G/T",
  799:         .user_print = monitor_user_noop,
  800:         .mhandler.cmd_new = do_migrate_set_speed,
  801:     },
  802: 
  803: STEXI
  804: @item migrate_set_speed @var{value}
  805: @findex migrate_set_speed
  806: Set maximum speed to @var{value} (in bytes) for migrations.
  807: ETEXI
  808: 
  809:     {
  810:         .name       = "migrate_set_downtime",
  811:         .args_type  = "value:T",
  812:         .params     = "value",
  813:         .help       = "set maximum tolerated downtime (in seconds) for migrations",
  814:         .user_print = monitor_user_noop,
  815:         .mhandler.cmd_new = do_migrate_set_downtime,
  816:     },
  817: 
  818: STEXI
  819: @item migrate_set_downtime @var{second}
  820: @findex migrate_set_downtime
  821: Set maximum tolerated downtime (in seconds) for migration.
  822: ETEXI
  823: 
  824:     {
  825:         .name       = "client_migrate_info",
  826:         .args_type  = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
  827:         .params     = "protocol hostname port tls-port cert-subject",
  828:         .help       = "send migration info to spice/vnc client",
  829:         .user_print = monitor_user_noop,
  830:         .mhandler.cmd_new = client_migrate_info,
  831:     },
  832: 
  833: STEXI
  834: @item client_migrate_info @var{protocol} @var{hostname} @var{port} @var{tls-port} @var{cert-subject}
  835: @findex client_migrate_info
  836: Set the spice/vnc connection info for the migration target.  The spice/vnc
  837: server will ask the spice/vnc client to automatically reconnect using the
  838: new parameters (if specified) once the vm migration finished successfully.
  839: ETEXI
  840: 
  841:     {
  842:         .name       = "snapshot_blkdev",
  843:         .args_type  = "device:B,snapshot-file:s?,format:s?",
  844:         .params     = "device [new-image-file] [format]",
  845:         .help       = "initiates a live snapshot\n\t\t\t"
  846:                       "of device. If a new image file is specified, the\n\t\t\t"
  847:                       "new image file will become the new root image.\n\t\t\t"
  848:                       "If format is specified, the snapshot file will\n\t\t\t"
  849:                       "be created in that format. Otherwise the\n\t\t\t"
  850:                       "snapshot will be internal! (currently unsupported)",
  851:         .mhandler.cmd_new = do_snapshot_blkdev,
  852:     },
  853: 
  854: STEXI
  855: @item snapshot_blkdev
  856: @findex snapshot_blkdev
  857: Snapshot device, using snapshot file as target if provided
  858: ETEXI
  859: 
  860: #if defined(TARGET_I386)
  861:     {
  862:         .name       = "drive_add",
  863:         .args_type  = "pci_addr:s,opts:s",
  864:         .params     = "[[<domain>:]<bus>:]<slot>\n"
  865:                       "[file=file][,if=type][,bus=n]\n"
  866:                       "[,unit=m][,media=d][index=i]\n"
  867:                       "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
  868:                       "[snapshot=on|off][,cache=on|off]",
  869:         .help       = "add drive to PCI storage controller",
  870:         .mhandler.cmd = drive_hot_add,
  871:     },
  872: #endif
  873: 
  874: STEXI
  875: @item drive_add
  876: @findex drive_add
  877: Add drive to PCI storage controller.
  878: ETEXI
  879: 
  880: #if defined(TARGET_I386)
  881:     {
  882:         .name       = "pci_add",
  883:         .args_type  = "pci_addr:s,type:s,opts:s?",
  884:         .params     = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
  885:         .help       = "hot-add PCI device",
  886:         .mhandler.cmd = pci_device_hot_add,
  887:     },
  888: #endif
  889: 
  890: STEXI
  891: @item pci_add
  892: @findex pci_add
  893: Hot-add PCI device.
  894: ETEXI
  895: 
  896: #if defined(TARGET_I386)
  897:     {
  898:         .name       = "pci_del",
  899:         .args_type  = "pci_addr:s",
  900:         .params     = "[[<domain>:]<bus>:]<slot>",
  901:         .help       = "hot remove PCI device",
  902:         .mhandler.cmd = do_pci_device_hot_remove,
  903:     },
  904: #endif
  905: 
  906: STEXI
  907: @item pci_del
  908: @findex pci_del
  909: Hot remove PCI device.
  910: ETEXI
  911: 
  912:     {
  913:         .name       = "pcie_aer_inject_error",
  914:         .args_type  = "advisory_non_fatal:-a,correctable:-c,"
  915: 	              "id:s,error_status:s,"
  916: 	              "header0:i?,header1:i?,header2:i?,header3:i?,"
  917: 	              "prefix0:i?,prefix1:i?,prefix2:i?,prefix3:i?",
  918:         .params     = "[-a] [-c] id "
  919:                       "<error_status> [<tlp header> [<tlp header prefix>]]",
  920:         .help       = "inject pcie aer error\n\t\t\t"
  921: 	              " -a for advisory non fatal error\n\t\t\t"
  922: 	              " -c for correctable error\n\t\t\t"
  923:                       "<id> = qdev device id\n\t\t\t"
  924:                       "<error_status> = error string or 32bit\n\t\t\t"
  925:                       "<tlb header> = 32bit x 4\n\t\t\t"
  926:                       "<tlb header prefix> = 32bit x 4",
  927:         .user_print  = pcie_aer_inject_error_print,
  928:         .mhandler.cmd_new = do_pcie_aer_inejct_error,
  929:     },
  930: 
  931: STEXI
  932: @item pcie_aer_inject_error
  933: @findex pcie_aer_inject_error
  934: Inject PCIe AER error
  935: ETEXI
  936: 
  937:     {
  938:         .name       = "host_net_add",
  939:         .args_type  = "device:s,opts:s?",
  940:         .params     = "tap|user|socket|vde|dump [options]",
  941:         .help       = "add host VLAN client",
  942:         .mhandler.cmd = net_host_device_add,
  943:     },
  944: 
  945: STEXI
  946: @item host_net_add
  947: @findex host_net_add
  948: Add host VLAN client.
  949: ETEXI
  950: 
  951:     {
  952:         .name       = "host_net_remove",
  953:         .args_type  = "vlan_id:i,device:s",
  954:         .params     = "vlan_id name",
  955:         .help       = "remove host VLAN client",
  956:         .mhandler.cmd = net_host_device_remove,
  957:     },
  958: 
  959: STEXI
  960: @item host_net_remove
  961: @findex host_net_remove
  962: Remove host VLAN client.
  963: ETEXI
  964: 
  965:     {
  966:         .name       = "netdev_add",
  967:         .args_type  = "netdev:O",
  968:         .params     = "[user|tap|socket],id=str[,prop=value][,...]",
  969:         .help       = "add host network device",
  970:         .user_print = monitor_user_noop,
  971:         .mhandler.cmd_new = do_netdev_add,
  972:     },
  973: 
  974: STEXI
  975: @item netdev_add
  976: @findex netdev_add
  977: Add host network device.
  978: ETEXI
  979: 
  980:     {
  981:         .name       = "netdev_del",
  982:         .args_type  = "id:s",
  983:         .params     = "id",
  984:         .help       = "remove host network device",
  985:         .user_print = monitor_user_noop,
  986:         .mhandler.cmd_new = do_netdev_del,
  987:     },
  988: 
  989: STEXI
  990: @item netdev_del
  991: @findex netdev_del
  992: Remove host network device.
  993: ETEXI
  994: 
  995: #ifdef CONFIG_SLIRP
  996:     {
  997:         .name       = "hostfwd_add",
  998:         .args_type  = "arg1:s,arg2:s?,arg3:s?",
  999:         .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
 1000:         .help       = "redirect TCP or UDP connections from host to guest (requires -net user)",
 1001:         .mhandler.cmd = net_slirp_hostfwd_add,
 1002:     },
 1003: #endif
 1004: STEXI
 1005: @item hostfwd_add
 1006: @findex hostfwd_add
 1007: Redirect TCP or UDP connections from host to guest (requires -net user).
 1008: ETEXI
 1009: 
 1010: #ifdef CONFIG_SLIRP
 1011:     {
 1012:         .name       = "hostfwd_remove",
 1013:         .args_type  = "arg1:s,arg2:s?,arg3:s?",
 1014:         .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
 1015:         .help       = "remove host-to-guest TCP or UDP redirection",
 1016:         .mhandler.cmd = net_slirp_hostfwd_remove,
 1017:     },
 1018: 
 1019: #endif
 1020: STEXI
 1021: @item hostfwd_remove
 1022: @findex hostfwd_remove
 1023: Remove host-to-guest TCP or UDP redirection.
 1024: ETEXI
 1025: 
 1026:     {
 1027:         .name       = "balloon",
 1028:         .args_type  = "value:M",
 1029:         .params     = "target",
 1030:         .help       = "request VM to change its memory allocation (in MB)",
 1031:         .user_print = monitor_user_noop,
 1032:         .mhandler.cmd_async = do_balloon,
 1033:         .flags      = MONITOR_CMD_ASYNC,
 1034:     },
 1035: 
 1036: STEXI
 1037: @item balloon @var{value}
 1038: @findex balloon
 1039: Request VM to change its memory allocation to @var{value} (in MB).
 1040: ETEXI
 1041: 
 1042:     {
 1043:         .name       = "set_link",
 1044:         .args_type  = "name:s,up:b",
 1045:         .params     = "name on|off",
 1046:         .help       = "change the link status of a network adapter",
 1047:         .user_print = monitor_user_noop,
 1048:         .mhandler.cmd_new = do_set_link,
 1049:     },
 1050: 
 1051: STEXI
 1052: @item set_link @var{name} [on|off]
 1053: @findex set_link
 1054: Switch link @var{name} on (i.e. up) or off (i.e. down).
 1055: ETEXI
 1056: 
 1057:     {
 1058:         .name       = "watchdog_action",
 1059:         .args_type  = "action:s",
 1060:         .params     = "[reset|shutdown|poweroff|pause|debug|none]",
 1061:         .help       = "change watchdog action",
 1062:         .mhandler.cmd = do_watchdog_action,
 1063:     },
 1064: 
 1065: STEXI
 1066: @item watchdog_action
 1067: @findex watchdog_action
 1068: Change watchdog action.
 1069: ETEXI
 1070: 
 1071:     {
 1072:         .name       = "acl_show",
 1073:         .args_type  = "aclname:s",
 1074:         .params     = "aclname",
 1075:         .help       = "list rules in the access control list",
 1076:         .mhandler.cmd = do_acl_show,
 1077:     },
 1078: 
 1079: STEXI
 1080: @item acl_show @var{aclname}
 1081: @findex acl_show
 1082: List all the matching rules in the access control list, and the default
 1083: policy. There are currently two named access control lists,
 1084: @var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
 1085: certificate distinguished name, and SASL username respectively.
 1086: ETEXI
 1087: 
 1088:     {
 1089:         .name       = "acl_policy",
 1090:         .args_type  = "aclname:s,policy:s",
 1091:         .params     = "aclname allow|deny",
 1092:         .help       = "set default access control list policy",
 1093:         .mhandler.cmd = do_acl_policy,
 1094:     },
 1095: 
 1096: STEXI
 1097: @item acl_policy @var{aclname} @code{allow|deny}
 1098: @findex acl_policy
 1099: Set the default access control list policy, used in the event that
 1100: none of the explicit rules match. The default policy at startup is
 1101: always @code{deny}.
 1102: ETEXI
 1103: 
 1104:     {
 1105:         .name       = "acl_add",
 1106:         .args_type  = "aclname:s,match:s,policy:s,index:i?",
 1107:         .params     = "aclname match allow|deny [index]",
 1108:         .help       = "add a match rule to the access control list",
 1109:         .mhandler.cmd = do_acl_add,
 1110:     },
 1111: 
 1112: STEXI
 1113: @item acl_add @var{aclname} @var{match} @code{allow|deny} [@var{index}]
 1114: @findex acl_add
 1115: Add a match rule to the access control list, allowing or denying access.
 1116: The match will normally be an exact username or x509 distinguished name,
 1117: but can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
 1118: allow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
 1119: normally be appended to the end of the ACL, but can be inserted
 1120: earlier in the list if the optional @var{index} parameter is supplied.
 1121: ETEXI
 1122: 
 1123:     {
 1124:         .name       = "acl_remove",
 1125:         .args_type  = "aclname:s,match:s",
 1126:         .params     = "aclname match",
 1127:         .help       = "remove a match rule from the access control list",
 1128:         .mhandler.cmd = do_acl_remove,
 1129:     },
 1130: 
 1131: STEXI
 1132: @item acl_remove @var{aclname} @var{match}
 1133: @findex acl_remove
 1134: Remove the specified match rule from the access control list.
 1135: ETEXI
 1136: 
 1137:     {
 1138:         .name       = "acl_reset",
 1139:         .args_type  = "aclname:s",
 1140:         .params     = "aclname",
 1141:         .help       = "reset the access control list",
 1142:         .mhandler.cmd = do_acl_reset,
 1143:     },
 1144: 
 1145: STEXI
 1146: @item acl_reset @var{aclname}
 1147: @findex acl_reset
 1148: Remove all matches from the access control list, and set the default
 1149: policy back to @code{deny}.
 1150: ETEXI
 1151: 
 1152: #if defined(TARGET_I386)
 1153: 
 1154:     {
 1155:         .name       = "mce",
 1156:         .args_type  = "broadcast:-b,cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
 1157:         .params     = "[-b] cpu bank status mcgstatus addr misc",
 1158:         .help       = "inject a MCE on the given CPU [and broadcast to other CPUs with -b option]",
 1159:         .mhandler.cmd = do_inject_mce,
 1160:     },
 1161: 
 1162: #endif
 1163: STEXI
 1164: @item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
 1165: @findex mce (x86)
 1166: Inject an MCE on the given CPU (x86 only).
 1167: ETEXI
 1168: 
 1169:     {
 1170:         .name       = "getfd",
 1171:         .args_type  = "fdname:s",
 1172:         .params     = "getfd name",
 1173:         .help       = "receive a file descriptor via SCM rights and assign it a name",
 1174:         .user_print = monitor_user_noop,
 1175:         .mhandler.cmd_new = do_getfd,
 1176:     },
 1177: 
 1178: STEXI
 1179: @item getfd @var{fdname}
 1180: @findex getfd
 1181: If a file descriptor is passed alongside this command using the SCM_RIGHTS
 1182: mechanism on unix sockets, it is stored using the name @var{fdname} for
 1183: later use by other monitor commands.
 1184: ETEXI
 1185: 
 1186:     {
 1187:         .name       = "closefd",
 1188:         .args_type  = "fdname:s",
 1189:         .params     = "closefd name",
 1190:         .help       = "close a file descriptor previously passed via SCM rights",
 1191:         .user_print = monitor_user_noop,
 1192:         .mhandler.cmd_new = do_closefd,
 1193:     },
 1194: 
 1195: STEXI
 1196: @item closefd @var{fdname}
 1197: @findex closefd
 1198: Close the file descriptor previously assigned to @var{fdname} using the
 1199: @code{getfd} command. This is only needed if the file descriptor was never
 1200: used by another monitor command.
 1201: ETEXI
 1202: 
 1203:     {
 1204:         .name       = "block_passwd",
 1205:         .args_type  = "device:B,password:s",
 1206:         .params     = "block_passwd device password",
 1207:         .help       = "set the password of encrypted block devices",
 1208:         .user_print = monitor_user_noop,
 1209:         .mhandler.cmd_new = do_block_set_passwd,
 1210:     },
 1211: 
 1212: STEXI
 1213: @item block_passwd @var{device} @var{password}
 1214: @findex block_passwd
 1215: Set the encrypted device @var{device} password to @var{password}
 1216: ETEXI
 1217: 
 1218:     {
 1219:         .name       = "set_password",
 1220:         .args_type  = "protocol:s,password:s,connected:s?",
 1221:         .params     = "protocol password action-if-connected",
 1222:         .help       = "set spice/vnc password",
 1223:         .user_print = monitor_user_noop,
 1224:         .mhandler.cmd_new = set_password,
 1225:     },
 1226: 
 1227: STEXI
 1228: @item set_password [ vnc | spice ] password [ action-if-connected ]
 1229: @findex set_password
 1230: 
 1231: Change spice/vnc password.  Use zero to make the password stay valid
 1232: forever.  @var{action-if-connected} specifies what should happen in
 1233: case a connection is established: @var{fail} makes the password change
 1234: fail.  @var{disconnect} changes the password and disconnects the
 1235: client.  @var{keep} changes the password and keeps the connection up.
 1236: @var{keep} is the default.
 1237: ETEXI
 1238: 
 1239:     {
 1240:         .name       = "expire_password",
 1241:         .args_type  = "protocol:s,time:s",
 1242:         .params     = "protocol time",
 1243:         .help       = "set spice/vnc password expire-time",
 1244:         .user_print = monitor_user_noop,
 1245:         .mhandler.cmd_new = expire_password,
 1246:     },
 1247: 
 1248: STEXI
 1249: @item expire_password [ vnc | spice ] expire-time
 1250: @findex expire_password
 1251: 
 1252: Specify when a password for spice/vnc becomes
 1253: invalid. @var{expire-time} accepts:
 1254: 
 1255: @table @var
 1256: @item now
 1257: Invalidate password instantly.
 1258: 
 1259: @item never
 1260: Password stays valid forever.
 1261: 
 1262: @item +nsec
 1263: Password stays valid for @var{nsec} seconds starting now.
 1264: 
 1265: @item nsec
 1266: Password is invalidated at the given time.  @var{nsec} are the seconds
 1267: passed since 1970, i.e. unix epoch.
 1268: 
 1269: @end table
 1270: ETEXI
 1271: 
 1272:     {
 1273:         .name       = "info",
 1274:         .args_type  = "item:s?",
 1275:         .params     = "[subcommand]",
 1276:         .help       = "show various information about the system state",
 1277:         .mhandler.cmd = do_info,
 1278:     },
 1279: 
 1280: STEXI
 1281: @item info @var{subcommand}
 1282: @findex info
 1283: Show various information about the system state.
 1284: 
 1285: @table @option
 1286: @item info version
 1287: show the version of QEMU
 1288: @item info network
 1289: show the various VLANs and the associated devices
 1290: @item info chardev
 1291: show the character devices
 1292: @item info block
 1293: show the block devices
 1294: @item info blockstats
 1295: show block device statistics
 1296: @item info registers
 1297: show the cpu registers
 1298: @item info cpus
 1299: show infos for each CPU
 1300: @item info history
 1301: show the command line history
 1302: @item info irq
 1303: show the interrupts statistics (if available)
 1304: @item info pic
 1305: show i8259 (PIC) state
 1306: @item info pci
 1307: show emulated PCI device info
 1308: @item info tlb
 1309: show virtual to physical memory mappings (i386, SH4 and SPARC only)
 1310: @item info mem
 1311: show the active virtual memory mappings (i386 only)
 1312: @item info jit
 1313: show dynamic compiler info
 1314: @item info kvm
 1315: show KVM information
 1316: @item info numa
 1317: show NUMA information
 1318: @item info kvm
 1319: show KVM information
 1320: @item info usb
 1321: show USB devices plugged on the virtual USB hub
 1322: @item info usbhost
 1323: show all USB host devices
 1324: @item info profile
 1325: show profiling information
 1326: @item info capture
 1327: show information about active capturing
 1328: @item info snapshots
 1329: show list of VM snapshots
 1330: @item info status
 1331: show the current VM status (running|paused)
 1332: @item info pcmcia
 1333: show guest PCMCIA status
 1334: @item info mice
 1335: show which guest mouse is receiving events
 1336: @item info vnc
 1337: show the vnc server status
 1338: @item info name
 1339: show the current VM name
 1340: @item info uuid
 1341: show the current VM UUID
 1342: @item info cpustats
 1343: show CPU statistics
 1344: @item info usernet
 1345: show user network stack connection states
 1346: @item info migrate
 1347: show migration status
 1348: @item info balloon
 1349: show balloon information
 1350: @item info qtree
 1351: show device tree
 1352: @item info qdm
 1353: show qdev device model list
 1354: @item info roms
 1355: show roms
 1356: @end table
 1357: ETEXI
 1358: 
 1359: #ifdef CONFIG_SIMPLE_TRACE
 1360: STEXI
 1361: @item info trace
 1362: show contents of trace buffer
 1363: @item info trace-events
 1364: show available trace events and their state
 1365: ETEXI
 1366: #endif
 1367: 
 1368: STEXI
 1369: @end table
 1370: ETEXI

unix.superglobalmegacorp.com