resolve-symlinks-from-stat-cache-with-just-lookup-permission-20010719
[openafs.git] / src / afs / afs_prototypes.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 _AFS_PROTOTYPES_H_
11 #define _AFS_PROTOTYPES_H_
12
13 /* afs_analyze.c */
14 extern void afs_FinalizeReq(struct vrequest *areq);
15
16 extern int afs_Analyze(struct conn *aconn, afs_int32 acode, struct VenusFid *afid,
17                         register struct vrequest *areq, int op, afs_int32 locktype,
18                         struct cell *cellp);
19
20 /* afs_conn.c */
21 extern struct conn *afs_ConnBySA(struct srvAddr *sap, unsigned short aport,
22                           afs_int32 acell, struct unixuser *tu,
23                           int force_if_down, afs_int32 create, afs_int32 locktype);
24
25 /* afs_dcache.c */
26 extern void afs_dcacheInit(int afiles, int ablocks, int aDentries, int achunk,
27                            int aflags);
28
29 /* afs_memcache.c */
30 extern void *afs_MemCacheOpen(ino_t blkno);
31
32 /* afs_osi.c */
33 #if AFS_GCPAGS
34 extern const struct AFS_UCRED *afs_osi_proc2cred(AFS_PROC *pr);
35 extern void afs_osi_TraverseProcTable(void);
36 #endif /* AFS_GCPAGS */
37
38 /* afs_osi_pag.c */
39 extern afs_uint32 genpag(void);
40 extern afs_uint32 getpag(void);
41 #if defined(AFS_OSF_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_FBSD_ENV)
42 extern int AddPag(struct proc *p, afs_int32 aval, struct AFS_UCRED **credpp);
43 #else   /* AFS_OSF_ENV || AFS_FBSD_ENV */
44 extern int AddPag(afs_int32 aval, struct AFS_UCRED **credpp);
45 #endif
46 extern afs_uint32 afs_get_pag_from_groups(gid_t g0, gid_t g1);
47 extern void afs_get_groups_from_pag(afs_uint32 pag, gid_t *g0p, gid_t *g1p);
48 extern afs_int32 PagInCred(const struct AFS_UCRED *cred);
49
50 /* OS/osi_sleep.c */
51 extern void afs_osi_InitWaitHandle(struct afs_osi_WaitHandle *achandle);
52 extern void afs_osi_CancelWait(struct afs_osi_WaitHandle *achandle);
53 extern int afs_osi_Wait(afs_int32 ams, struct afs_osi_WaitHandle *ahandle, int aintok);
54
55 /* afs_osifile.c */
56 #ifdef AFS_SGI62_ENV
57 extern void *osi_UFSOpen(ino_t);
58 #else
59 extern void *osi_UFSOpen();
60 #endif
61
62 /* afs_server.c */
63 extern struct server *afs_FindServer (afs_int32 aserver, ushort aport,
64                                      afsUUID *uuidp, afs_int32 locktype);
65 extern struct server *afs_GetServer(afs_uint32 *aserver, afs_int32 nservers,
66                                     afs_int32 acell, u_short aport,
67                                     afs_int32 locktype, afsUUID *uuidp,
68                                     afs_int32 addr_uniquifier);
69 extern void afs_MarkServerUpOrDown(struct srvAddr *sa, int a_isDown);
70 extern void afs_ServerDown(struct srvAddr *sa);
71
72
73 /* afs_user.c */
74 extern struct unixuser *afs_FindUser(afs_int32 auid, afs_int32 acell, afs_int32 locktype);
75 #if AFS_GCPAGS
76 extern afs_int32 afs_GCPAGs(afs_int32 *ReleasedCount);
77 extern void afs_GCPAGs_perproc_func(AFS_PROC *pproc);
78 #endif /* AFS_GCPAGS */
79
80 /* afs_util.c */
81 extern char *afs_cv2string(char *ttp, afs_uint32 aval);
82 extern void print_internet_address(char *preamble, struct srvAddr *sa,
83                             char *postamble, int flag);
84 extern afs_int32 afs_data_pointer_to_int32(const void *p);
85
86
87 /* afs_vcache.c */
88 void afs_vcacheInit(int astatSize);
89 extern struct vcache *afs_FindVCache(struct VenusFid *afid, afs_int32 lockit,
90                                      afs_int32 locktype, afs_int32 *retry, afs_int32 flag);
91 extern afs_int32 afs_FetchStatus(struct vcache *avc, struct VenusFid *afid,
92                              struct vrequest *areq,
93                              struct AFSFetchStatus *Outsp);
94
95 extern afs_int32 afs_FlushVCBs(afs_int32 lockit);
96 extern void afs_InactiveVCache(struct vcache *avc, struct AFS_UCRED *acred);
97 extern struct vcache *afs_LookupVCache(struct VenusFid *afid,
98                                        struct vrequest *areq,
99                                        afs_int32 *cached, afs_int32 locktype,
100                                        struct vcache *adp, char *aname);
101 extern int afs_FlushVCache(struct vcache *avc, int *slept);
102 extern struct vcache *afs_GetRootVCache(struct VenusFid *afid,
103                                         struct vrequest *areq, afs_int32 *cached,
104                                         struct volume *tvolp, afs_int32 locktype);
105 extern struct vcache *afs_NewVCache(struct VenusFid *afid,
106                                     struct server *serverp,
107                                     afs_int32 lockit, afs_int32 locktype);
108 extern int afs_VerifyVCache2(struct vcache *avc, struct vrequest *areq);
109
110
111
112 /* afs_volume.c */
113 extern struct volume *afs_FindVolume(struct VenusFid *afid, afs_int32 locktype);
114 extern void InstallVolumeEntry(struct volume *av, struct vldbentry *ve,
115                                int acell);
116 extern void InstallNVolumeEntry(struct volume *av, struct nvldbentry *ve,
117                          int acell);
118 extern void InstallUVolumeEntry(struct volume *av, struct uvldbentry *ve,
119                          int acell, struct cell *tcell, struct vrequest *areq);
120 extern void afs_ResetVolumeInfo(struct volume *tv);
121
122 #if defined(AFS_SUN5_ENV) || defined(AFS_LINUX20_ENV) || defined(AFS_AIX_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_FBSD_ENV)
123 #include "../afs/osi_prototypes.h"
124 #endif
125
126
127 #endif /* _AFS_PROTOTYPES_H_ */
128