OSDN Git Service

hw/avr/atmega: Fix wrong initial value of stack pointer
[qmiga/qemu.git] / qapi / yank.json
1 # -*- Mode: Python -*-
2 # vim: filetype=python
3 #
4
5 ##
6 # = Yank feature
7 ##
8
9 ##
10 # @YankInstanceType:
11 #
12 # An enumeration of yank instance types.  See @YankInstance for more
13 # information.
14 #
15 # Since: 6.0
16 ##
17 { 'enum': 'YankInstanceType',
18   'data': [ 'block-node', 'chardev', 'migration' ] }
19
20 ##
21 # @YankInstanceBlockNode:
22 #
23 # Specifies which block graph node to yank.  See @YankInstance for
24 # more information.
25 #
26 # @node-name: the name of the block graph node
27 #
28 # Since: 6.0
29 ##
30 { 'struct': 'YankInstanceBlockNode',
31   'data': { 'node-name': 'str' } }
32
33 ##
34 # @YankInstanceChardev:
35 #
36 # Specifies which character device to yank.  See @YankInstance for
37 # more information.
38 #
39 # @id: the chardev's ID
40 #
41 # Since: 6.0
42 ##
43 { 'struct': 'YankInstanceChardev',
44   'data': { 'id': 'str' } }
45
46 ##
47 # @YankInstance:
48 #
49 # A yank instance can be yanked with the @yank qmp command to recover
50 # from a hanging QEMU.
51 #
52 # Currently implemented yank instances:
53 #
54 # - nbd block device: Yanking it will shut down the connection to the
55 #   nbd server without attempting to reconnect.
56 # - socket chardev: Yanking it will shut down the connected socket.
57 # - migration: Yanking it will shut down all migration connections.
58 #   Unlike @migrate_cancel, it will not notify the migration process,
59 #   so migration will go into @failed state, instead of @cancelled
60 #   state.  @yank should be used to recover from hangs.
61 #
62 # Since: 6.0
63 ##
64 { 'union': 'YankInstance',
65   'base': { 'type': 'YankInstanceType' },
66   'discriminator': 'type',
67   'data': {
68       'block-node': 'YankInstanceBlockNode',
69       'chardev': 'YankInstanceChardev' } }
70
71 ##
72 # @yank:
73 #
74 # Try to recover from hanging QEMU by yanking the specified instances.
75 # See @YankInstance for more information.
76 #
77 # Takes a list of @YankInstance as argument.
78 #
79 # Returns:
80 # - Nothing on success
81 # - @DeviceNotFound error, if any of the YankInstances doesn't exist
82 #
83 # Example:
84 #
85 # -> { "execute": "yank",
86 #      "arguments": {
87 #          "instances": [
88 #               { "type": "block-node",
89 #                 "node-name": "nbd0" }
90 #          ] } }
91 # <- { "return": {} }
92 #
93 # Since: 6.0
94 ##
95 { 'command': 'yank',
96   'data': { 'instances': ['YankInstance'] },
97   'allow-oob': true }
98
99 ##
100 # @query-yank:
101 #
102 # Query yank instances.  See @YankInstance for more information.
103 #
104 # Returns: list of @YankInstance
105 #
106 # Example:
107 #
108 # -> { "execute": "query-yank" }
109 # <- { "return": [
110 #          { "type": "block-node",
111 #            "node-name": "nbd0" }
112 #      ] }
113 #
114 # Since: 6.0
115 ##
116 { 'command': 'query-yank',
117   'returns': ['YankInstance'],
118   'allow-oob': true }