Standardize License information
[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 package PR_
11 statindex 8
12
13 #include "ptopcodes.h"
14
15 const PRSUCCESS=0;
16
17 const PR_MAXNAMELEN=64;
18 const PR_MAXGROUPS=5000;
19 const PR_MAXLIST=5000;
20 const PRSIZE=10;
21 const COSIZE=39;
22
23 struct prdebugentry {
24         afs_int32 flags;
25         afs_int32 id;
26         afs_int32 cellid;
27         afs_int32 next;
28         afs_int32 reserved[5];
29         afs_int32 entries[PRSIZE];
30         afs_int32 nextID;
31         afs_int32 nextname;
32         afs_int32 owner;
33         afs_int32 creator;
34         afs_int32 ngroups;
35         afs_int32 nusers;
36         afs_int32 count;
37         afs_int32 instance;
38         afs_int32 owned;
39         afs_int32 nextOwned;
40         afs_int32 parent;
41         afs_int32 sibling;
42         afs_int32 child;
43         char name[PR_MAXNAMELEN];
44 };
45
46 struct prcheckentry {
47         afs_int32 flags;
48         afs_int32 id;
49         afs_int32 owner;
50         afs_int32 creator;
51         afs_int32 ngroups;
52         afs_int32 nusers;
53         afs_int32 count;
54         afs_int32 reserved[5];
55         char name[PR_MAXNAMELEN];
56 };      
57
58 struct prlistentries {
59         afs_int32 flags;
60         afs_int32 id;
61         afs_int32 owner;
62         afs_int32 creator;
63         afs_int32 ngroups;
64         afs_int32 nusers;
65         afs_int32 count;
66         afs_int32 reserved[5];
67         char name[PR_MAXNAMELEN];
68 };      
69
70 struct PrUpdateEntry {
71         afs_uint32 Mask;
72         afs_int32 flags;
73         afs_int32 id;
74         afs_int32 owner;
75         afs_int32 creator;
76         afs_int32 ngroups;
77         afs_int32 nusers;
78         afs_int32 count;
79         afs_int32 reserved[5];
80         char name[PR_MAXNAMELEN];
81 };      
82
83 /* struct VldbUpdateEntry Mask bit values */
84 const   PRUPDATE_NAME   =       0x0001;
85 const   PRUPDATE_ID     =       0x0002;
86 const   PRUPDATE_FLAGS  =       0x0004;
87 const   PRUPDATE_NAMEHASH=      0x0008;
88 const   PRUPDATE_IDHASH =       0x0010;
89
90 /* These bits are used when calling SetFieldsEntry. */
91 %#define PR_SF_ALLBITS   0xff           /* set all access bits */
92 %#define PR_SF_NGROUPS (1<<31)          /* set field limiting group creation */
93 %#define PR_SF_NUSERS  (1<<30)          /*  "  "  foreign users  "  */
94
95 typedef char prname[PR_MAXNAMELEN];
96 typedef prname namelist<>;
97 typedef afs_int32 idlist<>;
98 typedef afs_int32 prlist<>;
99 typedef prlistentries prentries<>;
100
101 INewEntry(
102   IN string name<PR_MAXNAMELEN>,
103   IN afs_int32 id,
104   IN afs_int32 oid
105 ) = PRINEWUSER;
106
107 WhereIsIt(
108   IN afs_int32 id,
109   OUT afs_int32 *ps
110 ) = PRWHEREISIT;
111
112 DumpEntry(
113   IN afs_int32 pos,
114   OUT struct prdebugentry *entry
115 ) = PRDUMPENTRY;
116
117 AddToGroup(
118   IN afs_int32 uid,
119   IN afs_int32 gid
120 )=PRADDTOGROUP;
121
122 NameToID(
123   IN namelist *nlist,
124   OUT idlist *ilist
125 )=PRNAMETOID;
126
127 IDToName(
128   IN idlist *ilist,
129   OUT namelist *nlist
130 ) =PRIDTONAME;
131
132 Delete(
133   IN afs_int32 id
134 )=PRDELETE;
135
136 RemoveFromGroup(
137   IN afs_int32 id,
138   IN afs_int32 gid
139 )=PRREMOVEFROMGROUP;
140
141 GetCPS(
142   IN afs_int32 id,
143   OUT prlist *elist,
144   OUT afs_int32 *over
145 )=PRGETCPS;
146
147 NewEntry(
148   IN string name<PR_MAXNAMELEN>,
149   afs_int32 flag,
150   afs_int32 oid,
151   OUT afs_int32 *id
152 )=PRNEWENTRY;
153
154 ListMax(
155   OUT afs_int32 *uid,
156   afs_int32 *gid
157 )=PRLISTMAX;
158
159 SetMax(
160   IN afs_int32 id,
161   afs_int32 gflag
162 )=PRSETMAX;
163
164 ListEntry(
165   IN afs_int32 id,
166   OUT struct prcheckentry *entry
167 ) = PRLISTENTRY;
168
169 ChangeEntry(
170   IN afs_int32 id,
171   IN string name<PR_MAXNAMELEN>,
172   IN afs_int32 oid,
173   IN afs_int32 newid
174 ) = PRCHANGEENTRY;
175
176 ListElements(
177   IN afs_int32 id,
178   OUT prlist *elist,
179   OUT afs_int32 *over
180 )=PRLISTELEMENTS;
181
182 IsAMemberOf(
183   IN afs_int32 uid,
184   IN afs_int32 gid,
185   OUT afs_int32 *flag
186 )=PRISAMEMBEROF;
187
188 SetFieldsEntry(
189   IN afs_int32 id,
190   IN afs_int32 mask,
191   IN afs_int32 flags,
192   IN afs_int32 ngroups,
193   IN afs_int32 nusers,
194   IN afs_int32 spare1,
195   IN afs_int32 spare2
196 ) = PRSETFIELDSENTRY;
197
198 ListOwned(
199   IN afs_int32 id,
200   OUT prlist *elist,
201   INOUT afs_int32 *lastp
202 ) = PRLISTOWNED;
203
204 GetCPS2(
205   IN afs_int32 id,
206   IN afs_int32 host,
207   OUT prlist *elist,
208   OUT afs_int32 *over
209 )=PRGETCPS2;
210
211 GetHostCPS(
212   IN afs_int32 host,
213   OUT prlist *elist,
214   OUT afs_int32 *over
215 )=PRGETHOSTCPS;
216
217 UpdateEntry(
218   IN afs_int32 id,
219   IN string name<PR_MAXNAMELEN>,
220   IN PrUpdateEntry *uentry
221 ) = PRUPDATEENTRY;
222
223 ListEntries(
224   IN afs_int32      flags,
225   IN afs_int32      startindex,
226   OUT prentries *bulkentries,
227   OUT afs_int32     *nextstartindex
228 ) = PRLISTENTRIES;