/*
 * Please do not edit this file.
 * It was generated using rpcgen.
 */

#ifndef _LOCK_PROTOCOL_H_RPCGEN
#define _LOCK_PROTOCOL_H_RPCGEN

#include <rpc/rpc.h>


#ifdef __cplusplus
extern "C" {
#endif

#include "internal.h"
#include "lock_driver_lockd.h"

typedef char virLockSpaceProtocolUUID[VIR_UUID_BUFLEN];
#define VIR_LOCK_SPACE_PROTOCOL_STRING_MAX 65536

typedef char *virLockSpaceProtocolNonNullString;

typedef virLockSpaceProtocolNonNullString *virLockSpaceProtocolString;

struct virLockSpaceProtocolOwner {
        virLockSpaceProtocolUUID uuid;
        virLockSpaceProtocolNonNullString name;
        u_int id;
        u_int pid;
};
typedef struct virLockSpaceProtocolOwner virLockSpaceProtocolOwner;

struct virLockSpaceProtocolRegisterArgs {
        virLockSpaceProtocolOwner owner;
        u_int flags;
};
typedef struct virLockSpaceProtocolRegisterArgs virLockSpaceProtocolRegisterArgs;

struct virLockSpaceProtocolRestrictArgs {
        u_int flags;
};
typedef struct virLockSpaceProtocolRestrictArgs virLockSpaceProtocolRestrictArgs;

struct virLockSpaceProtocolNewArgs {
        virLockSpaceProtocolNonNullString path;
        u_int flags;
};
typedef struct virLockSpaceProtocolNewArgs virLockSpaceProtocolNewArgs;

struct virLockSpaceProtocolCreateResourceArgs {
        virLockSpaceProtocolNonNullString path;
        virLockSpaceProtocolNonNullString name;
        u_int flags;
};
typedef struct virLockSpaceProtocolCreateResourceArgs virLockSpaceProtocolCreateResourceArgs;

struct virLockSpaceProtocolDeleteResourceArgs {
        virLockSpaceProtocolNonNullString path;
        virLockSpaceProtocolNonNullString name;
        u_int flags;
};
typedef struct virLockSpaceProtocolDeleteResourceArgs virLockSpaceProtocolDeleteResourceArgs;

struct virLockSpaceProtocolAcquireResourceArgs {
        virLockSpaceProtocolNonNullString path;
        virLockSpaceProtocolNonNullString name;
        u_int flags;
};
typedef struct virLockSpaceProtocolAcquireResourceArgs virLockSpaceProtocolAcquireResourceArgs;

struct virLockSpaceProtocolReleaseResourceArgs {
        virLockSpaceProtocolNonNullString path;
        virLockSpaceProtocolNonNullString name;
        u_int flags;
};
typedef struct virLockSpaceProtocolReleaseResourceArgs virLockSpaceProtocolReleaseResourceArgs;

struct virLockSpaceProtocolCreateLockSpaceArgs {
        virLockSpaceProtocolNonNullString path;
};
typedef struct virLockSpaceProtocolCreateLockSpaceArgs virLockSpaceProtocolCreateLockSpaceArgs;
#define VIR_LOCK_SPACE_PROTOCOL_PROGRAM 0xEA7BEEF
#define VIR_LOCK_SPACE_PROTOCOL_PROGRAM_VERSION 1

enum virLockSpaceProtocolProcedure {
        VIR_LOCK_SPACE_PROTOCOL_PROC_REGISTER = 1,
        VIR_LOCK_SPACE_PROTOCOL_PROC_RESTRICT = 2,
        VIR_LOCK_SPACE_PROTOCOL_PROC_NEW = 3,
        VIR_LOCK_SPACE_PROTOCOL_PROC_CREATE_RESOURCE = 4,
        VIR_LOCK_SPACE_PROTOCOL_PROC_DELETE_RESOURCE = 5,
        VIR_LOCK_SPACE_PROTOCOL_PROC_ACQUIRE_RESOURCE = 6,
        VIR_LOCK_SPACE_PROTOCOL_PROC_RELEASE_RESOURCE = 7,
        VIR_LOCK_SPACE_PROTOCOL_PROC_CREATE_LOCKSPACE = 8,
};
typedef enum virLockSpaceProtocolProcedure virLockSpaceProtocolProcedure;

/* the xdr functions */

#if defined(__STDC__) || defined(__cplusplus)
extern  bool_t xdr_virLockSpaceProtocolUUID (XDR *, virLockSpaceProtocolUUID);
extern  bool_t xdr_virLockSpaceProtocolNonNullString (XDR *, virLockSpaceProtocolNonNullString*);
extern  bool_t xdr_virLockSpaceProtocolString (XDR *, virLockSpaceProtocolString*);
extern  bool_t xdr_virLockSpaceProtocolOwner (XDR *, virLockSpaceProtocolOwner*);
extern  bool_t xdr_virLockSpaceProtocolRegisterArgs (XDR *, virLockSpaceProtocolRegisterArgs*);
extern  bool_t xdr_virLockSpaceProtocolRestrictArgs (XDR *, virLockSpaceProtocolRestrictArgs*);
extern  bool_t xdr_virLockSpaceProtocolNewArgs (XDR *, virLockSpaceProtocolNewArgs*);
extern  bool_t xdr_virLockSpaceProtocolCreateResourceArgs (XDR *, virLockSpaceProtocolCreateResourceArgs*);
extern  bool_t xdr_virLockSpaceProtocolDeleteResourceArgs (XDR *, virLockSpaceProtocolDeleteResourceArgs*);
extern  bool_t xdr_virLockSpaceProtocolAcquireResourceArgs (XDR *, virLockSpaceProtocolAcquireResourceArgs*);
extern  bool_t xdr_virLockSpaceProtocolReleaseResourceArgs (XDR *, virLockSpaceProtocolReleaseResourceArgs*);
extern  bool_t xdr_virLockSpaceProtocolCreateLockSpaceArgs (XDR *, virLockSpaceProtocolCreateLockSpaceArgs*);
extern  bool_t xdr_virLockSpaceProtocolProcedure (XDR *, virLockSpaceProtocolProcedure*);

#else /* K&R C */
extern bool_t xdr_virLockSpaceProtocolUUID ();
extern bool_t xdr_virLockSpaceProtocolNonNullString ();
extern bool_t xdr_virLockSpaceProtocolString ();
extern bool_t xdr_virLockSpaceProtocolOwner ();
extern bool_t xdr_virLockSpaceProtocolRegisterArgs ();
extern bool_t xdr_virLockSpaceProtocolRestrictArgs ();
extern bool_t xdr_virLockSpaceProtocolNewArgs ();
extern bool_t xdr_virLockSpaceProtocolCreateResourceArgs ();
extern bool_t xdr_virLockSpaceProtocolDeleteResourceArgs ();
extern bool_t xdr_virLockSpaceProtocolAcquireResourceArgs ();
extern bool_t xdr_virLockSpaceProtocolReleaseResourceArgs ();
extern bool_t xdr_virLockSpaceProtocolCreateLockSpaceArgs ();
extern bool_t xdr_virLockSpaceProtocolProcedure ();

#endif /* K&R C */

#ifdef __cplusplus
}
#endif

#endif /* !_LOCK_PROTOCOL_H_RPCGEN */
