/*
 * 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
