2 * Copyright 2000, International Business Machines Corporation and others.
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
10 #ifndef _PTPROTOTYPES_H_
11 #define _PTPROTOTYPES_H_
16 extern int PR_ExecuteRequest (struct rx_call *z_call);
19 #if defined(SUPERGROUPS)
20 extern afs_int32 IsAMemberOfSG(struct ubik_trans *at, afs_int32 aid,
21 afs_int32 gid, afs_int32 depth) ;
22 #endif /* SUPERGROUPS */
24 extern afs_int32 NameHash(register unsigned char *aname);
25 extern afs_int32 pr_Write(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos,
26 void *buff, afs_int32 len);
27 extern afs_int32 pr_Read(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos,
28 void *buff, afs_int32 len);
29 extern int pr_WriteEntry(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos,
30 struct prentry *tentry);
31 extern int pr_ReadEntry(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos,
32 struct prentry *tentry);
33 extern int pr_WriteCoEntry(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos,
34 struct contentry *tentry);
35 extern int pr_ReadCoEntry(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos,
36 struct contentry *tentry);
37 extern afs_int32 AllocBlock(register struct ubik_trans *at);
38 extern afs_int32 FreeBlock(register struct ubik_trans *at, afs_int32 pos);
39 extern afs_int32 FindByID(register struct ubik_trans *at, afs_int32 aid);
40 extern afs_int32 FindByName(register struct ubik_trans *at,
41 char aname[PR_MAXNAMELEN], struct prentry *tentryp);
42 extern afs_int32 AllocID(register struct ubik_trans *at, afs_int32 flag,
44 extern afs_int32 IDToName(register struct ubik_trans *at, afs_int32 aid,
45 char aname[PR_MAXNAMELEN]);
46 extern afs_int32 NameToID(register struct ubik_trans *at,
47 char aname[PR_MAXNAMELEN], afs_int32 *aid);
48 extern int IDCmp(const void *a, const void *b);
49 extern afs_int32 RemoveFromIDHash(struct ubik_trans *tt, afs_int32 aid,
51 extern afs_int32 AddToIDHash(struct ubik_trans *tt, afs_int32 aid,
53 extern afs_int32 RemoveFromNameHash(struct ubik_trans *tt, char *aname,
55 extern afs_int32 AddToNameHash(struct ubik_trans *tt, char *aname,
57 extern afs_int32 AddToOwnerChain(struct ubik_trans *at, afs_int32 gid,
59 extern afs_int32 RemoveFromOwnerChain(struct ubik_trans *at, afs_int32 gid,
61 extern afs_int32 AddToOrphan(struct ubik_trans *at, afs_int32 gid);
62 extern afs_int32 RemoveFromOrphan(struct ubik_trans *at, afs_int32 gid);
63 extern afs_int32 IsOwnerOf(struct ubik_trans *at, afs_int32 aid, afs_int32 gid);
64 extern afs_int32 OwnerOf(struct ubik_trans *at, afs_int32 gid);
65 extern afs_int32 IsAMemberOf(struct ubik_trans *at, afs_int32 aid,
69 extern afs_int32 AddToEntry(struct ubik_trans *tt, struct prentry *entry,
70 afs_int32 loc, afs_int32 aid);
71 extern int AccessOK(struct ubik_trans *ut, afs_int32 cid,
72 struct prentry *tentry, int mem, int any);
73 extern afs_int32 CreateEntry(struct ubik_trans *at, char aname[],
74 afs_int32 *aid, afs_int32 idflag,
75 afs_int32 flag, afs_int32 oid, afs_int32 creator);
76 extern afs_int32 RemoveFromEntry(struct ubik_trans *at, afs_int32 aid,
78 extern afs_int32 DeleteEntry(struct ubik_trans *at, struct prentry *tentry,
80 extern afs_int32 GetList(struct ubik_trans *at, struct prentry *tentry,
81 prlist *alist, afs_int32 add);
82 extern afs_int32 GetList2(struct ubik_trans *at, struct prentry *tentry,
83 struct prentry *tentry2, prlist *alist,
85 extern afs_int32 GetMax(struct ubik_trans *at, afs_int32 *uid, afs_int32 *gid);
86 extern afs_int32 SetMax(struct ubik_trans *at, afs_int32 id, afs_int32 flag);
87 extern afs_int32 ChangeEntry(struct ubik_trans *at, afs_int32 aid,
88 afs_int32 cid, char *name, afs_int32 oid,
90 extern afs_int32 GetOwnedChain(struct ubik_trans *ut, afs_int32 *next,
92 extern afs_int32 AddToPRList(prlist *alist, int *sizeP, afs_int32 id);
93 extern afs_int32 read_DbHeader(struct ubik_trans *tt);
94 extern afs_int32 Initdb(void);
98 /* All ptuser prototypes are in ptuser.h - for public consumption ... */