4e0a4cae1e4b37ba84da0c23a07850c90af20b17
[openafs.git] / src / ptserver / ptprototypes.h
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 #ifndef _PTPROTOTYPES_H_
11 #define _PTPROTOTYPES_H_
12
13 /* utils.c */
14 #if defined(SUPERGROUPS)
15 extern afs_int32 IsAMemberOfSG(struct ubik_trans *at, afs_int32 aid, 
16                                afs_int32 gid, afs_int32 depth) ;
17 #endif /* SUPERGROUPS */
18
19 extern afs_int32 NameHash(register unsigned char *aname);
20 extern afs_int32 pr_Write(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos, 
21                           void *buff, afs_int32 len);
22 extern afs_int32 pr_Read(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos, 
23                          void *buff, afs_int32 len);
24 extern int pr_WriteEntry(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos, 
25                          struct prentry *tentry);
26 extern int pr_ReadEntry(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos, 
27                         struct prentry *tentry);
28 extern int pr_WriteCoEntry(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos, 
29                            struct contentry *tentry);
30 extern int pr_ReadCoEntry(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos, 
31                           struct contentry *tentry);
32 extern afs_int32 AllocBlock(register struct ubik_trans *at);
33 extern afs_int32 FreeBlock(register struct ubik_trans *at, afs_int32 pos);
34 extern afs_int32 FindByID(register struct ubik_trans *at, afs_int32 aid);
35 extern afs_int32 FindByName(register struct ubik_trans *at, 
36                             char aname[PR_MAXNAMELEN], struct prentry *tentryp);
37 extern afs_int32 AllocID(register struct ubik_trans *at, afs_int32 flag, 
38                          afs_int32 *aid);
39 extern afs_int32 IDToName(register struct ubik_trans *at, afs_int32 aid, 
40                           char aname[PR_MAXNAMELEN]);
41 extern afs_int32 NameToID(register struct ubik_trans *at, 
42                           char aname[PR_MAXNAMELEN], afs_int32 *aid);
43 extern int IDCmp(const void *a, const void *b);
44 extern afs_int32 RemoveFromIDHash(struct ubik_trans *tt, afs_int32 aid, 
45                                   afs_int32 *loc);
46 extern afs_int32 AddToIDHash(struct ubik_trans *tt, afs_int32 aid, 
47                              afs_int32 loc);
48 extern afs_int32 RemoveFromNameHash(struct ubik_trans *tt, char *aname, 
49                                     afs_int32 *loc);
50 extern afs_int32 AddToNameHash(struct ubik_trans *tt, char *aname, 
51                                afs_int32 loc);
52 extern afs_int32 AddToOwnerChain(struct ubik_trans *at, afs_int32 gid, 
53                                  afs_int32 oid);
54 extern afs_int32 RemoveFromOwnerChain(struct ubik_trans *at, afs_int32 gid, 
55                                       afs_int32 oid);
56 extern afs_int32 AddToOrphan(struct ubik_trans *at, afs_int32 gid);
57 extern afs_int32 RemoveFromOrphan(struct ubik_trans *at, afs_int32 gid);
58 extern afs_int32 IsOwnerOf(struct ubik_trans *at, afs_int32 aid, afs_int32 gid);
59 extern afs_int32 OwnerOf(struct ubik_trans *at, afs_int32 gid);
60 extern afs_int32 IsAMemberOf(struct ubik_trans *at, afs_int32 aid, 
61                              afs_int32 gid);
62
63 /* ptutils.c */
64 extern afs_int32 AddToEntry(struct ubik_trans *tt, struct prentry *entry, 
65                             afs_int32 loc, afs_int32 aid);
66 extern int AccessOK(struct ubik_trans *ut, afs_int32 cid, 
67                     struct prentry *tentry, int mem, int any);
68 extern afs_int32 CreateEntry(struct ubik_trans *at, char aname[], 
69                              afs_int32 *aid, afs_int32 idflag, 
70                              afs_int32 flag, afs_int32 oid, afs_int32 creator);
71 extern afs_int32 RemoveFromEntry(struct ubik_trans *at, afs_int32 aid, 
72                                  afs_int32 bid);
73 extern afs_int32 DeleteEntry(struct ubik_trans *at, struct prentry *tentry,
74                              afs_int32 loc);
75 extern afs_int32 GetList(struct ubik_trans *at, struct prentry *tentry, 
76                          prlist *alist, afs_int32 add);
77 extern afs_int32 GetList2(struct ubik_trans *at, struct prentry *tentry, 
78                           struct prentry *tentry2, prlist *alist, 
79                           afs_int32 add);
80 extern afs_int32 GetMax(struct ubik_trans *at, afs_int32 *uid, afs_int32 *gid);
81 extern afs_int32 SetMax(struct ubik_trans *at, afs_int32 id, afs_int32 flag);
82 extern afs_int32 ChangeEntry(struct ubik_trans *at, afs_int32 aid, 
83                              afs_int32 cid, char *name, afs_int32 oid, 
84                              afs_int32 newid);
85 extern afs_int32 GetOwnedChain(struct ubik_trans *ut, afs_int32 *next, 
86                                prlist *alist);
87 extern afs_int32 AddToPRList(prlist *alist, int *sizeP, afs_int32 id);
88 extern afs_int32 read_DbHeader(struct ubik_trans *tt);
89 extern afs_int32 Initdb(void);
90
91 /* ptuser.c */
92
93 /* All ptuser prototypes are in ptuser.h - for public consumption ... */
94
95 #endif