pts: Don't malloc(0) when there's nothing to do
[openafs.git] / src / ptserver / ptint.xg
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
21 package PR_
22 prefix S
23 statindex 8
24
25 const PRSUCCESS=0;
26
27 const PR_MAXNAMELEN=64;
28 const PR_MAXGROUPS=5000;
29 const PR_MAXLIST=5000;
30 const PRSIZE=10;
31 const COSIZE=39;
32
33 struct 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
56 struct 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
68 struct 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
80 struct 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 */
94 const   PRUPDATE_NAME   =       0x0001;
95 const   PRUPDATE_ID     =       0x0002;
96 const   PRUPDATE_FLAGS  =       0x0004;
97 const   PRUPDATE_NAMEHASH=      0x0008;
98 const   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 (1<<31)          /* set field limiting group creation */
103 %#define PR_SF_NUSERS  (1<<30)          /*  "  "  foreign users  "  */
104
105 typedef char prname[PR_MAXNAMELEN];
106 typedef prname namelist<>;
107 typedef afs_int32 idlist<>;
108 typedef afs_int32 prlist<>;
109 typedef prlistentries prentries<>;
110
111 INewEntry(
112   IN string name<PR_MAXNAMELEN>,
113   IN afs_int32 id,
114   IN afs_int32 oid
115 ) = 500;
116
117 WhereIsIt(
118   IN afs_int32 id,
119   OUT afs_int32 *ps
120 ) = 501;
121
122 DumpEntry(
123   IN afs_int32 pos,
124   OUT struct prdebugentry *entry
125 ) = 502;
126
127 AddToGroup(
128   IN afs_int32 uid,
129   IN afs_int32 gid
130 ) = 503;
131
132 NameToID(
133   IN namelist *nlist,
134   OUT idlist *ilist
135 ) = 504;
136
137 IDToName(
138   IN idlist *ilist,
139   OUT namelist *nlist
140 ) = 505;
141
142 Delete(
143   IN afs_int32 id
144 ) = 506;
145
146 RemoveFromGroup(
147   IN afs_int32 id,
148   IN afs_int32 gid
149 ) = 507;
150
151 GetCPS(
152   IN afs_int32 id,
153   OUT prlist *elist,
154   OUT afs_int32 *over
155 ) = 508;
156
157 NewEntry(
158   IN string name<PR_MAXNAMELEN>,
159   afs_int32 flag,
160   afs_int32 oid,
161   OUT afs_int32 *id
162 ) = 509;
163
164 ListMax(
165   OUT afs_int32 *uid,
166   afs_int32 *gid
167 ) = 510;
168
169 SetMax(
170   IN afs_int32 id,
171   afs_int32 gflag
172 ) = 511;
173
174 ListEntry(
175   IN afs_int32 id,
176   OUT struct prcheckentry *entry
177 ) = 512;
178
179 ChangeEntry(
180   IN afs_int32 id,
181   IN string name<PR_MAXNAMELEN>,
182   IN afs_int32 oid,
183   IN afs_int32 newid
184 ) = 513;
185
186 ListElements(
187   IN afs_int32 id,
188   OUT prlist *elist,
189   OUT afs_int32 *over
190 ) = 514;
191
192 IsAMemberOf(
193   IN afs_int32 uid,
194   IN afs_int32 gid,
195   OUT afs_int32 *flag
196 ) = 515;
197
198 SetFieldsEntry(
199   IN afs_int32 id,
200   IN afs_int32 mask,
201   IN afs_int32 flags,
202   IN afs_int32 ngroups,
203   IN afs_int32 nusers,
204   IN afs_int32 spare1,
205   IN afs_int32 spare2
206 ) = 516;
207
208 ListOwned(
209   IN afs_int32 id,
210   OUT prlist *elist,
211   INOUT afs_int32 *lastp
212 ) = 517;
213
214 GetCPS2(
215   IN afs_int32 id,
216   IN afs_int32 host,
217   OUT prlist *elist,
218   OUT afs_int32 *over
219 ) = 518;
220
221 GetHostCPS(
222   IN afs_int32 host,
223   OUT prlist *elist,
224   OUT afs_int32 *over
225 ) = 519;
226
227 UpdateEntry(
228   IN afs_int32 id,
229   IN string name<PR_MAXNAMELEN>,
230   IN PrUpdateEntry *uentry
231 ) = 520;
232
233 ListEntries(
234   IN afs_int32      flags,
235   IN afs_int32      startindex,
236   OUT prentries *bulkentries,
237   OUT afs_int32     *nextstartindex
238 ) = 521;
239
240 /* #if defined(SUPERGROUPS) */
241 ListSuperGroups(
242   IN afs_int32 id,
243   OUT prlist *elist,
244   OUT afs_int32 *over
245 ) = 530;
246 /* #endif */