/*
* Copyright 2000, International Business Machines Corporation and others.
* All Rights Reserved.
- *
+ *
* This software has been released under the terms of the IBM Public
* License. For details, see the LICENSE file in the top-level source
* directory or online at http://www.openafs.org/dl/license10.html
* struct afs_CMCallStats
* This is the place where we keep records on each and every
* function call.
+ *
+ * This structure is encoded as a binary blob and thrown at the client
+ * for use by the xstat_cm interface. As the datastructure is unversioned,
+ * some rules apply;
+ * *) Never add elements to the middle of the list. Everything new
+ * must go at the end
+ * *) Never remove elements from the list. If a function dies, don't
+ * remove it's entry here (by all means, flag it as dead, though)
+ * *) Never make elements conditional on preprocessor symbols. Doing
+ * this would mean that the client has to be built with exactly
+ * the same options as you are. Which isn't a great idea.
+ *
*/
struct afs_CMCallStats {
afs_int32 C_afs_init; /* afs_aix_subr.c */
afs_int32 C_SRXAFSCB_GetCacheConfig; /* afs_callback.c */
afs_int32 C_SRXAFSCB_GetCE64; /* afs_callback.c */
afs_int32 C_SRXAFSCB_GetCellByNum; /* afs_callback.c */
-#if defined(AFS_CACHE_BYPASS)
afs_int32 C_BPrefetchNoCache; /* afs_daemons.c */
- afs_int32 C_afs_ReadNoCache; /* osi_vnodeops.c */
-#endif
+ afs_int32 C_afs_ReadNoCache; /* osi_vnodeops.c */
+ afs_int32 C_PSetTokens2; /* afs_pioctl.c */
};
struct afs_CMMeanStats {
afs_uint32 cbloops;
afs_uint32 osiread_efaults;
afs_int32 cacheBlocksDiscarded; /*# cache blocks free but not truncated */
- afs_int32 cacheBucket0_Discarded;
- afs_int32 cacheBucket1_Discarded;
- afs_int32 cacheBucket2_Discarded;
+ afs_int32 cacheBucket0_Discarded;
+ afs_int32 cacheBucket1_Discarded;
+ afs_int32 cacheBucket2_Discarded;
/*
* Spares for future expansion.
* integer portion (this will be taken care of when we ensure that y'
* is less than 1000000).
*
- * The only other non-obvious calculation involves y^2. The key to
+ * The only other non-obvious calculation involves y^2. The key to
* understanding this part of the calculation is to expand y again
* in a nonobvious manner. We do this via the following expansion:
*