#define _AFS_PROTOTYPES_H_
/* afs_analyze.c */
-extern int afs_Analyze(register struct conn *aconn, afs_int32 acode,
+extern int afs_Analyze(register struct afs_conn *aconn, afs_int32 acode,
struct VenusFid *afid, register struct vrequest *areq,
int op, afs_int32 locktype, struct cell *cellp);
extern int DVOffset(register void *ap);
extern void DZap(struct dcache * fid);
extern void DFlush(void);
+extern void DFlushDCache(struct dcache *);
extern void *DNew(register struct dcache * fid, register int page);
extern void shutdown_bufferpackage(void);
extern afs_int32 cryptall;
extern afs_rwlock_t afs_xinterface;
extern afs_rwlock_t afs_xconn;
-extern struct conn *afs_Conn(register struct VenusFid *afid,
+extern struct afs_conn *afs_Conn(register struct VenusFid *afid,
register struct vrequest *areq,
afs_int32 locktype);
-extern struct conn *afs_ConnBySA(struct srvAddr *sap, unsigned short aport,
+extern struct afs_conn *afs_ConnBySA(struct srvAddr *sap, unsigned short aport,
afs_int32 acell, struct unixuser *tu,
int force_if_down, afs_int32 create,
afs_int32 locktype);
-extern struct conn *afs_ConnByMHosts(struct server *ahosts[],
+extern struct afs_conn *afs_ConnByMHosts(struct server *ahosts[],
unsigned short aport, afs_int32 acell,
register struct vrequest *areq,
afs_int32 locktype);
-extern struct conn *afs_ConnByHost(struct server *aserver,
+extern struct afs_conn *afs_ConnByHost(struct server *aserver,
unsigned short aport, afs_int32 acell,
struct vrequest *areq, int aforce,
afs_int32 locktype);
-extern void afs_PutConn(register struct conn *ac, afs_int32 locktype);
+extern void afs_PutConn(register struct afs_conn *ac, afs_int32 locktype);
extern void ForceNewConnections(struct srvAddr *sap);
extern int afs_wakeup(register struct vcache *avc);
extern int afs_InitCacheFile(char *afile, ino_t ainode);
extern int afs_DCacheMissingChunks(struct vcache *avc);
+extern struct dcache *afs_ObtainDCacheForWriting(struct vcache *avc,
+ afs_size_t filePos,
+ afs_size_t len,
+ struct vrequest *areq,
+ int noLock);
+extern void afs_PopulateDCache(struct vcache *avc, afs_size_t apos,
+ struct vrequest *areq);
/* afs_disconnected.c */
extern int afs_osi_suser(void *credp);
extern void afs_osi_TraverseProcTable(void);
#if defined(KERNEL) && !defined(UKERNEL) && defined(AFS_PROC)
-extern const struct AFS_UCRED *afs_osi_proc2cred(AFS_PROC * pr);
+extern struct AFS_UCRED *afs_osi_proc2cred(AFS_PROC * pr);
#endif
/* afs_osi_alloc.c */
#ifndef afs_osi_Free
extern void afs_osi_Free(void *x, size_t asize);
#endif
+#if !defined(AFS_OBSD44_ENV)
extern void afs_osi_FreeStr(char *x);
+#endif
extern void osi_FreeLargeSpace(void *adata);
extern void osi_FreeSmallSpace(void *adata);
extern void *osi_AllocLargeSpace(size_t size);
#endif
#endif
extern void afs_get_groups_from_pag(afs_uint32 pag, gid_t * g0p, gid_t * g1p);
-extern afs_int32 PagInCred(const struct AFS_UCRED *cred);
+extern afs_int32 PagInCred(struct AFS_UCRED *cred);
/* afs_osi_uio.c */
extern int afsio_copy(struct uio *ainuio, struct uio *aoutuio,
extern int afs_StoreAllSegments(register struct vcache *avc,
struct vrequest *areq, int sync);
extern int afs_InvalidateAllSegments(struct vcache *avc);
+extern int afs_ExtendSegments(struct vcache *avc,
+ afs_size_t alen, struct vrequest *areq);
extern int afs_TruncateAllSegments(register struct vcache *avc,
afs_size_t alen, struct vrequest *areq,
struct AFS_UCRED *acred);
extern int afs_HaveCallBacksFrom(struct server *aserver);
extern void shutdown_server(void);
extern void afs_RemoveAllConns(void);
-
+extern void afs_MarkAllServersUp(void);
/* afs_osidnlc.c */
extern int osi_dnlc_enter(struct vcache *adp, char *aname, struct vcache *avc,
extern int afsvnumbers;
extern afs_rwlock_t afs_xvreclaim;
extern afs_rwlock_t afs_xvcache;
+extern afs_rwlock_t afs_xvcdirty;
extern afs_lock_t afs_xvcb;
extern struct afs_q VLRU;
extern afs_int32 vcachegen;
extern afs_int32 afs_bulkStatsLost;
extern int afs_norefpanic;
extern struct vcache *ReclaimedVCList;
+extern ino_t vcacheMetaInode;
+extern struct osi_file *afs_vcacheMetaInodep;
extern void afs_FlushReclaimedVcaches(void);
void afs_vcacheInit(int astatSize);
struct AFSCallBack *CallBackp,
struct server **serverp,
struct AFSVolSync *tsyncp);
+extern void afs_ResetVCache(struct vcache *, struct AFS_UCRED *);
extern afs_int32 afs_NFSFindVCache(struct vcache **avcp,
struct VenusFid *afid);
extern void afs_vcacheInit(int astatSize);
extern void shutdown_vcache(void);
extern void afs_DisconGiveUpCallbacks(void);
-
+extern void afs_ClearAllStatdFlag(void);
/* VNOPS/afs_vnop_access.c */
extern afs_int32 afs_GetAccessBits(register struct vcache *avc,
extern int afs_readdir(OSI_VC_DECL(avc), struct uio *auio,
struct AFS_UCRED *acred, int *eofp);
#elif defined(AFS_HPUX100_ENV)
-extern int afs_readdir2(OIS_VC_DECL(avc), struct uio *auio,
+extern int afs_readdir2(OSI_VC_DECL(avc), struct uio *auio,
struct AFS_UCRED *acred);
#else
extern int afs_readdir(OSI_VC_DECL(avc), struct uio *auio,
#endif
/* VNOPS/afs_vnop_strategy.c */
-#if defined(AFS_SUN5_ENV) || defined(AFS_OSF_ENV) || defined(AFS_DARWIN_ENV)
+#if defined(AFS_SUN5_ENV) || defined(AFS_OSF_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
extern int afs_ustrategy(register struct buf *adp, struct AFS_UCRED *credp);
#else
extern int afs_ustrategy(register struct buf *adp);