Add new SetTokenEx pioctl
[openafs.git] / src / afs / afs_stats.h
index 2f30216..3a9d474 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * 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
@@ -81,6 +81,18 @@ struct afs_MeanStats {
  * 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 */
@@ -640,10 +652,9 @@ struct afs_CMCallStats {
     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 {
@@ -807,9 +818,9 @@ struct afs_stats_CMPerf {
     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.
@@ -999,7 +1010,7 @@ struct afs_stats_xferData {
  * 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:
  *