aboutsummaryrefslogtreecommitdiff
path: root/qapi/block.json
blob: d2f3fc01ed44082451e382da85eea8a6251a08a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# -*- Mode: Python -*-

##
# = Block devices
##

{ 'include': 'block-core.json' }

##
# == Additional block stuff (VM related)
##

##
# @BiosAtaTranslation:
#
# Policy that BIOS should use to interpret cylinder/head/sector
# addresses.  Note that Bochs BIOS and SeaBIOS will not actually
# translate logical CHS to physical; instead, they will use logical
# block addressing.
#
# @auto: If cylinder/heads/sizes are passed, choose between none and LBA
#        depending on the size of the disk.  If they are not passed,
#        choose none if QEMU can guess that the disk had 16 or fewer
#        heads, large if QEMU can guess that the disk had 131072 or
#        fewer tracks across all heads (i.e. cylinders*heads<131072),
#        otherwise LBA.
#
# @none: The physical disk geometry is equal to the logical geometry.
#
# @lba: Assume 63 sectors per track and one of 16, 32, 64, 128 or 255
#       heads (if fewer than 255 are enough to cover the whole disk
#       with 1024 cylinders/head).  The number of cylinders/head is
#       then computed based on the number of sectors and heads.
#
# @large: The number of cylinders per head is scaled down to 1024
#         by correspondingly scaling up the number of heads.
#
# @rechs: Same as @large, but first convert a 16-head geometry to
#         15-head, by proportionally scaling up the number of
#         cylinders/head.
#
# Since: 2.0
##
{ 'enum': 'BiosAtaTranslation',
  'data': ['auto', 'none', 'lba', 'large', 'rechs']}

##
# @FloppyDriveType:
#
# Type of Floppy drive to be emulated by the Floppy Disk Controller.
#
# @144:  1.44MB 3.5" drive
# @288:  2.88MB 3.5" drive
# @120:  1.2MB 5.25" drive
# @none: No drive connected
# @auto: Automatically determined by inserted media at boot
#
# Since: 2.6
##
{ 'enum': 'FloppyDriveType',
  'data': ['144', '288', '120', 'none', 'auto']}

##
# @PRManagerInfo:
#
# Information about a persistent reservation manager
#
# @id: the identifier of the persistent reservation manager
#
# @connected: true if the persistent reservation manager is connected to
#             the underlying storage or helper
#
# Since: 3.0
##
{ 'struct': 'PRManagerInfo',
  'data': {'id': 'str', 'connected': 'bool'} }

##
# @query-pr-managers:
#
# Returns a list of information about each persistent reservation manager.
#
# Returns: a list of @PRManagerInfo for each persistent reservation manager
#
# Since: 3.0
##
{ 'command': 'query-pr-managers', 'returns': ['PRManagerInfo'],
  'allow-preconfig': true }

##
# @eject:
#
# Ejects a device from a removable drive.
#
# @device: Block device name (deprecated, use @id instead)
#
# @id: The name or QOM path of the guest device (since: 2.8)
#
# @force: If true, eject regardless of whether the drive is locked.
#         If not specified, the default value is false.
#
# Returns: - Nothing on success
#          - If @device is not a valid block device, DeviceNotFound
# Notes:    Ejecting a device with no media results in success
#
# Since: 0.14.0
#
# Example:
#
# -> { "execute": "eject", "arguments": { "id": "ide1-0-1" } }
# <- { "return": {} }
##
{ 'command': 'eject',
  'data': { '*device': 'str',
            '*id': 'str',
            '*force': 'bool' } }

##
# @DEVICE_TRAY_MOVED:
#
# Emitted whenever the tray of a removable device is moved by the guest or by
# HMP/QMP commands
#
# @device: Block device name. This is always present for compatibility
#          reasons, but it can be empty ("") if the image does not
#          have a device name associated.
#
# @id: The name or QOM path of the guest device (since 2.8)
#
# @tray-open: true if the tray has been opened or false if it has been closed
#
# Since: 1.1
#
# Example:
#
# <- { "event": "DEVICE_TRAY_MOVED",
#      "data": { "device": "ide1-cd0",
#                "id": "/machine/unattached/device[22]",
#                "tray-open": true
#      },
#      "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
#
##
{ 'event': 'DEVICE_TRAY_MOVED',
  'data': { 'device': 'str', 'id': 'str', 'tray-open': 'bool' } }

##
# @PR_MANAGER_STATUS_CHANGED:
#
# Emitted whenever the connected status of a persistent reservation
# manager changes.
#
# @id: The id of the PR manager object
#
# @connected: true if the PR manager is connected to a backend
#
# Since: 3.0
#
# Example:
#
# <- { "event": "PR_MANAGER_STATUS_CHANGED",
#      "data": { "id": "pr-helper0",
#                "connected": true
#      },
#      "timestamp": { "seconds": 1519840375, "microseconds": 450486 } }
#
##
{ 'event': 'PR_MANAGER_STATUS_CHANGED',
  'data': { 'id': 'str', 'connected': 'bool' } }