/* @(#)82	1.2  src/bos/usr/include/rpcsvc/rquota.h, cmdnfs, bos720 6/6/97 15:39:34 */
/*
 *   COMPONENT_NAME: cmdnfs
 *
 *   FUNCTIONS: none
 *
 *   ORIGINS: 24
 *
 */
/*	@(#)rquota.h	1.3 90/07/19 4.1NFSSRC SMI	*/

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

/*
 * remote quota inquiry protocol
 */

#ifndef _rpcsvc_rquota_h
#define _rpcsvc_rquota_h

#define RQUOTAPROG	100011
#define RQUOTAVERS_ORIG	1
#define RQUOTAVERS	1

/*
 * inquire about quotas for uid (assume AUTH_UNIX)
 *	input - getquota_args			(xdr_getquota_args)
 *	output - getquota_rslt			(xdr_getquota_rslt)
 */
#define RQUOTAPROC_GETQUOTA		1	/* get quota */
#define RQUOTAPROC_GETACTIVEQUOTA	2	/* get only active quotas */

/*
 * args to RQUOTAPROC_GETQUOTA and RQUOTAPROC_GETACTIVEQUOTA
 */
struct getquota_args {
	char *gqa_pathp;		/* path to filesystem of interest */
	u_int gqa_uid;			/* inquire about quota for uid */
};

/*
 * remote quota structure
 */
struct rquota {
	int rq_bsize;			/* block size for block counts */
	bool_t rq_active;		/* indicates whether quota is active */
	u_long rq_bhardlimit;		/* absolute limit on disk blks alloc */
	u_long rq_bsoftlimit;		/* preferred limit on disk blks */
	u_long rq_curblocks;		/* current block count */
	u_long rq_fhardlimit;		/* absolute limit on allocated files */
	u_long rq_fsoftlimit;		/* preferred file limit */
	u_long rq_curfiles;		/* current # allocated files */
	u_long rq_btimeleft;		/* time left for excessive disk use */
	u_long rq_ftimeleft;		/* time left for excessive files */
};	

enum gqr_status {
	Q_OK = 1,			/* quota returned */
	Q_NOQUOTA = 2,			/* noquota for uid */
	Q_EPERM = 3			/* no permission to access quota */
};

struct getquota_rslt {
	enum gqr_status gqr_status;	/* discriminant */
	struct rquota gqr_rquota;	/* valid if status == Q_OK */
};

#include <rpc/xdr.h>

extern bool_t xdr_getquota_args(XDR *, struct getquota_args *);
extern bool_t xdr_getquota_rslt(XDR *, struct getquota_rslt *);
extern bool_t xdr_rquota(XDR *, struct rquota *);

#endif /*!_rpcsvc_rquota_h*/
