multi-process: Initialize message handler in remote device

Initializes the message handler function in the remote process. It is
called whenever there's an event pending on QIOChannel that registers
this function.

Signed-off-by: Elena Ufimtseva <elena.ufimtseva@oracle.com>
Signed-off-by: John G Johnson <john.g.johnson@oracle.com>
Signed-off-by: Jagannathan Raman <jag.raman@oracle.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 99d38d8b93753a6409ac2340e858858cda59ab1b.1611938319.git.jag.raman@oracle.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Jagannathan Raman 2021-01-29 11:46:11 -05:00 committed by Stefan Hajnoczi
parent ad22c3088b
commit 48b06f50d8
4 changed files with 68 additions and 0 deletions

View file

@ -14,6 +14,7 @@
#include "qom/object.h"
#include "hw/boards.h"
#include "hw/pci-host/remote.h"
#include "io/channel.h"
struct RemoteMachineState {
MachineState parent_obj;
@ -21,7 +22,15 @@ struct RemoteMachineState {
RemotePCIHost *host;
};
/* 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