linux-updates-20060811
[openafs.git] / src / afs / afs_prototypes.h
index 07ae65a..97d3fae 100644 (file)
 #define _AFS_PROTOTYPES_H_
 
 /* afs_analyze.c */
-extern void init_et_to_sys_error(void);
-extern void afs_FinalizeReq(struct vrequest *areq);
 extern int afs_Analyze(register struct conn *aconn, afs_int32 acode,
                       struct VenusFid *afid, register struct vrequest *areq,
                       int op, afs_int32 locktype, struct cell *cellp);
-extern int afs_CheckCode(afs_int32 acode, struct vrequest *areq, int where);
-extern void afs_CopyError(register struct vrequest *afrom,
-                         register struct vrequest *ato);
-extern void init_sys_error_to_et(void);
 
 /* afs_axscache.c */
 extern afs_rwlock_t afs_xaxs;
@@ -31,12 +25,12 @@ extern void afs_FreeAllAxs(struct axscache **headp);
 
 /* afs_buffer.c */
 extern void DInit(int abuffers);
-extern void *DRead(register afs_inode_t * fid, register int page);
+extern void *DRead(register struct dcache * fid, register int page);
 extern void DRelease(register struct buffer *bp, int flag);
 extern int DVOffset(register void *ap);
-extern void DZap(afs_inode_t * fid);
+extern void DZap(struct dcache * fid);
 extern void DFlush(void);
-extern void *DNew(register afs_inode_t * fid, register int page);
+extern void *DNew(register struct dcache * fid, register int page);
 extern void shutdown_bufferpackage(void);
 
 /* afs_call.c */
@@ -45,82 +39,12 @@ extern afs_int32 afs_setTime;
 extern char afs_rootVolumeName[64];
 extern void afs_shutdown(void);
 extern void afs_FlushCBs(void);
-extern struct afs_icl_set *afs_icl_allSets;
-extern int afs_icl_CreateLog(char *name, afs_int32 logSize,
-                            struct afs_icl_log **outLogpp);
-extern int afs_icl_CreateLogWithFlags(char *name, afs_int32 logSize,
-                                     afs_uint32 flags,
-                                     struct afs_icl_log **outLogpp);
-extern int afs_icl_CopyOut(register struct afs_icl_log *logp,
-                          afs_int32 * bufferp, afs_int32 * bufSizep,
-                          afs_uint32 * cookiep, afs_int32 * flagsp);
-extern int afs_icl_GetLogParms(struct afs_icl_log *logp, afs_int32 * maxSizep,
-                              afs_int32 * curSizep);
-extern int afs_icl_LogHold(register struct afs_icl_log *logp);
-extern int afs_icl_LogHoldNL(register struct afs_icl_log *logp);
-extern int afs_icl_LogUse(register struct afs_icl_log *logp);
-extern int afs_icl_LogFreeUse(register struct afs_icl_log *logp);
-extern int afs_icl_LogSetSize(register struct afs_icl_log *logp,
-                             afs_int32 logSize);
-extern int afs_icl_ZapLog(register struct afs_icl_log *logp);
-extern int afs_icl_LogRele(register struct afs_icl_log *logp);
-extern int afs_icl_LogReleNL(register struct afs_icl_log *logp);
-extern int afs_icl_ZeroLog(register struct afs_icl_log *logp);
-extern int afs_icl_LogFree(register struct afs_icl_log *logp);
-extern struct afs_icl_log *afs_icl_FindLog(char *name);
-extern int
-  afs_icl_EnumerateLogs(int (*aproc)
-
-                         (char *name, char *arock, struct afs_icl_log * tp),
-                       char *arock);
-extern int afs_icl_CreateSet(char *name, struct afs_icl_log *baseLogp,
-                            struct afs_icl_log *fatalLogp,
-                            struct afs_icl_set **outSetpp);
-extern int afs_icl_CreateSetWithFlags(char *name,
-                                     struct afs_icl_log *baseLogp,
-                                     struct afs_icl_log *fatalLogp,
-                                     afs_uint32 flags,
-                                     struct afs_icl_set **outSetpp);
-extern int afs_icl_SetEnable(struct afs_icl_set *setp, afs_int32 eventID,
-                            int setValue);
-extern int afs_icl_GetEnable(struct afs_icl_set *setp, afs_int32 eventID,
-                            int *getValuep);
-extern int afs_icl_ZeroSet(struct afs_icl_set *setp);
-extern int
-  afs_icl_EnumerateSets(int (*aproc)
-
-                         (char *name, char *arock, struct afs_icl_log * tp),
-                       char *arock);
-extern int afs_icl_AddLogToSet(struct afs_icl_set *setp,
-                              struct afs_icl_log *newlogp);
-extern int afs_icl_SetSetStat(struct afs_icl_set *setp, int op);
-extern int afs_icl_SetHold(register struct afs_icl_set *setp);
-extern int afs_icl_ZapSet(register struct afs_icl_set *setp);
-extern int afs_icl_SetRele(register struct afs_icl_set *setp);
-extern int afs_icl_SetFree(register struct afs_icl_set *setp);
-extern struct afs_icl_set *afs_icl_FindSet(char *name);
-
-extern int afs_icl_Event4(register struct afs_icl_set *setp,
-                         afs_int32 eventID, afs_int32 lAndT, long p1,
-                         long p2, long p3, long p4);
-extern int afs_icl_Event3(register struct afs_icl_set *setp,
-                         afs_int32 eventID, afs_int32 lAndT, long p1,
-                         long p2, long p3);
-extern int afs_icl_Event2(register struct afs_icl_set *setp,
-                         afs_int32 eventID, afs_int32 lAndT, long p1,
-                         long p2);
-extern int afs_icl_Event1(register struct afs_icl_set *setp,
-                         afs_int32 eventID, afs_int32 lAndT, long p1);
-extern int afs_icl_Event0(register struct afs_icl_set *setp,
-                         afs_int32 eventID, afs_int32 lAndT);
-extern void afs_icl_AppendRecord(register struct afs_icl_log *logp,
-                                afs_int32 op, afs_int32 types, long p1,
-                                long p2, long p3, long p4);
-
 extern int afs_CheckInit(void);
 extern void afs_shutdown(void);
 extern void shutdown_afstest(void);
 extern void afs_shutdown_BKG(void);
+extern int afs_syscall_call(long parm, long parm2, long parm3,
+                           long parm4, long parm5, long parm6);
 
 
 /* afs_callback.c */
@@ -196,6 +120,8 @@ extern void afs_DequeueCallback(struct vcache *avc);
 
 /* afs_cell.c */
 extern afs_rwlock_t afs_xcell;
+extern struct afs_q CellLRU;           
+
 extern void afs_CellInit(void);
 extern void shutdown_cell(void);
 extern int afs_cellname_init(ino_t inode, int lookupcode);
@@ -206,6 +132,7 @@ extern afs_int32 afs_NewCell(char *acellName, afs_int32 * acellHosts,
 extern afs_int32 afs_SetPrimaryCell(char *acellName);
 extern struct cell *afs_GetCell(afs_int32 acell, afs_int32 locktype);
 extern struct cell *afs_GetCellStale(afs_int32 acell, afs_int32 locktype);
+extern struct cell *afs_GetCellByHandle(void *handle, afs_int32 locktype);
 extern struct cell *afs_GetCellByIndex(afs_int32 cellidx, afs_int32 locktype);
 extern struct cell *afs_GetCellByName(char *acellName, afs_int32 locktype);
 extern struct cell *afs_GetPrimaryCell(afs_int32 locktype);
@@ -266,7 +193,7 @@ extern struct afs_osi_WaitHandle AFS_WaitHandler, AFS_CSWaitHandler;
 extern afs_int32 afs_gcpags;
 extern afs_int32 afs_gcpags_procsize;
 extern afs_int32 afs_CheckServerDaemonStarted;
-extern afs_int32 PROBE_INTERVAL;
+extern afs_int32 afs_probe_interval;
 
 extern void afs_Daemon(void);
 extern struct brequest *afs_BQueue(register short aopcode,
@@ -275,6 +202,7 @@ extern struct brequest *afs_BQueue(register short aopcode,
                                   struct AFS_UCRED *acred,
                                   afs_size_t asparm0, afs_size_t asparm1,
                                   void *apparm0);
+extern void afs_SetCheckServerNATmode(int isnat);
 extern void afs_CheckServerDaemon(void);
 extern int afs_CheckRootVolume(void);
 extern void afs_BRelease(register struct brequest *ab);
@@ -295,6 +223,7 @@ extern afs_int32 afs_blocksUsed;
 extern afs_int32 afs_blocksDiscarded;
 extern int afs_WaitForCacheDrain;
 extern int cacheDiskType;
+extern afs_uint32 afs_tpct1, afs_tpct2, splitdcache;
 extern unsigned char *afs_indexFlags;
 extern struct afs_cacheOps *afs_cacheType;
 extern ino_t cacheInode;
@@ -338,14 +267,22 @@ extern int afs_InitCacheFile(char *afile, ino_t ainode);
 
 /* afs_dynroot.c */
 extern int afs_IsDynrootFid(struct VenusFid *fid);
+extern int afs_IsDynrootMountFid(struct VenusFid *fid);
+extern int afs_IsDynrootAnyFid(struct VenusFid *fid);
 extern void afs_GetDynrootFid(struct VenusFid *fid);
+extern void afs_GetDynrootMountFid(struct VenusFid *fid);
 extern int afs_IsDynroot(struct vcache *avc);
+extern int afs_IsDynrootMount(struct vcache *avc);
+extern int afs_IsDynrootAny(struct vcache *avc);
 extern void afs_DynrootInvalidate(void);
 extern void afs_GetDynroot(char **dynrootDir, int *dynrootLen,
                           struct AFSFetchStatus *status);
+extern void afs_GetDynrootMount(char **dynrootDir, int *dynrootLen,
+                          struct AFSFetchStatus *status);
 extern void afs_PutDynroot(void);
 extern int afs_DynrootNewVnode(struct vcache *avc,
                               struct AFSFetchStatus *status);
+extern int afs_InitDynroot(void);
 extern int afs_SetDynrootEnable(int enable);
 extern int afs_GetDynrootEnable(void);
 extern int afs_DynrootVOPRemove(struct vcache *avc, struct AFS_UCRED *acred,
@@ -353,10 +290,96 @@ extern int afs_DynrootVOPRemove(struct vcache *avc, struct AFS_UCRED *acred,
 extern int afs_DynrootVOPSymlink(struct vcache *avc, struct AFS_UCRED *acred,
                                 char *aname, char *atargetName);
 
+/* afs_error.c */
+extern void init_et_to_sys_error(void);
+extern afs_int32 et_to_sys_error(afs_int32 in);
+extern void afs_FinalizeReq(struct vrequest *areq);
+extern int afs_CheckCode(afs_int32 acode, struct vrequest *areq, int where);
+extern void afs_CopyError(register struct vrequest *afrom,
+                         register struct vrequest *ato);
+extern void init_sys_error_to_et(void);
+
 /* afs_exporter.c */
 extern struct afs_exporter *root_exported;
 extern struct afs_exporter *exporter_find(int type);
 
+/* afs_icl.c */
+extern struct afs_icl_set *afs_icl_allSets;
+extern int afs_icl_InitLogs(void);
+extern int afs_icl_CreateLog(char *name, afs_int32 logSize,
+                            struct afs_icl_log **outLogpp);
+extern int afs_icl_CreateLogWithFlags(char *name, afs_int32 logSize,
+                                     afs_uint32 flags,
+                                     struct afs_icl_log **outLogpp);
+extern int afs_icl_CopyOut(register struct afs_icl_log *logp,
+                          afs_int32 * bufferp, afs_int32 * bufSizep,
+                          afs_uint32 * cookiep, afs_int32 * flagsp);
+extern int afs_icl_GetLogParms(struct afs_icl_log *logp, afs_int32 * maxSizep,
+                              afs_int32 * curSizep);
+extern int afs_icl_LogHold(register struct afs_icl_log *logp);
+extern int afs_icl_LogHoldNL(register struct afs_icl_log *logp);
+extern int afs_icl_LogUse(register struct afs_icl_log *logp);
+extern int afs_icl_LogFreeUse(register struct afs_icl_log *logp);
+extern int afs_icl_LogSetSize(register struct afs_icl_log *logp,
+                             afs_int32 logSize);
+extern int afs_icl_ZapLog(register struct afs_icl_log *logp);
+extern int afs_icl_LogRele(register struct afs_icl_log *logp);
+extern int afs_icl_LogReleNL(register struct afs_icl_log *logp);
+extern int afs_icl_ZeroLog(register struct afs_icl_log *logp);
+extern int afs_icl_LogFree(register struct afs_icl_log *logp);
+extern struct afs_icl_log *afs_icl_FindLog(char *name);
+extern int
+  afs_icl_EnumerateLogs(int (*aproc)
+
+                         (char *name, char *arock, struct afs_icl_log * tp),
+                       char *arock);
+extern int afs_icl_CreateSet(char *name, struct afs_icl_log *baseLogp,
+                            struct afs_icl_log *fatalLogp,
+                            struct afs_icl_set **outSetpp);
+extern int afs_icl_CreateSetWithFlags(char *name,
+                                     struct afs_icl_log *baseLogp,
+                                     struct afs_icl_log *fatalLogp,
+                                     afs_uint32 flags,
+                                     struct afs_icl_set **outSetpp);
+extern int afs_icl_SetEnable(struct afs_icl_set *setp, afs_int32 eventID,
+                            int setValue);
+extern int afs_icl_GetEnable(struct afs_icl_set *setp, afs_int32 eventID,
+                            int *getValuep);
+extern int afs_icl_ZeroSet(struct afs_icl_set *setp);
+extern int
+  afs_icl_EnumerateSets(int (*aproc)
+
+                         (char *name, char *arock, struct afs_icl_log * tp),
+                       char *arock);
+extern int afs_icl_AddLogToSet(struct afs_icl_set *setp,
+                              struct afs_icl_log *newlogp);
+extern int afs_icl_SetSetStat(struct afs_icl_set *setp, int op);
+extern int afs_icl_SetHold(register struct afs_icl_set *setp);
+extern int afs_icl_ZapSet(register struct afs_icl_set *setp);
+extern int afs_icl_SetRele(register struct afs_icl_set *setp);
+extern int afs_icl_SetFree(register struct afs_icl_set *setp);
+extern struct afs_icl_set *afs_icl_FindSet(char *name);
+
+extern int afs_icl_Event4(register struct afs_icl_set *setp,
+                         afs_int32 eventID, afs_int32 lAndT, long p1,
+                         long p2, long p3, long p4);
+extern int afs_icl_Event3(register struct afs_icl_set *setp,
+                         afs_int32 eventID, afs_int32 lAndT, long p1,
+                         long p2, long p3);
+extern int afs_icl_Event2(register struct afs_icl_set *setp,
+                         afs_int32 eventID, afs_int32 lAndT, long p1,
+                         long p2);
+extern int afs_icl_Event1(register struct afs_icl_set *setp,
+                         afs_int32 eventID, afs_int32 lAndT, long p1);
+extern int afs_icl_Event0(register struct afs_icl_set *setp,
+                         afs_int32 eventID, afs_int32 lAndT);
+extern void afs_icl_AppendRecord(register struct afs_icl_log *logp,
+                                afs_int32 op, afs_int32 types, long p1,
+                                long p2, long p3, long p4);
+extern int Afscall_icl(long opcode, long p1, long p2, long p3, long p4,
+                      long *retval);
+
+
 /* afs_init.c */
 extern struct cm_initparams cm_initParams;
 extern int afs_resourceinit_flag;
@@ -364,6 +387,7 @@ extern afs_rwlock_t afs_puttofileLock;
 extern char *afs_sysname;
 extern char *afs_sysnamelist[MAXNUMSYSNAMES];
 extern int afs_sysnamecount;
+extern int afs_sysnamegen;
 extern afs_int32 cacheInfoModTime;
 extern int afs_CacheInit(afs_int32 astatSize, afs_int32 afiles,
                         afs_int32 ablocks, afs_int32 aDentries,
@@ -424,28 +448,31 @@ extern void shutdown_mariner(void);
 
 /* afs_memcache.c */
 extern int afs_InitMemCache(int blkCount, int blkSize, int flags);
-extern int afs_MemCacheClose(char *file);
+extern int afs_MemCacheClose(struct osi_file *file);
+#if defined(AFS_SUN57_64BIT_ENV) || defined(AFS_SGI62_ENV)
 extern void *afs_MemCacheOpen(ino_t blkno);
-extern int afs_MemReadBlk(register struct memCacheEntry *mceP, int offset,
-                         char *dest, int size);
+#else
+extern void *afs_MemCacheOpen(afs_int32 blkno);
+#endif
+extern int afs_MemReadBlk(register struct osi_file *fP, int offset,
+                         void *dest, int size);
 extern int afs_MemReadvBlk(register struct memCacheEntry *mceP, int offset,
                           struct iovec *iov, int nio, int size);
 extern int afs_MemReadUIO(ino_t blkno, struct uio *uioP);
-extern int afs_MemWriteBlk(register struct memCacheEntry *mceP, int offset,
-                          char *src, int size);
+extern int afs_MemWriteBlk(register struct osi_file *fP, int offset,
+                          void *src, int size);
 extern int afs_MemWritevBlk(register struct memCacheEntry *mceP, int offset,
                            struct iovec *iov, int nio, int size);
 extern int afs_MemWriteUIO(ino_t blkno, struct uio *uioP);
-extern int afs_MemCacheTruncate(register struct memCacheEntry *mceP,
+extern int afs_MemCacheTruncate(register struct osi_file *fP,
                                int size);
 extern int afs_MemCacheStoreProc(register struct rx_call *acall,
-                                register struct memCacheEntry *mceP,
+                                register struct osi_file *fP,
                                 register afs_int32 alen, struct vcache *avc,
                                 int *shouldWake, afs_size_t * abytesToXferP,
-                                afs_size_t * abytesXferredP,
-                                afs_int32 length);
+                                afs_size_t * abytesXferredP);
 extern int afs_MemCacheFetchProc(register struct rx_call *acall,
-                                register struct memCacheEntry *mceP,
+                                register struct osi_file *fP,
                                 afs_size_t abase, struct dcache *adc,
                                 struct vcache *avc,
                                 afs_size_t * abytesToXferP,
@@ -457,6 +484,11 @@ extern void shutdown_memcache(void);
 /* afs_nfsclnt.c */
 extern struct afs_exporter *afs_nfsexported;
 extern struct afs_exporter *afs_nfsexporter;
+extern void afs_nfsclient_init(void);
+extern int afs_nfsclient_reqhandler(struct afs_exporter *exporter,
+                                   struct AFS_UCRED **cred,
+                                   afs_int32 host, afs_int32 *pagparam,
+                                   struct afs_exporter **outexporter);
 
 /* afs_osi.c */
 extern afs_lock_t afs_ftf;
@@ -464,27 +496,12 @@ extern void afs_osi_Invisible(void);
 extern void afs_osi_RxkRegister(void);
 extern void afs_osi_MaskSignals(void);
 extern void afs_osi_UnmaskRxkSignals(void);
-extern void *afs_osi_Alloc(size_t x);
-#ifndef afs_osi_Alloc_NoSleep
-extern void *afs_osi_Alloc_NoSleep(size_t x);
-#endif
-#ifndef afs_osi_Free
-extern void afs_osi_Free(void *x, size_t asize);
-#endif
-extern void afs_osi_FreeStr(char *x);
+extern void afs_osi_MaskUserLoop(void);
 extern void osi_Init(void);
-extern int osi_Active(register struct vcache *avc);
-extern void osi_FlushPages(register struct vcache *avc,
-                          struct AFS_UCRED *credp);
-extern void osi_FlushText_really(register struct vcache *vp);
 extern void afs_osi_MaskSignals(void);
 extern void afs_osi_UnmaskRxkSignals(void);
 extern void afs_osi_RxkRegister(void);
 extern void afs_osi_Invisible(void);
-extern int osi_VMDirty_p(struct vcache *avc);
-#ifndef UKERNEL
-extern void osi_ReleaseVM(struct vcache *avc, struct AFS_UCRED *acred);
-#endif
 extern void shutdown_osi(void);
 extern int afs_osi_suser(void *credp);
 extern void afs_osi_TraverseProcTable(void);
@@ -492,6 +509,24 @@ extern void afs_osi_TraverseProcTable(void);
 extern const struct AFS_UCRED *afs_osi_proc2cred(AFS_PROC * pr);
 #endif
 
+/* afs_osi_alloc.c */
+#ifndef AFS_FBSD_ENV
+extern afs_lock_t osi_fsplock;
+extern afs_lock_t osi_flplock;
+#endif
+extern void *afs_osi_Alloc_debug(size_t x, char *func, int line);
+#ifndef afs_osi_Alloc_NoSleep
+extern void *afs_osi_Alloc_NoSleep(size_t x);
+#endif
+#ifndef afs_osi_Free
+extern void afs_osi_Free(void *x, size_t asize);
+#endif
+extern void afs_osi_FreeStr(char *x);
+extern void osi_FreeLargeSpace(void *adata);
+extern void osi_FreeSmallSpace(void *adata);
+extern void *osi_AllocLargeSpace(size_t size);
+extern void *osi_AllocSmallSpace(size_t size);
+
 /* afs_osi_pag.c */
 extern int afs_setpag();
 extern afs_uint32 genpag(void);
@@ -506,51 +541,39 @@ extern afs_uint32 afs_get_pag_from_groups(gid_t g0a, gid_t g1a);
 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);
 
-/* afs_osi_alloc.c */
-#ifndef AFS_FBSD_ENV
-extern afs_int32 afs_preallocs;
-extern afs_lock_t osi_fsplock;
-extern afs_lock_t osi_flplock;
-#endif
-extern void osi_FreeLargeSpace(void *adata);
-extern void osi_FreeMediumSpace(void *adata);
-extern void osi_FreeSmallSpace(void *adata);
-extern void *osi_AllocLargeSpace(size_t size);
-extern void *osi_AllocMediumSpace(size_t size);
-extern void *osi_AllocSmallSpace(size_t size);
-#ifndef osi_AllocSmall
-extern char *osi_AllocSmall(register afs_int32 size,
-                           register afs_int32 morespace);
-#endif
-
 /* afs_osi_uio.c */
 extern int afsio_copy(struct uio *ainuio, struct uio *aoutuio,
                      struct iovec *aoutvec);
 extern int afsio_trim(struct uio *auio, afs_int32 asize);
 extern int afsio_skip(struct uio *auio, afs_int32 asize);
 
+/* afs_osi_vm.c */
+extern int osi_Active(register struct vcache *avc);
+extern void osi_FlushPages(register struct vcache *avc,
+                          struct AFS_UCRED *credp);
+extern void osi_FlushText_really(register struct vcache *vp);
+extern int osi_VMDirty_p(struct vcache *avc);
+#ifndef UKERNEL
+extern void osi_ReleaseVM(struct vcache *avc, struct AFS_UCRED *acred);
+#endif
+
 
 
 /* ARCH/osi_misc.c */
-extern void osi_iput(struct inode *ip);
 extern void afs_osi_SetTime(osi_timeval_t * atv);
 
 /* LINUX/osi_misc.c */
 #ifdef AFS_LINUX20_ENV
 #ifdef AFS_LINUX24_ENV
 extern int osi_lookupname(char *aname, uio_seg_t seg, int followlink,
-                         vnode_t ** dirvpp, struct dentry **dpp);
+                         struct dentry **dpp);
 extern int osi_InitCacheInfo(char *aname);
-extern int osi_rdwr(int rw, struct osi_file *file, caddr_t addrp,
-                   size_t asize, size_t * resid);
-extern int osi_file_uio_rdwr(struct osi_file *osifile, uio_t * uiop, int rw);
-extern void setup_uio(uio_t * uiop, struct iovec *iovecp, char *buf,
+extern int osi_rdwr(struct osi_file *osifile, uio_t * uiop, int rw);
+extern void setup_uio(uio_t * uiop, struct iovec *iovecp, const char *buf,
                      afs_offs_t pos, int count, uio_flag_t flag,
                      uio_seg_t seg);
 extern int uiomove(char *dp, int length, uio_flag_t rw, uio_t * uiop);
 extern void osi_linux_free_inode_pages(void);
-extern void osi_clear_inode(struct inode *ip);
-extern void check_bad_parent(struct dentry *dp);
 #endif
 extern void osi_linux_mask(void);
 extern void osi_linux_unmask(void);
@@ -658,8 +681,24 @@ extern struct vfs *afs_globalVFS;
 extern struct vcache *afs_globalVp;
 #ifdef AFS_LINUX20_ENV
 extern void vcache2inode(struct vcache *avc);
+extern void vcache2fakeinode(struct vcache *rootvp, struct vcache *mpvp);
 #endif
 
+/* afs_pag_call.c */
+extern afs_int32 afs_nfs_server_addr;
+extern void afspag_Init(afs_int32 nfs_server_addr);
+extern void afspag_Shutdown(void);
+
+/* afs_pag_cred.c */
+extern afs_rwlock_t afs_xpagcell;
+extern afs_rwlock_t afs_xpagsys;
+extern int afspag_PUnlog(char *ain, afs_int32 ainSize,
+                        struct AFS_UCRED **acred);
+extern int afspag_PSetTokens(char *ain, afs_int32 ainSize,
+                            struct AFS_UCRED **acred);
+extern int afspag_PSetSysName(char *ain, afs_int32 ainSize,
+                              struct AFS_UCRED **acred);
+
 /* afs_pioctl.c */
 extern struct VenusFid afs_rootFid;
 extern afs_int32 afs_waitForever;
@@ -685,7 +724,7 @@ extern struct srvAddr *afs_srvAddrs[NSERVERS];
 extern struct server *afs_servers[NSERVERS];
 extern int afs_totalServers;
 extern struct server *afs_setTimeHost;
-extern struct server *afs_FindServer(afs_int32 aserver, ushort aport,
+extern struct server *afs_FindServer(afs_int32 aserver, afs_uint16 aport,
                                     afsUUID * uuidp, afs_int32 locktype);
 extern struct server *afs_GetServer(afs_uint32 * aserver, afs_int32 nservers,
                                    afs_int32 acell, u_short aport,
@@ -704,13 +743,15 @@ extern void afs_FlushServer(struct server *srvp);
 extern void afs_RemoveSrvAddr(struct srvAddr *sap);
 extern void afs_ActivateServer(struct srvAddr *sap);
 #ifdef AFS_USERSPACE_IP_ADDR
-extern int afsi_SetServerIPRank(struct srvAddr *sa, afs_int32 addr,
+extern void afsi_SetServerIPRank(struct srvAddr *sa, afs_int32 addr,
                                afs_uint32 subnetmask);
 #else
 #if (!defined(AFS_SUN5_ENV)) && defined(USEIFADDR)
 void afsi_SetServerIPRank(struct srvAddr *sa, struct in_ifaddr *ifa);
 #endif
 #endif
+extern int afs_HaveCallBacksFrom(struct server *aserver);
+extern void shutdown_server(void);
 
 
 
@@ -728,6 +769,8 @@ extern int osi_dnlc_purgevol(struct VenusFid *fidp);
 extern int osi_dnlc_init(void);
 extern int osi_dnlc_shutdown(void);
 
+/* afs_pag_cred.c */
+extern void afspag_SetPrimaryCell(char *acell);
 
 /* afs_stat.c */
 extern struct afs_CMStats afs_cmstats;
@@ -740,6 +783,9 @@ extern void afs_GetCMStat(char **ptr, unsigned *size);
 extern void afs_AddToMean(struct afs_MeanStats *oldMean, afs_int32 newValue);
 #endif
 
+/* afs_syscall.c */
+extern int copyin_afs_ioctl(caddr_t cmarg, struct afs_ioctl *dst);
+
 
 /* UKERNEL/afs_usrops.c */
 #ifdef UKERNEL
@@ -773,6 +819,7 @@ extern void afs_SetPrimary(register struct unixuser *au, register int aflag);
 
 
 /* afs_util.c */
+extern afs_int32 afs_calc_inum (afs_int32 volume, afs_int32 vnode);
 #ifndef afs_cv2string
 extern char *afs_cv2string(char *ttp, afs_uint32 aval);
 #endif
@@ -814,17 +861,18 @@ extern afs_int32 afs_data_pointer_to_int32(const void *p);
 extern afs_int32 afs_maxvcount;
 extern afs_int32 afs_vcount;
 extern int afsvnumbers;
+extern afs_rwlock_t afs_xvreclaim;
 extern afs_rwlock_t afs_xvcache;
 extern afs_lock_t afs_xvcb;
-extern struct vcache *freeVCList;
-extern struct vcache *Initial_freeVCList;
 extern struct afs_q VLRU;
 extern afs_int32 vcachegen;
 extern unsigned int afs_paniconwarn;
-extern struct vcache *afs_vhashT[VCSIZE];
+extern struct afs_q afs_vhashTV[VCSIZE];
 extern afs_int32 afs_bulkStatsLost;
 extern int afs_norefpanic;
+extern struct vcache *ReclaimedVCList;
 
+extern void afs_FlushReclaimedVcaches(void);
 void afs_vcacheInit(int astatSize);
 extern struct vcache *afs_FindVCache(struct VenusFid *afid, afs_int32 * retry,
                                     afs_int32 flag);
@@ -855,7 +903,7 @@ extern void afs_ProcessFS(register struct vcache *avc,
                          struct vrequest *areq);
 extern struct afs_cbr *afs_AllocCBR(void);
 extern int afs_FreeCBR(register struct afs_cbr *asp);
-extern int afs_RemoveVCB(register struct VenusFid *afid);
+extern void afs_RemoveVCB(register struct VenusFid *afid);
 extern void afs_FlushActiveVcaches(register afs_int32 doflocks);
 extern int afs_WriteVCache(register struct vcache *avc,
                           register struct AFSStoreStatus *astatus,
@@ -950,8 +998,6 @@ extern int afs_TryEvalFakeStat(struct vcache **avcp,
                               struct vrequest *areq);
 extern void afs_PutFakeStat(struct afs_fakestat_state *state);
 extern int afs_ENameOK(register char *aname);
-extern int afs_getsysname(register struct vrequest *areq,
-                         register struct vcache *adp, register char *bufp);
 extern void Check_AtSys(register struct vcache *avc, const char *aname,
                        struct sysname_info *state, struct vrequest *areq);
 extern int Next_AtSys(register struct vcache *avc, struct vrequest *areq,
@@ -981,6 +1027,8 @@ extern int afs_MemRead(register struct vcache *avc, struct uio *auio,
 extern int afs_UFSRead(register struct vcache *avc, struct uio *auio,
                       struct AFS_UCRED *acred, daddr_t albn,
                       struct buf **abpp, int noLock);
+extern void afs_PrefetchChunk(struct vcache *avc, struct dcache *adc,
+                             struct AFS_UCRED *acred, struct vrequest *areq);
 
 
 /* VNOPS/afs_vnop_readdir.c */
@@ -1082,10 +1130,11 @@ extern u_short afs_uuid_hash(afsUUID * uuid);
 /* MOVE THEM TO APPROPRIATE LOCATIONS */
 extern afs_int32 RXAFSCB_ExecuteRequest(struct rx_call *acall);
 extern afs_int32 RXSTATS_ExecuteRequest(struct rx_call *acall);
+extern afs_int32 PAGCB_ExecuteRequest(struct rx_call *acall);
 
 
 
-#if defined(AFS_SUN5_ENV) || defined(AFS_LINUX20_ENV) || defined(AFS_AIX_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV) || defined(AFS_HPUX_ENV) || defined(AFS_SGI62_ENV)
+#if defined(AFS_SUN5_ENV) || defined(AFS_LINUX20_ENV) || defined(AFS_AIX_ENV) || defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV) || defined(AFS_HPUX_ENV) || defined(AFS_SGI62_ENV) || defined(AFS_OSF_ENV)
 #include "osi_prototypes.h"
 #endif