/*
 * @DEC_COPYRIGHT@
 */
/*
 * HISTORY
 * $Log:	klm_prot.h,v $
 * Revision 1.1.2.2  92/02/26  15:48:02  Charles_Briggs
 * 	From ONC Reference port.
 * 	[92/02/21  09:05:13  Charles_Briggs]
 * 
 * $EndLog$
 */
/*
 * @(#)$RCSfile: klm_prot.h,v $ $Revision: 1.1.2.2 $ (DEC) $Date: 92/02/26 15:48:02 $
 */
/*	@(#)klm_prot.h	1.3 90/07/19 4.1NFSSRC SMI	*/

/* 
 * Copyright (c) 1988,1990 by Sun Microsystems, Inc.
 * @(#) from SUN 1.6
 */

#ifdef	KERNEL
#include "../rpc/types.h"
#else
#include <rpc/types.h>
#endif /* KERNEL */
#define KLM_PROG ((u_long)100020)
#define KLM_VERS ((u_long)1)
#define KLM_TEST ((u_long)1)
#define KLM_LOCK ((u_long)2)
#define KLM_CANCEL ((u_long)3)
#define KLM_UNLOCK ((u_long)4)
#define KLM_GRANTED ((u_long)5)
#define LM_MAXSTRLEN 1024

enum klm_stats {
	klm_granted = 0,
	klm_denied = 1,
	klm_denied_nolocks = 2,
	klm_working = 3,
	klm_deadlck = 5,
};
typedef enum klm_stats klm_stats;
bool_t xdr_klm_stats();


struct klm_lock {
	char *server_name;
	netobj fh;
	int base;
	int length;
	int type;
	int granted;
	int color;
	int LockID;
	int pid;
	int class;
	long rsys;
	long rpid;
};
typedef struct klm_lock klm_lock;
bool_t xdr_klm_lock();


struct klm_holder {
	bool_t exclusive;
	int base;
	int length;
	int type;
	int granted;
	int color;
	int LockID;
	int pid;
	int class;
	long rsys;
	long rpid;
};
typedef struct klm_holder klm_holder;
bool_t xdr_klm_holder();

struct klm_stat {
	klm_stats stat;
};
typedef struct klm_stat klm_stat;
bool_t xdr_klm_stat();


struct klm_testrply {
	klm_stats stat;
	union {
		struct klm_holder holder;
	} klm_testrply_u;
};
typedef struct klm_testrply klm_testrply;
bool_t xdr_klm_testrply();


struct klm_lockargs {
	bool_t block;
	bool_t exclusive;
	struct klm_lock alock;
};
typedef struct klm_lockargs klm_lockargs;
bool_t xdr_klm_lockargs();


struct klm_testargs {
	bool_t exclusive;
	struct klm_lock alock;
};
typedef struct klm_testargs klm_testargs;
bool_t xdr_klm_testargs();


struct klm_unlockargs {
	struct klm_lock alock;
};
typedef struct klm_unlockargs klm_unlockargs;
bool_t xdr_klm_unlockargs();

