// SPDX-License-Identifier: unknown license...
/*
 * The content of this file is a mix of rpcgen-generated
 * and hand-edited program text.  It is not automatically
 * generated by, e.g., build processes.
 *
 * This file is under version control.
 */

#ifndef _RQUOTA_H_RPCGEN
#define _RQUOTA_H_RPCGEN

#include "gsh_rpc.h"
#include "extended_types.h"

#ifdef __cplusplus
extern "C" {
#endif

#define RQ_PATHLEN 1024

	struct sq_dqblk {
		u_int rq_bhardlimit;
		u_int rq_bsoftlimit;
		u_int rq_curblocks;
		u_int rq_fhardlimit;
		u_int rq_fsoftlimit;
		u_int rq_curfiles;
		u_int rq_btimeleft;
		u_int rq_ftimeleft;
	};
	typedef struct sq_dqblk sq_dqblk;

	struct getquota_args {
		char *gqa_pathp;
		int gqa_uid;
	};
	typedef struct getquota_args getquota_args;

	struct setquota_args {
		int sqa_qcmd;
		char *sqa_pathp;
		int sqa_id;
		sq_dqblk sqa_dqblk;
	};
	typedef struct setquota_args setquota_args;

	struct ext_getquota_args {
		char *gqa_pathp;
		int gqa_type;
		int gqa_id;
	};
	typedef struct ext_getquota_args ext_getquota_args;

	struct ext_setquota_args {
		int sqa_qcmd;
		char *sqa_pathp;
		int sqa_id;
		int sqa_type;
		sq_dqblk sqa_dqblk;
	};
	typedef struct ext_setquota_args ext_setquota_args;

	struct rquota {
		int rq_bsize;
		bool_t rq_active;
		u_int rq_bhardlimit;
		u_int rq_bsoftlimit;
		u_int rq_curblocks;
		u_int rq_fhardlimit;
		u_int rq_fsoftlimit;
		u_int rq_curfiles;
		u_int rq_btimeleft;
		u_int rq_ftimeleft;
	};
	typedef struct rquota rquota;

	enum qr_status {
		Q_OK = 1,
		Q_NOQUOTA = 2,
		Q_EPERM = 3,
	};
	typedef enum qr_status qr_status;

	struct getquota_rslt {
		qr_status status;
		union {
			rquota gqr_rquota;
		} getquota_rslt_u;
	};
	typedef struct getquota_rslt getquota_rslt;

	struct setquota_rslt {
		qr_status status;
		union {
			rquota sqr_rquota;
		} setquota_rslt_u;
	};
	typedef struct setquota_rslt setquota_rslt;

#define RQUOTAPROG 100011
#define RQUOTAVERS 1

#if defined(__STDC__) || defined(__cplusplus)
#define RQUOTAPROC_GETQUOTA 1
	extern getquota_rslt *rquotaproc_getquota_1(getquota_args *, CLIENT *);
	extern getquota_rslt *rquotaproc_getquota_1_svc(getquota_args *,
							struct svc_req *);
#define RQUOTAPROC_GETACTIVEQUOTA 2
	extern getquota_rslt *rquotaproc_getactivequota_1(getquota_args *,
							  CLIENT *);
	extern getquota_rslt *rquotaproc_getactivequota_1_svc(getquota_args *,
							      struct svc_req *);
#define RQUOTAPROC_SETQUOTA 3
	extern setquota_rslt *rquotaproc_setquota_1(setquota_args *, CLIENT *);
	extern setquota_rslt *rquotaproc_setquota_1_svc(setquota_args *,
							struct svc_req *);
#define RQUOTAPROC_SETACTIVEQUOTA 4
	extern setquota_rslt *rquotaproc_setactivequota_1(setquota_args *,
							  CLIENT *);
	extern setquota_rslt *rquotaproc_setactivequota_1_svc(setquota_args *,
							      struct svc_req *);
	extern int rquotaprog_1_freeresult(SVCXPRT *, xdrproc_t, void *);
	extern char *check_handle_lead_slash(char *, char *, size_t);

#else				/* K&R C */
#define RQUOTAPROC_GETQUOTA 1
	extern getquota_rslt *rquotaproc_getquota_1();
	extern getquota_rslt *rquotaproc_getquota_1_svc();
#define RQUOTAPROC_GETACTIVEQUOTA 2
	extern getquota_rslt *rquotaproc_getactivequota_1();
	extern getquota_rslt *rquotaproc_getactivequota_1_svc();
#define RQUOTAPROC_SETQUOTA 3
	extern setquota_rslt *rquotaproc_setquota_1();
	extern setquota_rslt *rquotaproc_setquota_1_svc();
#define RQUOTAPROC_SETACTIVEQUOTA 4
	extern setquota_rslt *rquotaproc_setactivequota_1();
	extern setquota_rslt *rquotaproc_setactivequota_1_svc();
	extern int rquotaprog_1_freeresult();
	extern char *check_handle_lead_slash();
#endif				/* K&R C */
#define EXT_RQUOTAVERS 2

/* the xdr functions */

#if defined(__STDC__) || defined(__cplusplus)
	extern bool xdr_sq_dqblk(XDR *, sq_dqblk *);
	extern bool xdr_getquota_args(XDR *, getquota_args *);
	extern bool xdr_setquota_args(XDR *, setquota_args *);
	extern bool xdr_ext_getquota_args(XDR *, ext_getquota_args *);
	extern bool xdr_ext_setquota_args(XDR *, ext_setquota_args *);
	extern bool xdr_rquota(XDR *, rquota *);
	extern bool xdr_qr_status(XDR *, qr_status *);
	extern bool xdr_getquota_rslt(XDR *, getquota_rslt *);
	extern bool xdr_setquota_rslt(XDR *, setquota_rslt *);

#else				/* K&R C */
	extern bool_t xdr_sq_dqblk();
	extern bool_t xdr_getquota_args();
	extern bool_t xdr_setquota_args();
	extern bool_t xdr_ext_getquota_args();
	extern bool_t xdr_ext_setquota_args();
	extern bool_t xdr_rquota();
	extern bool_t xdr_qr_status();
	extern bool_t xdr_getquota_rslt();
	extern bool_t xdr_setquota_rslt();

#endif				/* K&R C */

#ifdef __cplusplus
}
#endif
#endif				/* !_RQUOTA_H_RPCGEN */
