target/loongarch: Implement vsadd/vssub
[qemu/kevin.git] / qapi / yank.json
blob1639744ada61aaae1b342af05a0e1ec359d26aac
1 # -*- Mode: Python -*-
2 # vim: filetype=python
5 ##
6 # = Yank feature
7 ##
9 ##
10 # @YankInstanceType:
12 # An enumeration of yank instance types. See @YankInstance for more
13 # information.
15 # Since: 6.0
17 { 'enum': 'YankInstanceType',
18   'data': [ 'block-node', 'chardev', 'migration' ] }
21 # @YankInstanceBlockNode:
23 # Specifies which block graph node to yank. See @YankInstance for more
24 # information.
26 # @node-name: the name of the block graph node
28 # Since: 6.0
30 { 'struct': 'YankInstanceBlockNode',
31   'data': { 'node-name': 'str' } }
34 # @YankInstanceChardev:
36 # Specifies which character device to yank. See @YankInstance for more
37 # information.
39 # @id: the chardev's ID
41 # Since: 6.0
43 { 'struct': 'YankInstanceChardev',
44   'data': { 'id': 'str' } }
47 # @YankInstance:
49 # A yank instance can be yanked with the @yank qmp command to recover from a
50 # hanging QEMU.
52 # Currently implemented yank instances:
54 # - nbd block device:
55 #   Yanking it will shut down the connection to the nbd server without
56 #   attempting to reconnect.
57 # - socket chardev:
58 #   Yanking it will shut down the connected socket.
59 # - migration:
60 #   Yanking it will shut down all migration connections. Unlike
61 #   @migrate_cancel, it will not notify the migration process, so migration
62 #   will go into @failed state, instead of @cancelled state. @yank should be
63 #   used to recover from hangs.
65 # Since: 6.0
67 { 'union': 'YankInstance',
68   'base': { 'type': 'YankInstanceType' },
69   'discriminator': 'type',
70   'data': {
71       'block-node': 'YankInstanceBlockNode',
72       'chardev': 'YankInstanceChardev' } }
75 # @yank:
77 # Try to recover from hanging QEMU by yanking the specified instances. See
78 # @YankInstance for more information.
80 # Takes a list of @YankInstance as argument.
82 # Returns: - Nothing on success
83 #          - @DeviceNotFound error, if any of the YankInstances doesn't exist
85 # Example:
87 # -> { "execute": "yank",
88 #      "arguments": {
89 #          "instances": [
90 #               { "type": "block-node",
91 #                 "node-name": "nbd0" }
92 #          ] } }
93 # <- { "return": {} }
95 # Since: 6.0
97 { 'command': 'yank',
98   'data': { 'instances': ['YankInstance'] },
99   'allow-oob': true }
102 # @query-yank:
104 # Query yank instances. See @YankInstance for more information.
106 # Returns: list of @YankInstance
108 # Example:
110 # -> { "execute": "query-yank" }
111 # <- { "return": [
112 #          { "type": "block-node",
113 #            "node-name": "nbd0" }
114 #      ] }
116 # Since: 6.0
118 { 'command': 'query-yank',
119   'returns': ['YankInstance'],
120   'allow-oob': true }