]> Git Repo - qemu.git/blob - qapi/event.json
Merge remote-tracking branch 'dgibson/tags/ppc-for-2.10-20170525' into staging
[qemu.git] / qapi / event.json
1 # -*- Mode: Python -*-
2
3 ##
4 # = Other events
5 ##
6
7 ##
8 # @SHUTDOWN:
9 #
10 # Emitted when the virtual machine has shut down, indicating that qemu is
11 # about to exit.
12 #
13 # @guest: If true, the shutdown was triggered by a guest request (such as
14 # a guest-initiated ACPI shutdown request or other hardware-specific action)
15 # rather than a host request (such as sending qemu a SIGINT). (since 2.10)
16 #
17 # Note: If the command-line option "-no-shutdown" has been specified, qemu will
18 # not exit, and a STOP event will eventually follow the SHUTDOWN event
19 #
20 # Since: 0.12.0
21 #
22 # Example:
23 #
24 # <- { "event": "SHUTDOWN", "data": { "guest": true },
25 #      "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
26 #
27 ##
28 { 'event': 'SHUTDOWN', 'data': { 'guest': 'bool' } }
29
30 ##
31 # @POWERDOWN:
32 #
33 # Emitted when the virtual machine is powered down through the power control
34 # system, such as via ACPI.
35 #
36 # Since: 0.12.0
37 #
38 # Example:
39 #
40 # <- { "event": "POWERDOWN",
41 #      "timestamp": { "seconds": 1267040730, "microseconds": 682951 } }
42 #
43 ##
44 { 'event': 'POWERDOWN' }
45
46 ##
47 # @RESET:
48 #
49 # Emitted when the virtual machine is reset
50 #
51 # @guest: If true, the reset was triggered by a guest request (such as
52 # a guest-initiated ACPI reboot request or other hardware-specific action)
53 # rather than a host request (such as the QMP command system_reset).
54 # (since 2.10)
55 #
56 # Since: 0.12.0
57 #
58 # Example:
59 #
60 # <- { "event": "RESET", "data": { "guest": false },
61 #      "timestamp": { "seconds": 1267041653, "microseconds": 9518 } }
62 #
63 ##
64 { 'event': 'RESET', 'data': { 'guest': 'bool' } }
65
66 ##
67 # @STOP:
68 #
69 # Emitted when the virtual machine is stopped
70 #
71 # Since: 0.12.0
72 #
73 # Example:
74 #
75 # <- { "event": "STOP",
76 #      "timestamp": { "seconds": 1267041730, "microseconds": 281295 } }
77 #
78 ##
79 { 'event': 'STOP' }
80
81 ##
82 # @RESUME:
83 #
84 # Emitted when the virtual machine resumes execution
85 #
86 # Since: 0.12.0
87 #
88 # Example:
89 #
90 # <- { "event": "RESUME",
91 #      "timestamp": { "seconds": 1271770767, "microseconds": 582542 } }
92 #
93 ##
94 { 'event': 'RESUME' }
95
96 ##
97 # @SUSPEND:
98 #
99 # Emitted when guest enters a hardware suspension state, for example, S3 state,
100 # which is sometimes called standby state
101 #
102 # Since: 1.1
103 #
104 # Example:
105 #
106 # <- { "event": "SUSPEND",
107 #      "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
108 #
109 ##
110 { 'event': 'SUSPEND' }
111
112 ##
113 # @SUSPEND_DISK:
114 #
115 # Emitted when guest enters a hardware suspension state with data saved on
116 # disk, for example, S4 state, which is sometimes called hibernate state
117 #
118 # Note: QEMU shuts down (similar to event @SHUTDOWN) when entering this state
119 #
120 # Since: 1.2
121 #
122 # Example:
123 #
124 # <-   { "event": "SUSPEND_DISK",
125 #        "timestamp": { "seconds": 1344456160, "microseconds": 309119 } }
126 #
127 ##
128 { 'event': 'SUSPEND_DISK' }
129
130 ##
131 # @WAKEUP:
132 #
133 # Emitted when the guest has woken up from suspend state and is running
134 #
135 # Since: 1.1
136 #
137 # Example:
138 #
139 # <- { "event": "WAKEUP",
140 #      "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
141 #
142 ##
143 { 'event': 'WAKEUP' }
144
145 ##
146 # @RTC_CHANGE:
147 #
148 # Emitted when the guest changes the RTC time.
149 #
150 # @offset: offset between base RTC clock (as specified by -rtc base), and
151 #          new RTC clock value
152 #
153 # Note: This event is rate-limited.
154 #
155 # Since: 0.13.0
156 #
157 # Example:
158 #
159 # <-   { "event": "RTC_CHANGE",
160 #        "data": { "offset": 78 },
161 #        "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
162 #
163 ##
164 { 'event': 'RTC_CHANGE',
165   'data': { 'offset': 'int' } }
166
167 ##
168 # @WATCHDOG:
169 #
170 # Emitted when the watchdog device's timer is expired
171 #
172 # @action: action that has been taken
173 #
174 # Note: If action is "reset", "shutdown", or "pause" the WATCHDOG event is
175 # followed respectively by the RESET, SHUTDOWN, or STOP events
176 #
177 # Note: This event is rate-limited.
178 #
179 # Since: 0.13.0
180 #
181 # Example:
182 #
183 # <- { "event": "WATCHDOG",
184 #      "data": { "action": "reset" },
185 #      "timestamp": { "seconds": 1267061043, "microseconds": 959568 } }
186 #
187 ##
188 { 'event': 'WATCHDOG',
189   'data': { 'action': 'WatchdogExpirationAction' } }
190
191 ##
192 # @DEVICE_DELETED:
193 #
194 # Emitted whenever the device removal completion is acknowledged by the guest.
195 # At this point, it's safe to reuse the specified device ID. Device removal can
196 # be initiated by the guest or by HMP/QMP commands.
197 #
198 # @device: device name
199 #
200 # @path: device path
201 #
202 # Since: 1.5
203 #
204 # Example:
205 #
206 # <- { "event": "DEVICE_DELETED",
207 #      "data": { "device": "virtio-net-pci-0",
208 #                "path": "/machine/peripheral/virtio-net-pci-0" },
209 #      "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
210 #
211 ##
212 { 'event': 'DEVICE_DELETED',
213   'data': { '*device': 'str', 'path': 'str' } }
214
215 ##
216 # @NIC_RX_FILTER_CHANGED:
217 #
218 # Emitted once until the 'query-rx-filter' command is executed, the first event
219 # will always be emitted
220 #
221 # @name: net client name
222 #
223 # @path: device path
224 #
225 # Since: 1.6
226 #
227 # Example:
228 #
229 # <- { "event": "NIC_RX_FILTER_CHANGED",
230 #      "data": { "name": "vnet0",
231 #                "path": "/machine/peripheral/vnet0/virtio-backend" },
232 #      "timestamp": { "seconds": 1368697518, "microseconds": 326866 } }
233 #    }
234 #
235 ##
236 { 'event': 'NIC_RX_FILTER_CHANGED',
237   'data': { '*name': 'str', 'path': 'str' } }
238
239 ##
240 # @VNC_CONNECTED:
241 #
242 # Emitted when a VNC client establishes a connection
243 #
244 # @server: server information
245 #
246 # @client: client information
247 #
248 # Note: This event is emitted before any authentication takes place, thus
249 # the authentication ID is not provided
250 #
251 # Since: 0.13.0
252 #
253 # Example:
254 #
255 # <- { "event": "VNC_CONNECTED",
256 #      "data": {
257 #            "server": { "auth": "sasl", "family": "ipv4",
258 #                        "service": "5901", "host": "0.0.0.0" },
259 #            "client": { "family": "ipv4", "service": "58425",
260 #                        "host": "127.0.0.1" } },
261 #      "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
262 #
263 ##
264 { 'event': 'VNC_CONNECTED',
265   'data': { 'server': 'VncServerInfo',
266             'client': 'VncBasicInfo' } }
267
268 ##
269 # @VNC_INITIALIZED:
270 #
271 # Emitted after authentication takes place (if any) and the VNC session is
272 # made active
273 #
274 # @server: server information
275 #
276 # @client: client information
277 #
278 # Since: 0.13.0
279 #
280 # Example:
281 #
282 # <-  { "event": "VNC_INITIALIZED",
283 #       "data": {
284 #            "server": { "auth": "sasl", "family": "ipv4",
285 #                        "service": "5901", "host": "0.0.0.0"},
286 #            "client": { "family": "ipv4", "service": "46089",
287 #                        "host": "127.0.0.1", "sasl_username": "luiz" } },
288 #       "timestamp": { "seconds": 1263475302, "microseconds": 150772 } }
289 #
290 ##
291 { 'event': 'VNC_INITIALIZED',
292   'data': { 'server': 'VncServerInfo',
293             'client': 'VncClientInfo' } }
294
295 ##
296 # @VNC_DISCONNECTED:
297 #
298 # Emitted when the connection is closed
299 #
300 # @server: server information
301 #
302 # @client: client information
303 #
304 # Since: 0.13.0
305 #
306 # Example:
307 #
308 # <- { "event": "VNC_DISCONNECTED",
309 #      "data": {
310 #            "server": { "auth": "sasl", "family": "ipv4",
311 #                        "service": "5901", "host": "0.0.0.0" },
312 #            "client": { "family": "ipv4", "service": "58425",
313 #                        "host": "127.0.0.1", "sasl_username": "luiz" } },
314 #      "timestamp": { "seconds": 1262976601, "microseconds": 975795 } }
315 #
316 ##
317 { 'event': 'VNC_DISCONNECTED',
318   'data': { 'server': 'VncServerInfo',
319             'client': 'VncClientInfo' } }
320
321 ##
322 # @SPICE_CONNECTED:
323 #
324 # Emitted when a SPICE client establishes a connection
325 #
326 # @server: server information
327 #
328 # @client: client information
329 #
330 # Since: 0.14.0
331 #
332 # Example:
333 #
334 # <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
335 #      "event": "SPICE_CONNECTED",
336 #      "data": {
337 #        "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
338 #        "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
339 #    }}
340 #
341 ##
342 { 'event': 'SPICE_CONNECTED',
343   'data': { 'server': 'SpiceBasicInfo',
344             'client': 'SpiceBasicInfo' } }
345
346 ##
347 # @SPICE_INITIALIZED:
348 #
349 # Emitted after initial handshake and authentication takes place (if any)
350 # and the SPICE channel is up and running
351 #
352 # @server: server information
353 #
354 # @client: client information
355 #
356 # Since: 0.14.0
357 #
358 # Example:
359 #
360 # <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
361 #      "event": "SPICE_INITIALIZED",
362 #      "data": {"server": {"auth": "spice", "port": "5921",
363 #                          "family": "ipv4", "host": "127.0.0.1"},
364 #               "client": {"port": "49004", "family": "ipv4", "channel-type": 3,
365 #                          "connection-id": 1804289383, "host": "127.0.0.1",
366 #                          "channel-id": 0, "tls": true}
367 #    }}
368 #
369 ##
370 { 'event': 'SPICE_INITIALIZED',
371   'data': { 'server': 'SpiceServerInfo',
372             'client': 'SpiceChannel' } }
373
374 ##
375 # @SPICE_DISCONNECTED:
376 #
377 # Emitted when the SPICE connection is closed
378 #
379 # @server: server information
380 #
381 # @client: client information
382 #
383 # Since: 0.14.0
384 #
385 # Example:
386 #
387 # <- { "timestamp": {"seconds": 1290688046, "microseconds": 388707},
388 #      "event": "SPICE_DISCONNECTED",
389 #      "data": {
390 #        "server": { "port": "5920", "family": "ipv4", "host": "127.0.0.1"},
391 #        "client": {"port": "52873", "family": "ipv4", "host": "127.0.0.1"}
392 #    }}
393 #
394 ##
395 { 'event': 'SPICE_DISCONNECTED',
396   'data': { 'server': 'SpiceBasicInfo',
397             'client': 'SpiceBasicInfo' } }
398
399 ##
400 # @SPICE_MIGRATE_COMPLETED:
401 #
402 # Emitted when SPICE migration has completed
403 #
404 # Since: 1.3
405 #
406 # Example:
407 #
408 # <- { "timestamp": {"seconds": 1290688046, "microseconds": 417172},
409 #      "event": "SPICE_MIGRATE_COMPLETED" }
410 #
411 ##
412 { 'event': 'SPICE_MIGRATE_COMPLETED' }
413
414 ##
415 # @MIGRATION:
416 #
417 # Emitted when a migration event happens
418 #
419 # @status: @MigrationStatus describing the current migration status.
420 #
421 # Since: 2.4
422 #
423 # Example:
424 #
425 # <- {"timestamp": {"seconds": 1432121972, "microseconds": 744001},
426 #     "event": "MIGRATION",
427 #     "data": {"status": "completed"} }
428 #
429 ##
430 { 'event': 'MIGRATION',
431   'data': {'status': 'MigrationStatus'}}
432
433 ##
434 # @MIGRATION_PASS:
435 #
436 # Emitted from the source side of a migration at the start of each pass
437 # (when it syncs the dirty bitmap)
438 #
439 # @pass: An incrementing count (starting at 1 on the first pass)
440 #
441 # Since: 2.6
442 #
443 # Example:
444 #
445 # { "timestamp": {"seconds": 1449669631, "microseconds": 239225},
446 #   "event": "MIGRATION_PASS", "data": {"pass": 2} }
447 #
448 ##
449 { 'event': 'MIGRATION_PASS',
450   'data': { 'pass': 'int' } }
451
452 ##
453 # @ACPI_DEVICE_OST:
454 #
455 # Emitted when guest executes ACPI _OST method.
456 #
457 # @info: ACPIOSTInfo type as described in qapi-schema.json
458 #
459 # Since: 2.1
460 #
461 # Example:
462 #
463 # <- { "event": "ACPI_DEVICE_OST",
464 #      "data": { "device": "d1", "slot": "0",
465 #                "slot-type": "DIMM", "source": 1, "status": 0 } }
466 #
467 ##
468 { 'event': 'ACPI_DEVICE_OST',
469      'data': { 'info': 'ACPIOSTInfo' } }
470
471 ##
472 # @BALLOON_CHANGE:
473 #
474 # Emitted when the guest changes the actual BALLOON level. This value is
475 # equivalent to the @actual field return by the 'query-balloon' command
476 #
477 # @actual: actual level of the guest memory balloon in bytes
478 #
479 # Note: this event is rate-limited.
480 #
481 # Since: 1.2
482 #
483 # Example:
484 #
485 # <- { "event": "BALLOON_CHANGE",
486 #      "data": { "actual": 944766976 },
487 #      "timestamp": { "seconds": 1267020223, "microseconds": 435656 } }
488 #
489 ##
490 { 'event': 'BALLOON_CHANGE',
491   'data': { 'actual': 'int' } }
492
493 ##
494 # @GUEST_PANICKED:
495 #
496 # Emitted when guest OS panic is detected
497 #
498 # @action: action that has been taken, currently always "pause"
499 #
500 # @info: information about a panic (since 2.9)
501 #
502 # Since: 1.5
503 #
504 # Example:
505 #
506 # <- { "event": "GUEST_PANICKED",
507 #      "data": { "action": "pause" } }
508 #
509 ##
510 { 'event': 'GUEST_PANICKED',
511   'data': { 'action': 'GuestPanicAction', '*info': 'GuestPanicInformation' } }
512
513 ##
514 # @QUORUM_FAILURE:
515 #
516 # Emitted by the Quorum block driver if it fails to establish a quorum
517 #
518 # @reference: device name if defined else node name
519 #
520 # @sector-num: number of the first sector of the failed read operation
521 #
522 # @sectors-count: failed read operation sector count
523 #
524 # Note: This event is rate-limited.
525 #
526 # Since: 2.0
527 #
528 # Example:
529 #
530 # <- { "event": "QUORUM_FAILURE",
531 #      "data": { "reference": "usr1", "sector-num": 345435, "sectors-count": 5 },
532 #      "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
533 #
534 ##
535 { 'event': 'QUORUM_FAILURE',
536   'data': { 'reference': 'str', 'sector-num': 'int', 'sectors-count': 'int' } }
537
538 ##
539 # @QUORUM_REPORT_BAD:
540 #
541 # Emitted to report a corruption of a Quorum file
542 #
543 # @type: quorum operation type (Since 2.6)
544 #
545 # @error: error message. Only present on failure. This field
546 #         contains a human-readable error message. There are no semantics other
547 #         than that the block layer reported an error and clients should not
548 #         try to interpret the error string.
549 #
550 # @node-name: the graph node name of the block driver state
551 #
552 # @sector-num: number of the first sector of the failed read operation
553 #
554 # @sectors-count: failed read operation sector count
555 #
556 # Note: This event is rate-limited.
557 #
558 # Since: 2.0
559 #
560 # Example:
561 #
562 # 1. Read operation
563 #
564 # { "event": "QUORUM_REPORT_BAD",
565 #      "data": { "node-name": "node0", "sector-num": 345435, "sectors-count": 5,
566 #                "type": "read" },
567 #      "timestamp": { "seconds": 1344522075, "microseconds": 745528 } }
568 #
569 # 2. Flush operation
570 #
571 # { "event": "QUORUM_REPORT_BAD",
572 #      "data": { "node-name": "node0", "sector-num": 0, "sectors-count": 2097120,
573 #                "type": "flush", "error": "Broken pipe" },
574 #      "timestamp": { "seconds": 1456406829, "microseconds": 291763 } }
575 #
576 ##
577 { 'event': 'QUORUM_REPORT_BAD',
578   'data': { 'type': 'QuorumOpType', '*error': 'str', 'node-name': 'str',
579             'sector-num': 'int', 'sectors-count': 'int' } }
580
581 ##
582 # @VSERPORT_CHANGE:
583 #
584 # Emitted when the guest opens or closes a virtio-serial port.
585 #
586 # @id: device identifier of the virtio-serial port
587 #
588 # @open: true if the guest has opened the virtio-serial port
589 #
590 # Since: 2.1
591 #
592 # Example:
593 #
594 # <- { "event": "VSERPORT_CHANGE",
595 #      "data": { "id": "channel0", "open": true },
596 #      "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
597 #
598 ##
599 { 'event': 'VSERPORT_CHANGE',
600   'data': { 'id': 'str', 'open': 'bool' } }
601
602 ##
603 # @MEM_UNPLUG_ERROR:
604 #
605 # Emitted when memory hot unplug error occurs.
606 #
607 # @device: device name
608 #
609 # @msg: Informative message
610 #
611 # Since: 2.4
612 #
613 # Example:
614 #
615 # <- { "event": "MEM_UNPLUG_ERROR"
616 #      "data": { "device": "dimm1",
617 #                "msg": "acpi: device unplug for unsupported device"
618 #      },
619 #      "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }
620 #
621 ##
622 { 'event': 'MEM_UNPLUG_ERROR',
623   'data': { 'device': 'str', 'msg': 'str' } }
624
625 ##
626 # @DUMP_COMPLETED:
627 #
628 # Emitted when background dump has completed
629 #
630 # @result: DumpQueryResult type described in qapi-schema.json.
631 #
632 # @error: human-readable error string that provides
633 #         hint on why dump failed. Only presents on failure. The
634 #         user should not try to interpret the error string.
635 #
636 # Since: 2.6
637 #
638 # Example:
639 #
640 # { "event": "DUMP_COMPLETED",
641 #   "data": {"result": {"total": 1090650112, "status": "completed",
642 #                       "completed": 1090650112} } }
643 #
644 ##
645 { 'event': 'DUMP_COMPLETED' ,
646   'data': { 'result': 'DumpQueryResult', '*error': 'str' } }
This page took 0.059445 seconds and 4 git commands to generate.