/* -*- c -*- */
enum {
        VIR_TYPED_PARAM_INT = 1,
        VIR_TYPED_PARAM_UINT = 2,
        VIR_TYPED_PARAM_LLONG = 3,
        VIR_TYPED_PARAM_ULLONG = 4,
        VIR_TYPED_PARAM_DOUBLE = 5,
        VIR_TYPED_PARAM_BOOLEAN = 6,
        VIR_TYPED_PARAM_STRING = 7,
};
struct admin_typed_param_value {
        int                        type;
        union {
                int                i;
                u_int              ui;
                int64_t            l;
                uint64_t           ul;
                double             d;
                int                b;
                admin_nonnull_string s;
        } admin_typed_param_value_u;
};
struct admin_typed_param {
        admin_nonnull_string       field;
        admin_typed_param_value    value;
};
struct admin_nonnull_server {
        admin_nonnull_string       name;
};
struct admin_connect_open_args {
        u_int                      flags;
};
struct admin_connect_get_lib_version_ret {
        uint64_t                   libVer;
};
struct admin_connect_list_servers_args {
        u_int                      need_results;
        u_int                      flags;
};
struct admin_connect_list_servers_ret {
        struct {
                u_int              servers_len;
                admin_nonnull_server * servers_val;
        } servers;
        u_int                      ret;
};
struct admin_connect_lookup_server_args {
        admin_nonnull_string       name;
        u_int                      flags;
};
struct admin_connect_lookup_server_ret {
        admin_nonnull_server       srv;
};
struct admin_server_get_threadpool_parameters_args {
        admin_nonnull_server       srv;
        u_int                      flags;
};
struct admin_server_get_threadpool_parameters_ret {
        struct {
                u_int              params_len;
                admin_typed_param * params_val;
        } params;
};
struct admin_server_set_threadpool_parameters_args {
        admin_nonnull_server       srv;
        struct {
                u_int              params_len;
                admin_typed_param * params_val;
        } params;
        u_int                      flags;
};
enum admin_procedure {
        ADMIN_PROC_CONNECT_OPEN = 1,
        ADMIN_PROC_CONNECT_CLOSE = 2,
        ADMIN_PROC_CONNECT_GET_LIB_VERSION = 3,
        ADMIN_PROC_CONNECT_LIST_SERVERS = 4,
        ADMIN_PROC_CONNECT_LOOKUP_SERVER = 5,
        ADMIN_PROC_SERVER_GET_THREADPOOL_PARAMETERS = 6,
        ADMIN_PROC_SERVER_SET_THREADPOOL_PARAMETERS = 7,
};
