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 _AFS_PROTOTYPES_H_
11 #define _AFS_PROTOTYPES_H_
14 extern void afs_FinalizeReq(struct vrequest *areq);
16 extern int afs_Analyze(struct conn *aconn, afs_int32 acode, struct VenusFid *afid,
17 register struct vrequest *areq, int op, afs_int32 locktype,
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);
26 extern void afs_dcacheInit(int afiles, int ablocks, int aDentries, int achunk,
30 extern void *afs_MemCacheOpen(ino_t blkno);
34 extern const struct AFS_UCRED *afs_osi_proc2cred(AFS_PROC *pr);
35 extern void afs_osi_TraverseProcTable(void);
36 #endif /* AFS_GCPAGS */
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);
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);
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);
57 extern void *osi_UFSOpen(ino_t);
59 extern void *osi_UFSOpen();
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);
74 extern struct unixuser *afs_FindUser(afs_int32 auid, afs_int32 acell, afs_int32 locktype);
76 extern afs_int32 afs_GCPAGs(afs_int32 *ReleasedCount);
77 extern void afs_GCPAGs_perproc_func(AFS_PROC *pproc);
78 #endif /* AFS_GCPAGS */
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);
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);
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);
113 extern struct volume *afs_FindVolume(struct VenusFid *afid, afs_int32 locktype);
114 extern void InstallVolumeEntry(struct volume *av, struct vldbentry *ve,
116 extern void InstallNVolumeEntry(struct volume *av, struct nvldbentry *ve,
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);
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"
127 #endif /* _AFS_PROTOTYPES_H_ */