/* This file is auto-generated from ../src/remote/qemu_protocol.x */

#include <rpc/rpc.h>
#include "internal.h"

#pragma once

#include "internal.h"

#include "remote_protocol.h"

struct qemu_domain_monitor_command_args {
    remote_nonnull_domain dom;
    remote_nonnull_string cmd;
    u_int flags;
};
typedef struct qemu_domain_monitor_command_args qemu_domain_monitor_command_args;
void xdr_qemu_domain_monitor_command_args_clear(qemu_domain_monitor_command_args *objp);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(qemu_domain_monitor_command_args, xdr_qemu_domain_monitor_command_args_clear);

struct qemu_domain_monitor_command_ret {
    remote_nonnull_string result;
};
typedef struct qemu_domain_monitor_command_ret qemu_domain_monitor_command_ret;
void xdr_qemu_domain_monitor_command_ret_clear(qemu_domain_monitor_command_ret *objp);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(qemu_domain_monitor_command_ret, xdr_qemu_domain_monitor_command_ret_clear);

struct qemu_domain_attach_args {
    u_int pid_value;
    u_int flags;
};
typedef struct qemu_domain_attach_args qemu_domain_attach_args;
void xdr_qemu_domain_attach_args_clear(qemu_domain_attach_args *objp);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(qemu_domain_attach_args, xdr_qemu_domain_attach_args_clear);

struct qemu_domain_attach_ret {
    remote_nonnull_domain dom;
};
typedef struct qemu_domain_attach_ret qemu_domain_attach_ret;
void xdr_qemu_domain_attach_ret_clear(qemu_domain_attach_ret *objp);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(qemu_domain_attach_ret, xdr_qemu_domain_attach_ret_clear);

struct qemu_domain_agent_command_args {
    remote_nonnull_domain dom;
    remote_nonnull_string cmd;
    int timeout;
    u_int flags;
};
typedef struct qemu_domain_agent_command_args qemu_domain_agent_command_args;
void xdr_qemu_domain_agent_command_args_clear(qemu_domain_agent_command_args *objp);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(qemu_domain_agent_command_args, xdr_qemu_domain_agent_command_args_clear);

struct qemu_domain_agent_command_ret {
    remote_string result;
};
typedef struct qemu_domain_agent_command_ret qemu_domain_agent_command_ret;
void xdr_qemu_domain_agent_command_ret_clear(qemu_domain_agent_command_ret *objp);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(qemu_domain_agent_command_ret, xdr_qemu_domain_agent_command_ret_clear);

struct qemu_connect_domain_monitor_event_register_args {
    remote_domain dom;
    remote_string event;
    u_int flags;
};
typedef struct qemu_connect_domain_monitor_event_register_args qemu_connect_domain_monitor_event_register_args;
void xdr_qemu_connect_domain_monitor_event_register_args_clear(qemu_connect_domain_monitor_event_register_args *objp);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(qemu_connect_domain_monitor_event_register_args, xdr_qemu_connect_domain_monitor_event_register_args_clear);

struct qemu_connect_domain_monitor_event_register_ret {
    int callbackID;
};
typedef struct qemu_connect_domain_monitor_event_register_ret qemu_connect_domain_monitor_event_register_ret;
void xdr_qemu_connect_domain_monitor_event_register_ret_clear(qemu_connect_domain_monitor_event_register_ret *objp);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(qemu_connect_domain_monitor_event_register_ret, xdr_qemu_connect_domain_monitor_event_register_ret_clear);

struct qemu_connect_domain_monitor_event_deregister_args {
    int callbackID;
};
typedef struct qemu_connect_domain_monitor_event_deregister_args qemu_connect_domain_monitor_event_deregister_args;
void xdr_qemu_connect_domain_monitor_event_deregister_args_clear(qemu_connect_domain_monitor_event_deregister_args *objp);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(qemu_connect_domain_monitor_event_deregister_args, xdr_qemu_connect_domain_monitor_event_deregister_args_clear);

struct qemu_domain_monitor_event_msg {
    int callbackID;
    remote_nonnull_domain dom;
    remote_nonnull_string event;
    int64_t seconds;
    u_int micros;
    remote_string details;
};
typedef struct qemu_domain_monitor_event_msg qemu_domain_monitor_event_msg;
void xdr_qemu_domain_monitor_event_msg_clear(qemu_domain_monitor_event_msg *objp);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(qemu_domain_monitor_event_msg, xdr_qemu_domain_monitor_event_msg_clear);

struct qemu_domain_monitor_command_with_files_args {
    remote_nonnull_domain dom;
    remote_nonnull_string cmd;
    u_int flags;
};
typedef struct qemu_domain_monitor_command_with_files_args qemu_domain_monitor_command_with_files_args;
void xdr_qemu_domain_monitor_command_with_files_args_clear(qemu_domain_monitor_command_with_files_args *objp);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(qemu_domain_monitor_command_with_files_args, xdr_qemu_domain_monitor_command_with_files_args_clear);

struct qemu_domain_monitor_command_with_files_ret {
    remote_nonnull_string result;
};
typedef struct qemu_domain_monitor_command_with_files_ret qemu_domain_monitor_command_with_files_ret;
void xdr_qemu_domain_monitor_command_with_files_ret_clear(qemu_domain_monitor_command_with_files_ret *objp);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(qemu_domain_monitor_command_with_files_ret, xdr_qemu_domain_monitor_command_with_files_ret_clear);

#define QEMU_PROGRAM 0x20008087

#define QEMU_PROTOCOL_VERSION 1

enum qemu_procedure {
    QEMU_PROC_DOMAIN_MONITOR_COMMAND = 1,
    QEMU_PROC_DOMAIN_ATTACH = 2,
    QEMU_PROC_DOMAIN_AGENT_COMMAND = 3,
    QEMU_PROC_CONNECT_DOMAIN_MONITOR_EVENT_REGISTER = 4,
    QEMU_PROC_CONNECT_DOMAIN_MONITOR_EVENT_DEREGISTER = 5,
    QEMU_PROC_DOMAIN_MONITOR_EVENT = 6,
    QEMU_PROC_DOMAIN_MONITOR_COMMAND_WITH_FILES = 7,
};
typedef enum qemu_procedure qemu_procedure;

extern  bool_t xdr_qemu_domain_monitor_command_args(XDR *, qemu_domain_monitor_command_args*);

extern  bool_t xdr_qemu_domain_monitor_command_ret(XDR *, qemu_domain_monitor_command_ret*);

extern  bool_t xdr_qemu_domain_attach_args(XDR *, qemu_domain_attach_args*);

extern  bool_t xdr_qemu_domain_attach_ret(XDR *, qemu_domain_attach_ret*);

extern  bool_t xdr_qemu_domain_agent_command_args(XDR *, qemu_domain_agent_command_args*);

extern  bool_t xdr_qemu_domain_agent_command_ret(XDR *, qemu_domain_agent_command_ret*);

extern  bool_t xdr_qemu_connect_domain_monitor_event_register_args(XDR *, qemu_connect_domain_monitor_event_register_args*);

extern  bool_t xdr_qemu_connect_domain_monitor_event_register_ret(XDR *, qemu_connect_domain_monitor_event_register_ret*);

extern  bool_t xdr_qemu_connect_domain_monitor_event_deregister_args(XDR *, qemu_connect_domain_monitor_event_deregister_args*);

extern  bool_t xdr_qemu_domain_monitor_event_msg(XDR *, qemu_domain_monitor_event_msg*);

extern  bool_t xdr_qemu_domain_monitor_command_with_files_args(XDR *, qemu_domain_monitor_command_with_files_args*);

extern  bool_t xdr_qemu_domain_monitor_command_with_files_ret(XDR *, qemu_domain_monitor_command_with_files_ret*);

extern  bool_t xdr_qemu_procedure(XDR *, qemu_procedure*);

