Home | History | Annotate | Download | only in rpcsvc
      1 /* @(#)rquota.x	2.1 88/08/01 4.0 RPCSRC */
      2 /* @(#)rquota.x 1.2 87/09/20 Copyr 1987 Sun Micro */
      3 
      4 /*
      5  * Remote quota protocol
      6  * Requires unix authentication
      7  */
      8 
      9 const RQ_PATHLEN = 1024;
     10 
     11 struct getquota_args {
     12 	string gqa_pathp<RQ_PATHLEN>;  	/* path to filesystem of interest */
     13 	int gqa_uid;	        	/* inquire about quota for uid */
     14 };
     15 
     16 /*
     17  * remote quota structure
     18  */
     19 struct rquota {
     20 	int rq_bsize;			/* block size for block counts */
     21 	bool rq_active;  		/* indicates whether quota is active */
     22 	unsigned int rq_bhardlimit;	/* absolute limit on disk blks alloc */
     23 	unsigned int rq_bsoftlimit;	/* preferred limit on disk blks */
     24 	unsigned int rq_curblocks;	/* current block count */
     25 	unsigned int rq_fhardlimit;	/* absolute limit on allocated files */
     26 	unsigned int rq_fsoftlimit;	/* preferred file limit */
     27 	unsigned int rq_curfiles;	/* current # allocated files */
     28 	unsigned int rq_btimeleft;	/* time left for excessive disk use */
     29 	unsigned int rq_ftimeleft;	/* time left for excessive files */
     30 };
     31 
     32 enum gqr_status {
     33 	Q_OK = 1,		/* quota returned */
     34 	Q_NOQUOTA = 2,  	/* noquota for uid */
     35 	Q_EPERM = 3		/* no permission to access quota */
     36 };
     37 
     38 union getquota_rslt switch (gqr_status status) {
     39 case Q_OK:
     40 	rquota gqr_rquota;	/* valid if status == Q_OK */
     41 case Q_NOQUOTA:
     42 	void;
     43 case Q_EPERM:
     44 	void;
     45 };
     46 
     47 program RQUOTAPROG {
     48 	version RQUOTAVERS {
     49 		/*
     50 		 * Get all quotas
     51 		 */
     52 		getquota_rslt
     53 		RQUOTAPROC_GETQUOTA(getquota_args) = 1;
     54 
     55 		/*
     56 	 	 * Get active quotas only
     57 		 */
     58 		getquota_rslt
     59 		RQUOTAPROC_GETACTIVEQUOTA(getquota_args) = 2;
     60 	} = 1;
     61 } = 100011;
     62