]>
Commit | Line | Data |
---|---|---|
0e201d34 | 1 | # -*- Mode: Python -*- |
f7160f32 | 2 | # vim: filetype=python |
0e201d34 MA |
3 | # |
4 | ||
5 | ## | |
6 | # = VM run state | |
7 | ## | |
8 | ||
9 | ## | |
10 | # @RunState: | |
11 | # | |
12 | # An enumeration of VM run states. | |
13 | # | |
14 | # @debug: QEMU is running on a debugger | |
15 | # | |
16 | # @finish-migrate: guest is paused to finish the migration process | |
17 | # | |
18 | # @inmigrate: guest is paused waiting for an incoming migration. Note | |
a937b6aa MA |
19 | # that this state does not tell whether the machine will start at |
20 | # the end of the migration. This depends on the command-line -S | |
21 | # option and any invocation of 'stop' or 'cont' that has happened | |
22 | # since QEMU was started. | |
0e201d34 | 23 | # |
a937b6aa MA |
24 | # @internal-error: An internal error that prevents further guest |
25 | # execution has occurred | |
0e201d34 | 26 | # |
a937b6aa MA |
27 | # @io-error: the last IOP has failed and the device is configured to |
28 | # pause on I/O errors | |
0e201d34 MA |
29 | # |
30 | # @paused: guest has been paused via the 'stop' command | |
31 | # | |
32 | # @postmigrate: guest is paused following a successful 'migrate' | |
33 | # | |
34 | # @prelaunch: QEMU was started with -S and guest has not started | |
35 | # | |
36 | # @restore-vm: guest is paused to restore VM state | |
37 | # | |
38 | # @running: guest is actively running | |
39 | # | |
40 | # @save-vm: guest is paused to save the VM state | |
41 | # | |
42 | # @shutdown: guest is shut down (and -no-shutdown is in use) | |
43 | # | |
44 | # @suspended: guest is suspended (ACPI S3) | |
45 | # | |
a937b6aa MA |
46 | # @watchdog: the watchdog action is configured to pause and has been |
47 | # triggered | |
0e201d34 | 48 | # |
a937b6aa MA |
49 | # @guest-panicked: guest has been panicked as a result of guest OS |
50 | # panic | |
0e201d34 | 51 | # |
a937b6aa MA |
52 | # @colo: guest is paused to save/restore VM state under colo |
53 | # checkpoint, VM can not get into this state unless colo | |
54 | # capability is enabled for migration. (since 2.8) | |
0e201d34 MA |
55 | ## |
56 | { 'enum': 'RunState', | |
57 | 'data': [ 'debug', 'inmigrate', 'internal-error', 'io-error', 'paused', | |
58 | 'postmigrate', 'prelaunch', 'finish-migrate', 'restore-vm', | |
59 | 'running', 'save-vm', 'shutdown', 'suspended', 'watchdog', | |
164dafd1 | 60 | 'guest-panicked', 'colo' ] } |
0e201d34 | 61 | |
d43013e2 DC |
62 | ## |
63 | # @ShutdownCause: | |
64 | # | |
65 | # An enumeration of reasons for a Shutdown. | |
66 | # | |
67 | # @none: No shutdown request pending | |
68 | # | |
69 | # @host-error: An error prevents further use of guest | |
70 | # | |
92548938 DC |
71 | # @host-qmp-quit: Reaction to the QMP command 'quit' |
72 | # | |
73 | # @host-qmp-system-reset: Reaction to the QMP command 'system_reset' | |
d43013e2 DC |
74 | # |
75 | # @host-signal: Reaction to a signal, such as SIGINT | |
76 | # | |
77 | # @host-ui: Reaction to a UI event, like window close | |
78 | # | |
79 | # @guest-shutdown: Guest shutdown/suspend request, via ACPI or other | |
a937b6aa | 80 | # hardware-specific means |
d43013e2 DC |
81 | # |
82 | # @guest-reset: Guest reset request, and command line turns that into | |
a937b6aa | 83 | # a shutdown |
d43013e2 | 84 | # |
a937b6aa MA |
85 | # @guest-panic: Guest panicked, and command line turns that into a |
86 | # shutdown | |
d43013e2 | 87 | # |
a937b6aa MA |
88 | # @subsystem-reset: Partial guest reset that does not trigger QMP |
89 | # events and ignores --no-reboot. This is useful for sanitizing | |
90 | # hypercalls on s390 that are used during kexec/kdump/boot | |
d43013e2 | 91 | # |
7966d70f | 92 | # @snapshot-load: A snapshot is being loaded by the record & replay |
a937b6aa MA |
93 | # subsystem. This value is used only within QEMU. It doesn't |
94 | # occur in QMP. (since 7.2) | |
d43013e2 DC |
95 | ## |
96 | { 'enum': 'ShutdownCause', | |
97 | # Beware, shutdown_caused_by_guest() depends on enumeration order | |
92548938 DC |
98 | 'data': [ 'none', 'host-error', 'host-qmp-quit', 'host-qmp-system-reset', |
99 | 'host-signal', 'host-ui', 'guest-shutdown', 'guest-reset', | |
7966d70f | 100 | 'guest-panic', 'subsystem-reset', 'snapshot-load'] } |
d43013e2 | 101 | |
0e201d34 MA |
102 | ## |
103 | # @StatusInfo: | |
104 | # | |
105 | # Information about VCPU run state | |
106 | # | |
107 | # @running: true if all VCPUs are runnable, false if not runnable | |
108 | # | |
a937b6aa MA |
109 | # @singlestep: true if using TCG with one guest instruction per |
110 | # translation block | |
0e201d34 MA |
111 | # |
112 | # @status: the virtual machine @RunState | |
113 | # | |
34c18203 | 114 | # Features: |
a937b6aa MA |
115 | # |
116 | # @deprecated: Member 'singlestep' is deprecated (with no | |
117 | # replacement). | |
34c18203 | 118 | # |
23e46452 | 119 | # Since: 0.14 |
0e201d34 | 120 | # |
a937b6aa MA |
121 | # Notes: @singlestep is enabled on the command line with '-accel |
122 | # tcg,one-insn-per-tb=on', or with the HMP 'one-insn-per-tb' | |
123 | # command. | |
0e201d34 MA |
124 | ## |
125 | { 'struct': 'StatusInfo', | |
34c18203 PM |
126 | 'data': {'running': 'bool', |
127 | 'singlestep': { 'type': 'bool', 'features': [ 'deprecated' ]}, | |
128 | 'status': 'RunState'} } | |
0e201d34 MA |
129 | |
130 | ## | |
131 | # @query-status: | |
132 | # | |
133 | # Query the run status of all VCPUs | |
134 | # | |
135 | # Returns: @StatusInfo reflecting all VCPUs | |
136 | # | |
23e46452 | 137 | # Since: 0.14 |
0e201d34 MA |
138 | # |
139 | # Example: | |
140 | # | |
141 | # -> { "execute": "query-status" } | |
142 | # <- { "return": { "running": true, | |
143 | # "singlestep": false, | |
144 | # "status": "running" } } | |
0e201d34 | 145 | ## |
d6fe3d02 IM |
146 | { 'command': 'query-status', 'returns': 'StatusInfo', |
147 | 'allow-preconfig': true } | |
0e201d34 MA |
148 | |
149 | ## | |
150 | # @SHUTDOWN: | |
151 | # | |
a937b6aa MA |
152 | # Emitted when the virtual machine has shut down, indicating that qemu |
153 | # is about to exit. | |
0e201d34 | 154 | # |
a937b6aa MA |
155 | # @guest: If true, the shutdown was triggered by a guest request (such |
156 | # as a guest-initiated ACPI shutdown request or other | |
157 | # hardware-specific action) rather than a host request (such as | |
158 | # sending qemu a SIGINT). (since 2.10) | |
0e201d34 | 159 | # |
a937b6aa MA |
160 | # @reason: The @ShutdownCause which resulted in the SHUTDOWN. (since |
161 | # 4.0) | |
ecd7a0d5 | 162 | # |
a937b6aa MA |
163 | # Note: If the command-line option "-no-shutdown" has been specified, |
164 | # qemu will not exit, and a STOP event will eventually follow the | |
165 | # SHUTDOWN event | |
0e201d34 | 166 | # |
9bc6e893 | 167 | # Since: 0.12 |
0e201d34 MA |
168 | # |
169 | # Example: | |
170 | # | |
d219119f VT |
171 | # <- { "event": "SHUTDOWN", |
172 | # "data": { "guest": true, "reason": "guest-shutdown" }, | |
0e201d34 | 173 | # "timestamp": { "seconds": 1267040730, "microseconds": 682951 } } |
0e201d34 | 174 | ## |
ecd7a0d5 | 175 | { 'event': 'SHUTDOWN', 'data': { 'guest': 'bool', 'reason': 'ShutdownCause' } } |
0e201d34 MA |
176 | |
177 | ## | |
178 | # @POWERDOWN: | |
179 | # | |
a937b6aa MA |
180 | # Emitted when the virtual machine is powered down through the power |
181 | # control system, such as via ACPI. | |
0e201d34 | 182 | # |
9bc6e893 | 183 | # Since: 0.12 |
0e201d34 MA |
184 | # |
185 | # Example: | |
186 | # | |
187 | # <- { "event": "POWERDOWN", | |
188 | # "timestamp": { "seconds": 1267040730, "microseconds": 682951 } } | |
0e201d34 MA |
189 | ## |
190 | { 'event': 'POWERDOWN' } | |
191 | ||
192 | ## | |
193 | # @RESET: | |
194 | # | |
195 | # Emitted when the virtual machine is reset | |
196 | # | |
197 | # @guest: If true, the reset was triggered by a guest request (such as | |
a937b6aa MA |
198 | # a guest-initiated ACPI reboot request or other hardware-specific |
199 | # action) rather than a host request (such as the QMP command | |
200 | # system_reset). (since 2.10) | |
0e201d34 | 201 | # |
ecd7a0d5 DC |
202 | # @reason: The @ShutdownCause of the RESET. (since 4.0) |
203 | # | |
9bc6e893 | 204 | # Since: 0.12 |
0e201d34 MA |
205 | # |
206 | # Example: | |
207 | # | |
d219119f VT |
208 | # <- { "event": "RESET", |
209 | # "data": { "guest": false, "reason": "guest-reset" }, | |
0e201d34 | 210 | # "timestamp": { "seconds": 1267041653, "microseconds": 9518 } } |
0e201d34 | 211 | ## |
ecd7a0d5 | 212 | { 'event': 'RESET', 'data': { 'guest': 'bool', 'reason': 'ShutdownCause' } } |
0e201d34 MA |
213 | |
214 | ## | |
215 | # @STOP: | |
216 | # | |
217 | # Emitted when the virtual machine is stopped | |
218 | # | |
9bc6e893 | 219 | # Since: 0.12 |
0e201d34 MA |
220 | # |
221 | # Example: | |
222 | # | |
223 | # <- { "event": "STOP", | |
224 | # "timestamp": { "seconds": 1267041730, "microseconds": 281295 } } | |
0e201d34 MA |
225 | ## |
226 | { 'event': 'STOP' } | |
227 | ||
228 | ## | |
229 | # @RESUME: | |
230 | # | |
231 | # Emitted when the virtual machine resumes execution | |
232 | # | |
9bc6e893 | 233 | # Since: 0.12 |
0e201d34 MA |
234 | # |
235 | # Example: | |
236 | # | |
237 | # <- { "event": "RESUME", | |
238 | # "timestamp": { "seconds": 1271770767, "microseconds": 582542 } } | |
0e201d34 MA |
239 | ## |
240 | { 'event': 'RESUME' } | |
241 | ||
242 | ## | |
243 | # @SUSPEND: | |
244 | # | |
a937b6aa MA |
245 | # Emitted when guest enters a hardware suspension state, for example, |
246 | # S3 state, which is sometimes called standby state | |
0e201d34 MA |
247 | # |
248 | # Since: 1.1 | |
249 | # | |
250 | # Example: | |
251 | # | |
252 | # <- { "event": "SUSPEND", | |
253 | # "timestamp": { "seconds": 1344456160, "microseconds": 309119 } } | |
0e201d34 MA |
254 | ## |
255 | { 'event': 'SUSPEND' } | |
256 | ||
257 | ## | |
258 | # @SUSPEND_DISK: | |
259 | # | |
a937b6aa MA |
260 | # Emitted when guest enters a hardware suspension state with data |
261 | # saved on disk, for example, S4 state, which is sometimes called | |
262 | # hibernate state | |
0e201d34 | 263 | # |
a937b6aa MA |
264 | # Note: QEMU shuts down (similar to event @SHUTDOWN) when entering |
265 | # this state | |
0e201d34 MA |
266 | # |
267 | # Since: 1.2 | |
268 | # | |
269 | # Example: | |
270 | # | |
37fa48a4 MA |
271 | # <- { "event": "SUSPEND_DISK", |
272 | # "timestamp": { "seconds": 1344456160, "microseconds": 309119 } } | |
0e201d34 MA |
273 | ## |
274 | { 'event': 'SUSPEND_DISK' } | |
275 | ||
276 | ## | |
277 | # @WAKEUP: | |
278 | # | |
a937b6aa MA |
279 | # Emitted when the guest has woken up from suspend state and is |
280 | # running | |
0e201d34 MA |
281 | # |
282 | # Since: 1.1 | |
283 | # | |
284 | # Example: | |
285 | # | |
286 | # <- { "event": "WAKEUP", | |
287 | # "timestamp": { "seconds": 1344522075, "microseconds": 745528 } } | |
0e201d34 MA |
288 | ## |
289 | { 'event': 'WAKEUP' } | |
290 | ||
291 | ## | |
292 | # @WATCHDOG: | |
293 | # | |
294 | # Emitted when the watchdog device's timer is expired | |
295 | # | |
296 | # @action: action that has been taken | |
297 | # | |
a937b6aa MA |
298 | # Note: If action is "reset", "shutdown", or "pause" the WATCHDOG |
299 | # event is followed respectively by the RESET, SHUTDOWN, or STOP | |
300 | # events | |
0e201d34 MA |
301 | # |
302 | # Note: This event is rate-limited. | |
303 | # | |
9bc6e893 | 304 | # Since: 0.13 |
0e201d34 MA |
305 | # |
306 | # Example: | |
307 | # | |
308 | # <- { "event": "WATCHDOG", | |
309 | # "data": { "action": "reset" }, | |
310 | # "timestamp": { "seconds": 1267061043, "microseconds": 959568 } } | |
0e201d34 MA |
311 | ## |
312 | { 'event': 'WATCHDOG', | |
14d53b4f | 313 | 'data': { 'action': 'WatchdogAction' } } |
0e201d34 MA |
314 | |
315 | ## | |
14d53b4f | 316 | # @WatchdogAction: |
0e201d34 | 317 | # |
a937b6aa MA |
318 | # An enumeration of the actions taken when the watchdog device's timer |
319 | # is expired | |
0e201d34 MA |
320 | # |
321 | # @reset: system resets | |
322 | # | |
a937b6aa MA |
323 | # @shutdown: system shutdown, note that it is similar to @powerdown, |
324 | # which tries to set to system status and notify guest | |
0e201d34 MA |
325 | # |
326 | # @poweroff: system poweroff, the emulator program exits | |
327 | # | |
328 | # @pause: system pauses, similar to @stop | |
329 | # | |
330 | # @debug: system enters debug state | |
331 | # | |
332 | # @none: nothing is done | |
333 | # | |
a937b6aa MA |
334 | # @inject-nmi: a non-maskable interrupt is injected into the first |
335 | # VCPU (all VCPUS on x86) (since 2.4) | |
0e201d34 MA |
336 | # |
337 | # Since: 2.1 | |
338 | ## | |
14d53b4f | 339 | { 'enum': 'WatchdogAction', |
0e201d34 MA |
340 | 'data': [ 'reset', 'shutdown', 'poweroff', 'pause', 'debug', 'none', |
341 | 'inject-nmi' ] } | |
342 | ||
e6dba048 AJ |
343 | ## |
344 | # @RebootAction: | |
345 | # | |
346 | # Possible QEMU actions upon guest reboot | |
347 | # | |
c27025e0 | 348 | # @reset: Reset the VM |
e6dba048 | 349 | # |
a937b6aa MA |
350 | # @shutdown: Shutdown the VM and exit, according to the shutdown |
351 | # action | |
e6dba048 AJ |
352 | # |
353 | # Since: 6.0 | |
354 | ## | |
355 | { 'enum': 'RebootAction', | |
c27025e0 | 356 | 'data': [ 'reset', 'shutdown' ] } |
e6dba048 AJ |
357 | |
358 | ## | |
359 | # @ShutdownAction: | |
360 | # | |
361 | # Possible QEMU actions upon guest shutdown | |
362 | # | |
363 | # @poweroff: Shutdown the VM and exit | |
364 | # | |
f39057d5 | 365 | # @pause: pause the VM |
e6dba048 AJ |
366 | # |
367 | # Since: 6.0 | |
368 | ## | |
369 | { 'enum': 'ShutdownAction', | |
370 | 'data': [ 'poweroff', 'pause' ] } | |
371 | ||
c753e8e7 AJ |
372 | ## |
373 | # @PanicAction: | |
374 | # | |
375 | # @none: Continue VM execution | |
376 | # | |
377 | # @pause: Pause the VM | |
378 | # | |
a937b6aa MA |
379 | # @shutdown: Shutdown the VM and exit, according to the shutdown |
380 | # action | |
c27025e0 | 381 | # |
a937b6aa MA |
382 | # @exit-failure: Shutdown the VM and exit with nonzero status (since |
383 | # 7.1) | |
0882caf4 | 384 | # |
c753e8e7 AJ |
385 | # Since: 6.0 |
386 | ## | |
387 | { 'enum': 'PanicAction', | |
0882caf4 | 388 | 'data': [ 'pause', 'shutdown', 'exit-failure', 'none' ] } |
c753e8e7 | 389 | |
3da7a416 EB |
390 | ## |
391 | # @watchdog-set-action: | |
392 | # | |
393 | # Set watchdog action | |
394 | # | |
395 | # Since: 2.11 | |
396 | ## | |
397 | { 'command': 'watchdog-set-action', 'data' : {'action': 'WatchdogAction'} } | |
398 | ||
e6dba048 AJ |
399 | ## |
400 | # @set-action: | |
401 | # | |
a937b6aa MA |
402 | # Set the actions that will be taken by the emulator in response to |
403 | # guest events. | |
e6dba048 AJ |
404 | # |
405 | # @reboot: @RebootAction action taken on guest reboot. | |
406 | # | |
407 | # @shutdown: @ShutdownAction action taken on guest shutdown. | |
408 | # | |
c753e8e7 AJ |
409 | # @panic: @PanicAction action taken on guest panic. |
410 | # | |
a937b6aa MA |
411 | # @watchdog: @WatchdogAction action taken when watchdog timer expires |
412 | # . | |
e6dba048 AJ |
413 | # |
414 | # Returns: Nothing on success. | |
415 | # | |
416 | # Since: 6.0 | |
417 | # | |
418 | # Example: | |
419 | # | |
420 | # -> { "execute": "set-action", | |
421 | # "arguments": { "reboot": "shutdown", | |
422 | # "shutdown" : "pause", | |
c753e8e7 | 423 | # "panic": "pause", |
e6dba048 AJ |
424 | # "watchdog": "inject-nmi" } } |
425 | # <- { "return": {} } | |
426 | ## | |
427 | { 'command': 'set-action', | |
428 | 'data': { '*reboot': 'RebootAction', | |
429 | '*shutdown': 'ShutdownAction', | |
c753e8e7 | 430 | '*panic': 'PanicAction', |
e6dba048 AJ |
431 | '*watchdog': 'WatchdogAction' }, |
432 | 'allow-preconfig': true } | |
433 | ||
0e201d34 MA |
434 | ## |
435 | # @GUEST_PANICKED: | |
436 | # | |
437 | # Emitted when guest OS panic is detected | |
438 | # | |
439 | # @action: action that has been taken, currently always "pause" | |
440 | # | |
441 | # @info: information about a panic (since 2.9) | |
442 | # | |
443 | # Since: 1.5 | |
444 | # | |
445 | # Example: | |
446 | # | |
447 | # <- { "event": "GUEST_PANICKED", | |
1c4ec791 VT |
448 | # "data": { "action": "pause" }, |
449 | # "timestamp": { "seconds": 1648245231, "microseconds": 900001 } } | |
0e201d34 MA |
450 | ## |
451 | { 'event': 'GUEST_PANICKED', | |
452 | 'data': { 'action': 'GuestPanicAction', '*info': 'GuestPanicInformation' } } | |
453 | ||
7dc58dee ZP |
454 | ## |
455 | # @GUEST_CRASHLOADED: | |
456 | # | |
457 | # Emitted when guest OS crash loaded is detected | |
458 | # | |
459 | # @action: action that has been taken, currently always "run" | |
460 | # | |
461 | # @info: information about a panic | |
462 | # | |
463 | # Since: 5.0 | |
464 | # | |
465 | # Example: | |
466 | # | |
467 | # <- { "event": "GUEST_CRASHLOADED", | |
1c4ec791 VT |
468 | # "data": { "action": "run" }, |
469 | # "timestamp": { "seconds": 1648245259, "microseconds": 893771 } } | |
7dc58dee ZP |
470 | ## |
471 | { 'event': 'GUEST_CRASHLOADED', | |
472 | 'data': { 'action': 'GuestPanicAction', '*info': 'GuestPanicInformation' } } | |
473 | ||
0e201d34 MA |
474 | ## |
475 | # @GuestPanicAction: | |
476 | # | |
477 | # An enumeration of the actions taken when guest OS panic is detected | |
478 | # | |
479 | # @pause: system pauses | |
480 | # | |
86bf13ae MA |
481 | # @poweroff: system powers off (since 2.8) |
482 | # | |
483 | # @run: system continues to run (since 5.0) | |
484 | # | |
485 | # Since: 2.1 | |
0e201d34 MA |
486 | ## |
487 | { 'enum': 'GuestPanicAction', | |
7dc58dee | 488 | 'data': [ 'pause', 'poweroff', 'run' ] } |
0e201d34 MA |
489 | |
490 | ## | |
491 | # @GuestPanicInformationType: | |
492 | # | |
493 | # An enumeration of the guest panic information types | |
494 | # | |
4ada99ad CB |
495 | # @hyper-v: hyper-v guest panic information type |
496 | # | |
497 | # @s390: s390 guest panic information type (Since: 2.12) | |
498 | # | |
0e201d34 MA |
499 | # Since: 2.9 |
500 | ## | |
501 | { 'enum': 'GuestPanicInformationType', | |
4ada99ad | 502 | 'data': [ 'hyper-v', 's390' ] } |
0e201d34 MA |
503 | |
504 | ## | |
505 | # @GuestPanicInformation: | |
506 | # | |
507 | # Information about a guest panic | |
508 | # | |
4ada99ad CB |
509 | # @type: Crash type that defines the hypervisor specific information |
510 | # | |
0e201d34 MA |
511 | # Since: 2.9 |
512 | ## | |
513 | {'union': 'GuestPanicInformation', | |
514 | 'base': {'type': 'GuestPanicInformationType'}, | |
515 | 'discriminator': 'type', | |
a937b6aa MA |
516 | 'data': {'hyper-v': 'GuestPanicInformationHyperV', |
517 | 's390': 'GuestPanicInformationS390'}} | |
0e201d34 MA |
518 | |
519 | ## | |
520 | # @GuestPanicInformationHyperV: | |
521 | # | |
522 | # Hyper-V specific guest panic information (HV crash MSRs) | |
523 | # | |
524 | # Since: 2.9 | |
525 | ## | |
526 | {'struct': 'GuestPanicInformationHyperV', | |
a937b6aa MA |
527 | 'data': {'arg1': 'uint64', |
528 | 'arg2': 'uint64', | |
529 | 'arg3': 'uint64', | |
530 | 'arg4': 'uint64', | |
531 | 'arg5': 'uint64'}} | |
4ada99ad CB |
532 | |
533 | ## | |
534 | # @S390CrashReason: | |
535 | # | |
536 | # Reason why the CPU is in a crashed state. | |
537 | # | |
538 | # @unknown: no crash reason was set | |
539 | # | |
540 | # @disabled-wait: the CPU has entered a disabled wait state | |
541 | # | |
a937b6aa MA |
542 | # @extint-loop: clock comparator or cpu timer interrupt with new PSW |
543 | # enabled for external interrupts | |
4ada99ad CB |
544 | # |
545 | # @pgmint-loop: program interrupt with BAD new PSW | |
546 | # | |
a937b6aa MA |
547 | # @opint-loop: operation exception interrupt with invalid code at the |
548 | # program interrupt new PSW | |
4ada99ad CB |
549 | # |
550 | # Since: 2.12 | |
551 | ## | |
552 | { 'enum': 'S390CrashReason', | |
553 | 'data': [ 'unknown', | |
554 | 'disabled-wait', | |
555 | 'extint-loop', | |
556 | 'pgmint-loop', | |
557 | 'opint-loop' ] } | |
558 | ||
559 | ## | |
560 | # @GuestPanicInformationS390: | |
561 | # | |
562 | # S390 specific guest panic information (PSW) | |
563 | # | |
564 | # @core: core id of the CPU that crashed | |
a937b6aa | 565 | # |
4ada99ad | 566 | # @psw-mask: control fields of guest PSW |
a937b6aa | 567 | # |
4ada99ad | 568 | # @psw-addr: guest instruction address |
a937b6aa | 569 | # |
4ada99ad CB |
570 | # @reason: guest crash reason |
571 | # | |
572 | # Since: 2.12 | |
573 | ## | |
574 | {'struct': 'GuestPanicInformationS390', | |
a937b6aa MA |
575 | 'data': {'core': 'uint32', |
576 | 'psw-mask': 'uint64', | |
577 | 'psw-addr': 'uint64', | |
578 | 'reason': 'S390CrashReason'}} | |
77b285f7 ZP |
579 | |
580 | ## | |
581 | # @MEMORY_FAILURE: | |
582 | # | |
583 | # Emitted when a memory failure occurs on host side. | |
584 | # | |
585 | # @recipient: recipient is defined as @MemoryFailureRecipient. | |
586 | # | |
a937b6aa MA |
587 | # @action: action that has been taken. action is defined as |
588 | # @MemoryFailureAction. | |
77b285f7 | 589 | # |
a937b6aa MA |
590 | # @flags: flags for MemoryFailureAction. action is defined as |
591 | # @MemoryFailureFlags. | |
77b285f7 ZP |
592 | # |
593 | # Since: 5.2 | |
594 | # | |
595 | # Example: | |
596 | # | |
597 | # <- { "event": "MEMORY_FAILURE", | |
598 | # "data": { "recipient": "hypervisor", | |
599 | # "action": "fatal", | |
05df03cf VT |
600 | # "flags": { "action-required": false, |
601 | # "recursive": false } }, | |
602 | # "timestamp": { "seconds": 1267061043, "microseconds": 959568 } } | |
77b285f7 ZP |
603 | ## |
604 | { 'event': 'MEMORY_FAILURE', | |
605 | 'data': { 'recipient': 'MemoryFailureRecipient', | |
606 | 'action': 'MemoryFailureAction', | |
607 | 'flags': 'MemoryFailureFlags'} } | |
608 | ||
609 | ## | |
610 | # @MemoryFailureRecipient: | |
611 | # | |
612 | # Hardware memory failure occurs, handled by recipient. | |
613 | # | |
a937b6aa MA |
614 | # @hypervisor: memory failure at QEMU process address space. (none |
615 | # guest memory, but used by QEMU itself). | |
77b285f7 ZP |
616 | # |
617 | # @guest: memory failure at guest memory, | |
618 | # | |
619 | # Since: 5.2 | |
77b285f7 ZP |
620 | ## |
621 | { 'enum': 'MemoryFailureRecipient', | |
622 | 'data': [ 'hypervisor', | |
623 | 'guest' ] } | |
624 | ||
77b285f7 ZP |
625 | ## |
626 | # @MemoryFailureAction: | |
627 | # | |
628 | # Actions taken by QEMU in response to a hardware memory failure. | |
629 | # | |
a937b6aa MA |
630 | # @ignore: the memory failure could be ignored. This will only be the |
631 | # case for action-optional failures. | |
77b285f7 | 632 | # |
a937b6aa MA |
633 | # @inject: memory failure occurred in guest memory, the guest enabled |
634 | # MCE handling mechanism, and QEMU could inject the MCE into the | |
635 | # guest successfully. | |
77b285f7 | 636 | # |
a937b6aa MA |
637 | # @fatal: the failure is unrecoverable. This occurs for |
638 | # action-required failures if the recipient is the hypervisor; | |
639 | # QEMU will exit. | |
77b285f7 | 640 | # |
a937b6aa MA |
641 | # @reset: the failure is unrecoverable but confined to the guest. |
642 | # This occurs if the recipient is a guest guest which is not ready | |
643 | # to handle memory failures. | |
77b285f7 ZP |
644 | # |
645 | # Since: 5.2 | |
77b285f7 ZP |
646 | ## |
647 | { 'enum': 'MemoryFailureAction', | |
648 | 'data': [ 'ignore', | |
649 | 'inject', | |
650 | 'fatal', | |
651 | 'reset' ] } | |
652 | ||
653 | ## | |
654 | # @MemoryFailureFlags: | |
655 | # | |
656 | # Additional information on memory failures. | |
657 | # | |
658 | # @action-required: whether a memory failure event is action-required | |
a937b6aa | 659 | # or action-optional (e.g. a failure during memory scrub). |
77b285f7 | 660 | # |
a937b6aa MA |
661 | # @recursive: whether the failure occurred while the previous failure |
662 | # was still in progress. | |
77b285f7 ZP |
663 | # |
664 | # Since: 5.2 | |
77b285f7 ZP |
665 | ## |
666 | { 'struct': 'MemoryFailureFlags', | |
667 | 'data': { 'action-required': 'bool', | |
668 | 'recursive': 'bool'} } | |
e2e69f6b CQ |
669 | |
670 | ## | |
671 | # @NotifyVmexitOption: | |
672 | # | |
673 | # An enumeration of the options specified when enabling notify VM exit | |
674 | # | |
a937b6aa MA |
675 | # @run: enable the feature, do nothing and continue if the notify VM |
676 | # exit happens. | |
e2e69f6b | 677 | # |
a937b6aa MA |
678 | # @internal-error: enable the feature, raise a internal error if the |
679 | # notify VM exit happens. | |
e2e69f6b CQ |
680 | # |
681 | # @disable: disable the feature. | |
682 | # | |
683 | # Since: 7.2 | |
684 | ## | |
685 | { 'enum': 'NotifyVmexitOption', | |
c27f4b66 | 686 | 'data': [ 'run', 'internal-error', 'disable' ] } |