| /* | |
| * Remote machine configuration | |
| * | |
| * Copyright © 2018, 2021 Oracle and/or its affiliates. | |
| * | |
| * This work is licensed under the terms of the GNU GPL, version 2 or later. | |
| * See the COPYING file in the top-level directory. | |
| * | |
| */ | |
| #ifndef REMOTE_MACHINE_H | |
| #define REMOTE_MACHINE_H | |
| #include "qom/object.h" | |
| #include "hw/boards.h" | |
| #include "hw/pci-host/remote.h" | |
| #include "io/channel.h" | |
| #include "hw/remote/iohub.h" | |
| struct RemoteMachineState { | |
| MachineState parent_obj; | |
| RemotePCIHost *host; | |
| RemoteIOHubState iohub; | |
| bool vfio_user; | |
| bool auto_shutdown; | |
| }; | |
| /* Used to pass to co-routine device and ioc. */ | |
| typedef struct RemoteCommDev { | |
| PCIDevice *dev; | |
| QIOChannel *ioc; | |
| } RemoteCommDev; | |
| #define TYPE_REMOTE_MACHINE "x-remote-machine" | |
| OBJECT_DECLARE_SIMPLE_TYPE(RemoteMachineState, REMOTE_MACHINE) | |
| void coroutine_fn mpqemu_remote_msg_loop_co(void *data); | |
| #endif |