xref: /openbmc/qemu/qapi/machine-s390x.json (revision d2e9b78162e31b1eaf20f3a4f563da82da56908d)
1# -*- Mode: Python -*-
2# vim: filetype=python
3#
4# SPDX-License-Identifier: GPL-2.0-or-later
5# This work is licensed under the terms of the GNU GPL, version 2 or later.
6# See the COPYING file in the top-level directory.
7
8{ 'include': 'machine-common.json' }
9
10##
11# @S390CpuPolarization:
12#
13# An enumeration of CPU polarization that can be assumed by a virtual
14# S390 CPU
15#
16# Since: 8.2
17##
18{ 'enum': 'S390CpuPolarization',
19  'data': [ 'horizontal', 'vertical' ]
20}
21
22##
23# @set-cpu-topology:
24#
25# Modify the topology by moving the CPU inside the topology tree, or
26# by changing a modifier attribute of a CPU.  Absent values will not
27# be modified.
28#
29# @core-id: the vCPU ID to be moved
30#
31# @socket-id: destination socket to move the vCPU to
32#
33# @book-id: destination book to move the vCPU to
34#
35# @drawer-id: destination drawer to move the vCPU to
36#
37# @entitlement: entitlement to set
38#
39# @dedicated: whether the provisioning of real to virtual CPU is
40#     dedicated
41#
42# Features:
43#
44# @unstable: This command is experimental.
45#
46# Since: 8.2
47##
48{ 'command': 'set-cpu-topology',
49  'data': {
50      'core-id': 'uint16',
51      '*socket-id': 'uint16',
52      '*book-id': 'uint16',
53      '*drawer-id': 'uint16',
54      '*entitlement': 'S390CpuEntitlement',
55      '*dedicated': 'bool'
56  },
57  'features': [ 'unstable' ]
58}
59
60##
61# @CPU_POLARIZATION_CHANGE:
62#
63# Emitted when the guest asks to change the polarization.
64#
65# The guest can tell the host (via the PTF instruction) whether the
66# CPUs should be provisioned using horizontal or vertical
67# polarization.
68#
69# On horizontal polarization the host is expected to provision all
70# vCPUs equally.
71#
72# On vertical polarization the host can provision each vCPU
73# differently.  The guest will get information on the details of the
74# provisioning the next time it uses the STSI(15) instruction.
75#
76# @polarization: polarization specified by the guest
77#
78# Features:
79#
80# @unstable: This event is experimental.
81#
82# Since: 8.2
83#
84# .. qmp-example::
85#
86#     <- { "event": "CPU_POLARIZATION_CHANGE",
87#          "data": { "polarization": "horizontal" },
88#          "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
89##
90{ 'event': 'CPU_POLARIZATION_CHANGE',
91  'data': { 'polarization': 'S390CpuPolarization' },
92  'features': [ 'unstable' ]
93}
94
95##
96# @CpuPolarizationInfo:
97#
98# The result of a CPU polarization query.
99#
100# @polarization: the CPU polarization
101#
102# Since: 8.2
103##
104{ 'struct': 'CpuPolarizationInfo',
105  'data': { 'polarization': 'S390CpuPolarization' }
106}
107
108##
109# @query-s390x-cpu-polarization:
110#
111# Features:
112#
113# @unstable: This command is experimental.
114#
115# Returns: the machine's CPU polarization
116#
117# Since: 8.2
118##
119{ 'command': 'query-s390x-cpu-polarization', 'returns': 'CpuPolarizationInfo',
120  'features': [ 'unstable' ]
121}
122