diff options
author | Elena Ufimtseva | 2021-01-29 17:46:14 +0100 |
---|---|---|
committer | Stefan Hajnoczi | 2021-02-10 10:23:28 +0100 |
commit | 9f8112073aad8e485ac012ee18809457ab7f23a6 (patch) | |
tree | 479d8d11c211ff6033d8c38280ab460bf69635e0 /include/hw/remote/proxy.h | |
parent | multi-process: setup memory manager for remote device (diff) | |
download | qemu-9f8112073aad8e485ac012ee18809457ab7f23a6.tar.gz qemu-9f8112073aad8e485ac012ee18809457ab7f23a6.tar.xz qemu-9f8112073aad8e485ac012ee18809457ab7f23a6.zip |
multi-process: introduce proxy object
Defines a PCI Device proxy object as a child of TYPE_PCI_DEVICE.
Signed-off-by: Elena Ufimtseva <elena.ufimtseva@oracle.com>
Signed-off-by: Jagannathan Raman <jag.raman@oracle.com>
Signed-off-by: John G Johnson <john.g.johnson@oracle.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: b5186ebfedf8e557044d09a768846c59230ad3a7.1611938319.git.jag.raman@oracle.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'include/hw/remote/proxy.h')
-rw-r--r-- | include/hw/remote/proxy.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/hw/remote/proxy.h b/include/hw/remote/proxy.h new file mode 100644 index 0000000000..faa9c4d580 --- /dev/null +++ b/include/hw/remote/proxy.h @@ -0,0 +1,33 @@ +/* + * 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 PROXY_H +#define PROXY_H + +#include "hw/pci/pci.h" +#include "io/channel.h" + +#define TYPE_PCI_PROXY_DEV "x-pci-proxy-dev" +OBJECT_DECLARE_SIMPLE_TYPE(PCIProxyDev, PCI_PROXY_DEV) + +struct PCIProxyDev { + PCIDevice parent_dev; + char *fd; + + /* + * Mutex used to protect the QIOChannel fd from + * the concurrent access by the VCPUs since proxy + * blocks while awaiting for the replies from the + * process remote. + */ + QemuMutex io_mutex; + QIOChannel *ioc; + Error *migration_blocker; +}; + +#endif /* PROXY_H */ |