| 1 | # -*- Mode: Python -*- |
| 2 | # vim: filetype=python |
| 3 | # |
| 4 | |
| 5 | ## |
| 6 | # ************ |
| 7 | # VFIO devices |
| 8 | # ************ |
| 9 | ## |
| 10 | |
| 11 | ## |
| 12 | # @QapiVfioMigrationState: |
| 13 | # |
| 14 | # An enumeration of the VFIO device migration states. In addition to |
| 15 | # the regular states, there are prepare states (with 'prepare' suffix) |
| 16 | # which indicate that the device is just about to transition to the |
| 17 | # corresponding state. Note that seeing a prepare state for state X |
| 18 | # doesn't guarantee that the next state will be X, as the state |
| 19 | # transition can fail and the device may transition to a different |
| 20 | # state instead. |
| 21 | # |
| 22 | # @stop: The device is stopped. |
| 23 | # |
| 24 | # @running: The device is running. |
| 25 | # |
| 26 | # @stop-copy: The device is stopped and its internal state is |
| 27 | # available for reading. |
| 28 | # |
| 29 | # @resuming: The device is stopped and its internal state is available |
| 30 | # for writing. |
| 31 | # |
| 32 | # @running-p2p: The device is running in the P2P quiescent state. |
| 33 | # |
| 34 | # @pre-copy: The device is running, tracking its internal state and |
| 35 | # its internal state is available for reading. |
| 36 | # |
| 37 | # @pre-copy-p2p: The device is running in the P2P quiescent state, |
| 38 | # tracking its internal state and its internal state is available |
| 39 | # for reading. |
| 40 | # |
| 41 | # @pre-copy-p2p-prepare: The device is just about to move to |
| 42 | # pre-copy-p2p state. (since 11.0) |
| 43 | # |
| 44 | # Since: 9.1 |
| 45 | ## |
| 46 | { 'enum': 'QapiVfioMigrationState', |
| 47 | 'data': [ 'stop', 'running', 'stop-copy', 'resuming', 'running-p2p', |
| 48 | 'pre-copy', 'pre-copy-p2p', 'pre-copy-p2p-prepare' ] } |
| 49 | |
| 50 | ## |
| 51 | # @VFIO_MIGRATION: |
| 52 | # |
| 53 | # This event is emitted when a VFIO device migration state is changed. |
| 54 | # |
| 55 | # @device-id: The device's id, if it has one. |
| 56 | # |
| 57 | # @qom-path: The device's QOM path. |
| 58 | # |
| 59 | # @device-state: The new changed device migration state. |
| 60 | # |
| 61 | # Since: 9.1 |
| 62 | # |
| 63 | # .. qmp-example:: |
| 64 | # |
| 65 | # <- { "timestamp": { "seconds": 1713771323, "microseconds": 212268 }, |
| 66 | # "event": "VFIO_MIGRATION", |
| 67 | # "data": { |
| 68 | # "device-id": "vfio_dev1", |
| 69 | # "qom-path": "/machine/peripheral/vfio_dev1", |
| 70 | # "device-state": "stop" } } |
| 71 | ## |
| 72 | { 'event': 'VFIO_MIGRATION', |
| 73 | 'data': { |
| 74 | 'device-id': 'str', |
| 75 | 'qom-path': 'str', |
| 76 | 'device-state': 'QapiVfioMigrationState' |
| 77 | } } |