BSD 4_4 release
[unix-history] / usr / src / lib / librpc / rpcsvc / rquota.x
CommitLineData
ad787160
C
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
9const RQ_PATHLEN = 1024;
10
11struct 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 */
19struct 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
32enum 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
38union getquota_rslt switch (gqr_status status) {
39case Q_OK:
40 rquota gqr_rquota; /* valid if status == Q_OK */
41case Q_NOQUOTA:
42 void;
43case Q_EPERM:
44 void;
45};
46
47program 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;