backport to buster
[hcoop/debian/openafs.git] / src / ptserver / ptint.xg
CommitLineData
805e021f
CE
1/*
2 * Copyright 2000, International Business Machines Corporation and others.
3 * All Rights Reserved.
4 *
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
8 */
9
10/*
11 * Transarc does not currently use opcodes past 520, but
12 * they *could* decide at any time to use more opcodes.
13 * If they did, then one part of our local mods,
14 * ListSupergroups, would break. I've therefore
15 * renumbered it to 530, and put logic in to enable the
16 * old opcode to work (for now).
17 *
18 */
19
20
21package PR_
22prefix S
23statindex 8
24
25const PRSUCCESS=0;
26
27const PR_MAXNAMELEN=64;
28const PR_MAXGROUPS=5000;
29const PR_MAXLIST=5000;
30const PRSIZE=10;
31const COSIZE=39;
32
33struct prdebugentry {
34 afs_int32 flags;
35 afs_int32 id;
36 afs_int32 cellid;
37 afs_int32 next;
38 afs_int32 reserved[5];
39 afs_int32 entries[PRSIZE];
40 afs_int32 nextID;
41 afs_int32 nextname;
42 afs_int32 owner;
43 afs_int32 creator;
44 afs_int32 ngroups;
45 afs_int32 nusers;
46 afs_int32 count;
47 afs_int32 instance;
48 afs_int32 owned;
49 afs_int32 nextOwned;
50 afs_int32 parent;
51 afs_int32 sibling;
52 afs_int32 child;
53 char name[PR_MAXNAMELEN];
54};
55
56struct prcheckentry {
57 afs_int32 flags;
58 afs_int32 id;
59 afs_int32 owner;
60 afs_int32 creator;
61 afs_int32 ngroups;
62 afs_int32 nusers;
63 afs_int32 count;
64 afs_int32 reserved[5];
65 char name[PR_MAXNAMELEN];
66};
67
68struct prlistentries {
69 afs_int32 flags;
70 afs_int32 id;
71 afs_int32 owner;
72 afs_int32 creator;
73 afs_int32 ngroups;
74 afs_int32 nusers;
75 afs_int32 count;
76 afs_int32 reserved[5];
77 char name[PR_MAXNAMELEN];
78};
79
80struct PrUpdateEntry {
81 afs_uint32 Mask;
82 afs_int32 flags;
83 afs_int32 id;
84 afs_int32 owner;
85 afs_int32 creator;
86 afs_int32 ngroups;
87 afs_int32 nusers;
88 afs_int32 count;
89 afs_int32 reserved[5];
90 char name[PR_MAXNAMELEN];
91};
92
93/* struct VldbUpdateEntry Mask bit values */
94const PRUPDATE_NAME = 0x0001;
95const PRUPDATE_ID = 0x0002;
96const PRUPDATE_FLAGS = 0x0004;
97const PRUPDATE_NAMEHASH= 0x0008;
98const PRUPDATE_IDHASH = 0x0010;
99
100/* These bits are used when calling SetFieldsEntry. */
101%#define PR_SF_ALLBITS 0xff /* set all access bits */
102%#define PR_SF_NGROUPS (1u<<31) /* set field limiting group creation */
103%#define PR_SF_NUSERS (1u<<30) /* " " foreign users " */
104
105/* OpenAFS implementation limit. This limit can be modified in future releases
106 * and does not need to match the limis applied by other implementations. */
107const OPENAFS_MAXPRLIST=50000;
108
109typedef char prname[PR_MAXNAMELEN];
110typedef prname namelist<OPENAFS_MAXPRLIST>;
111typedef afs_int32 idlist<OPENAFS_MAXPRLIST>;
112typedef afs_int32 prlist<OPENAFS_MAXPRLIST>;
113typedef prlistentries prentries<OPENAFS_MAXPRLIST>;
114
115INewEntry(
116 IN string name<PR_MAXNAMELEN>,
117 IN afs_int32 id,
118 IN afs_int32 oid
119) = 500;
120
121WhereIsIt(
122 IN afs_int32 id,
123 OUT afs_int32 *ps
124) = 501;
125
126DumpEntry(
127 IN afs_int32 pos,
128 OUT struct prdebugentry *entry
129) = 502;
130
131AddToGroup(
132 IN afs_int32 uid,
133 IN afs_int32 gid
134) = 503;
135
136NameToID(
137 IN namelist *nlist,
138 OUT idlist *ilist
139) = 504;
140
141IDToName(
142 IN idlist *ilist,
143 OUT namelist *nlist
144) = 505;
145
146Delete(
147 IN afs_int32 id
148) = 506;
149
150RemoveFromGroup(
151 IN afs_int32 id,
152 IN afs_int32 gid
153) = 507;
154
155GetCPS(
156 IN afs_int32 id,
157 OUT prlist *elist,
158 OUT afs_int32 *over
159) = 508;
160
161NewEntry(
162 IN string name<PR_MAXNAMELEN>,
163 afs_int32 flag,
164 afs_int32 oid,
165 OUT afs_int32 *id
166) = 509;
167
168ListMax(
169 OUT afs_int32 *uid,
170 afs_int32 *gid
171) = 510;
172
173SetMax(
174 IN afs_int32 id,
175 afs_int32 gflag
176) = 511;
177
178ListEntry(
179 IN afs_int32 id,
180 OUT struct prcheckentry *entry
181) = 512;
182
183ChangeEntry(
184 IN afs_int32 id,
185 IN string name<PR_MAXNAMELEN>,
186 IN afs_int32 oid,
187 IN afs_int32 newid
188) = 513;
189
190ListElements(
191 IN afs_int32 id,
192 OUT prlist *elist,
193 OUT afs_int32 *over
194) = 514;
195
196IsAMemberOf(
197 IN afs_int32 uid,
198 IN afs_int32 gid,
199 OUT afs_int32 *flag
200) = 515;
201
202SetFieldsEntry(
203 IN afs_int32 id,
204 IN afs_int32 mask,
205 IN afs_int32 flags,
206 IN afs_int32 ngroups,
207 IN afs_int32 nusers,
208 IN afs_int32 spare1,
209 IN afs_int32 spare2
210) = 516;
211
212ListOwned(
213 IN afs_int32 id,
214 OUT prlist *elist,
215 INOUT afs_int32 *lastp
216) = 517;
217
218GetCPS2(
219 IN afs_int32 id,
220 IN afs_int32 host,
221 OUT prlist *elist,
222 OUT afs_int32 *over
223) = 518;
224
225GetHostCPS(
226 IN afs_int32 host,
227 OUT prlist *elist,
228 OUT afs_int32 *over
229) = 519;
230
231UpdateEntry(
232 IN afs_int32 id,
233 IN string name<PR_MAXNAMELEN>,
234 IN PrUpdateEntry *uentry
235) = 520;
236
237ListEntries(
238 IN afs_int32 flags,
239 IN afs_int32 startindex,
240 OUT prentries *bulkentries,
241 OUT afs_int32 *nextstartindex
242) = 521;
243
244/* #if defined(SUPERGROUPS) */
245ListSuperGroups(
246 IN afs_int32 id,
247 OUT prlist *elist,
248 OUT afs_int32 *over
249) = 530;
250/* #endif */