SOLARIS: provide cache manager stats via kstat
[openafs.git] / src / afs / afs_prototypes.h
index fb8ddf4..cfae0b0 100644 (file)
@@ -55,7 +55,7 @@ extern afs_int32 afs_evenZaps;
 extern afs_int32 afs_connectBacks;
 extern unsigned long lastCallBack_vnode;
 extern unsigned int lastCallBack_dv;
-extern osi_timeval_t lastCallBack_time;
+extern osi_timeval32_t lastCallBack_time;
 extern struct interfaceAddr afs_cb_interface;
 
 extern int afs_RXCallBackServer(void);
@@ -247,8 +247,8 @@ extern afs_dcache_id_t cacheInode;
 extern struct osi_file *afs_cacheInodep;
 extern int DCHash(struct VenusFid *fid, afs_int32 chunk);
 extern int DVHash(struct VenusFid *fid);
-extern void afs_dcacheInit(int afiles, int ablocks, int aDentries, int achunk,
-                          int aflags);
+extern int afs_dcacheInit(int afiles, int ablocks, int aDentries, int achunk,
+                         int aflags);
 extern int afs_PutDCache(struct dcache *adc);
 extern void afs_FlushDCache(struct dcache *adc);
 extern void shutdown_dcache(void);
@@ -265,6 +265,7 @@ extern struct dcache *afs_FindDCache(struct vcache *avc,
 extern void afs_StoreWarn(afs_int32 acode, afs_int32 avolume,
                          afs_int32 aflags);
 extern void afs_MaybeWakeupTruncateDaemon(void);
+extern void afs_MaybeWaitForCacheDrain(void);
 extern void afs_CacheTruncateDaemon(void);
 extern void afs_AdjustSize(struct dcache *adc,
                           afs_int32 newSize);
@@ -288,6 +289,7 @@ extern struct dcache *afs_ObtainDCacheForWriting(struct vcache *avc,
                                                 int noLock);
 extern void afs_PopulateDCache(struct vcache *avc, afs_size_t apos,
                               struct vrequest *areq);
+extern int afs_IsDCacheFresh(struct dcache *adc, struct vcache *avc);
 
 /* afs_disconnected.c */
 
@@ -318,6 +320,7 @@ extern int afs_DynrootVOPRemove(struct vcache *avc, afs_ucred_t *acred,
                                char *aname);
 extern int afs_DynrootVOPSymlink(struct vcache *avc, afs_ucred_t *acred,
                                 char *aname, char *atargetName);
+extern void shutdown_dynroot(void);
 
 /* afs_error.c */
 extern void init_et_to_sys_error(void);
@@ -550,7 +553,7 @@ extern void afs_osi_Invisible(void);
 extern void shutdown_osi(void);
 extern void shutdown_osinet(void);
 extern void shutdown_osisleep(void);
-extern int afs_osi_suser(void *credp);
+extern int afs_osi_suser(afs_ucred_t *credp);
 extern void afs_osi_TraverseProcTable(void);
 #if defined(KERNEL) && !defined(UKERNEL)
 extern const afs_ucred_t *afs_osi_proc2cred(afs_proc_t * pr);
@@ -620,7 +623,6 @@ extern int osi_Active(struct vcache *avc);
 extern void osi_FlushPages(struct vcache *avc,
                           afs_ucred_t *credp);
 extern void osi_FlushText_really(struct vcache *vp);
-extern int osi_VMDirty_p(struct vcache *avc);
 #ifndef UKERNEL
 extern void osi_ReleaseVM(struct vcache *avc, afs_ucred_t *acred);
 #endif
@@ -629,9 +631,6 @@ extern void osi_ReleaseVM(struct vcache *avc, afs_ucred_t *acred);
 /* ARCH/osi_crypto.c */
 extern int osi_readRandom(void *, afs_size_t);
 
-/* ARCH/osi_misc.c */
-extern void afs_osi_SetTime(osi_timeval_t * atv);
-
 /* LINUX/osi_misc.c */
 #ifdef AFS_LINUX20_ENV
 #ifdef AFS_LINUX24_ENV
@@ -646,7 +645,7 @@ extern int uiomove(char *dp, int length, uio_flag_t rw, struct uio *uiop);
 extern void osi_linux_free_inode_pages(void);
 #endif
 extern void osi_linux_mask(void);
-extern void osi_linux_unmask(void);
+extern void osi_linux_unmaskrxk(void);
 extern int setpag(cred_t ** cr, afs_uint32 pagvalue, afs_uint32 * newpag,
                  int change_parent);
 #endif
@@ -837,7 +836,8 @@ extern int HandleIoctl(struct vcache *avc, afs_int32 acom,
 /* afs_segments.c */
 extern int afs_StoreAllSegments(struct vcache *avc,
                                struct vrequest *areq, int sync);
-extern int afs_InvalidateAllSegments(struct vcache *avc);
+extern void afs_InvalidateAllSegments(struct vcache *avc);
+extern int  afs_InvalidateAllSegments_once(struct vcache *avc);
 extern int afs_ExtendSegments(struct vcache *avc,
                              afs_size_t alen, struct vrequest *areq);
 extern int afs_TruncateAllSegments(struct vcache *avc,
@@ -911,10 +911,10 @@ extern struct afs_stats_CMPerf afs_stats_cmperf;
 extern struct afs_stats_CMFullPerf afs_stats_cmfullperf;
 extern afs_int32 afs_stats_XferSumBytes[AFS_STATS_NUM_FS_XFER_OPS];
 extern void afs_InitStats(void);
-extern void afs_GetCMStat(char **ptr, unsigned *size);
-#ifndef AFS_NOSTATS
-extern void afs_AddToMean(struct afs_MeanStats *oldMean, afs_int32 newValue);
-#endif
+
+/* ARCH/osi_kstat.c */
+extern void afs_kstat_init(void);
+extern void afs_kstat_shutdown(void);
 
 /* afs_syscall.c */
 #ifdef AFS_DARWIN100_ENV
@@ -926,9 +926,6 @@ extern int copyin_afs_ioctl(caddr_t cmarg, struct afs_ioctl *dst);
 #if defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
 #ifdef AFS_DARWIN100_ENV
 extern int afs3_syscall(afs_proc_t *p, void *args, unsigned int *retval);
-#elif (defined(AFS_FBSD90_ENV) || defined(AFS_FBSD82_ENV)) && (__FreeBSD_version < 900044)
-/* afs3_syscall prototype is in sys/sysproto.h
-   Yes, they put it in, then took it out again (renamed with a sys_ prefix) */
 #elif defined(AFS_FBSD_ENV)
 extern int afs3_syscall(struct thread *p, void *args);
 #elif defined(AFS_NBSD50_ENV)
@@ -965,7 +962,6 @@ extern int afs_ExtractTokensForPioctl(struct tokenJar *, time_t,
 extern void uafs_Shutdown(void);
 extern void osi_ReleaseVM(struct vcache *avc, int len,
                          afs_ucred_t *credp);
-extern int osi_GetTime(struct timeval *tv);
 extern int iodone(struct usr_buf *bp);
 extern int usr_ioctl(void);
 extern int lookupname(char *fnamep, int segflg, int followlink,
@@ -1028,7 +1024,6 @@ extern void print_internet_address(char *preamble, struct srvAddr *sa,
                                   struct rx_connection *rxconn);
 extern afs_int32 afs_data_pointer_to_int32(const void *p);
 
-extern void afs_CheckLocks(void);
 extern int afs_badop(void);
 extern int afs_noop(void);
 extern afs_int32 afs_data_pointer_to_int32(const void *p);
@@ -1048,10 +1043,12 @@ extern void afs_warnuser(char *fmt, ...)
 extern void afs_warnall(char *fmt, ...)
        AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
 #endif
+extern void afs_WarnENOSPC(void);
 
 /* afs_vcache.c */
 extern int VCHash(struct VenusFid *fid);
 extern int VCHashV(struct VenusFid *fid);
+extern int afs_VCacheStressed(void);
 extern int afs_ShakeLooseVCaches(afs_int32 anumber);
 extern afs_int32 afs_maxvcount;
 extern afs_int32 afs_vcount;
@@ -1085,13 +1082,12 @@ extern afs_int32 afs_FlushVCBs(afs_int32 lockit);
 extern void afs_InactiveVCache(struct vcache *avc, afs_ucred_t *acred);
 extern struct vcache *afs_LookupVCache(struct VenusFid *afid,
                                       struct vrequest *areq,
-                                      afs_int32 * cached, struct vcache *adp,
+                                      struct vcache *adp,
                                       char *aname);
 extern void afs_FlushAllVCaches(void);
 extern int afs_FlushVCache(struct vcache *avc, int *slept);
 extern struct vcache *afs_GetRootVCache(struct VenusFid *afid,
                                        struct vrequest *areq,
-                                       afs_int32 * cached,
                                        struct volume *tvolp);
 extern struct vcache *afs_NewVCache(struct VenusFid *afid,
                                    struct server *serverp);
@@ -1099,8 +1095,7 @@ extern struct vcache *afs_NewBulkVCache(struct VenusFid *afid,
                                        struct server *serverp, int seq);
 extern int afs_VerifyVCache2(struct vcache *avc, struct vrequest *areq);
 extern struct vcache *afs_GetVCache(struct VenusFid *afid,
-                                   struct vrequest *areq, afs_int32 * cached,
-                                   struct vcache *avc);
+                                   struct vrequest *areq);
 extern void afs_PutVCache(struct vcache *avc);
 extern int afs_RefVCache(struct vcache *avc);