fsprobe: add fsprobe_Wait function
[openafs.git] / src / fsprobe / fsprobe.h
index 22ba2b7..c3588d1 100644 (file)
@@ -1,7 +1,10 @@
 /*
- * (C) Copyright Transarc Corporation 1989
- * Licensed Materials - Property of Transarc
+ * 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
  */
 
 #ifndef __fsprobe_h
  *
  *------------------------------------------------------------------------*/
 
-#include <sys/types.h>                 /*Basic system types*/
-#include <netinet/in.h>                        /*Internet definitions*/
-#include <netdb.h>                     /*Network database library*/
-#include <sys/socket.h>                        /*Socket definitions*/
-#include <rx/rx.h>                     /*Rx definitions*/
-#include <afs/afsint.h>                        /*AFS FileServer interface*/
+#include <sys/types.h>         /*Basic system types */
+#include <netinet/in.h>                /*Internet definitions */
+#include <netdb.h>             /*Network database library */
+#include <sys/socket.h>                /*Socket definitions */
+#include <rx/rx.h>             /*Rx definitions */
+#include <afs/afsint.h>                /*AFS FileServer interface */
 #include <afs/volser.h>
 #include <afs/volint.h>
 
@@ -31,47 +34,47 @@ struct ProbeViceStatistics {
     afs_uint32 CurrentTime;
     afs_uint32 BootTime;
     afs_uint32 StartTime;
-    afs_int32    CurrentConnections;
+    afs_int32 CurrentConnections;
     afs_uint32 TotalViceCalls;
     afs_uint32 TotalFetchs;
     afs_uint32 FetchDatas;
     afs_uint32 FetchedBytes;
-    afs_int32    FetchDataRate;
+    afs_int32 FetchDataRate;
     afs_uint32 TotalStores;
     afs_uint32 StoreDatas;
     afs_uint32 StoredBytes;
-    afs_int32    StoreDataRate;
+    afs_int32 StoreDataRate;
     afs_uint32 TotalRPCBytesSent;
     afs_uint32 TotalRPCBytesReceived;
     afs_uint32 TotalRPCPacketsSent;
     afs_uint32 TotalRPCPacketsReceived;
     afs_uint32 TotalRPCPacketsLost;
-    afs_uint32       TotalRPCBogusPackets;
-    afs_int32    SystemCPU;
-    afs_int32    UserCPU;
-    afs_int32    NiceCPU;
-    afs_int32    IdleCPU;
-    afs_int32    TotalIO;
-    afs_int32    ActiveVM;
-    afs_int32    TotalVM;
-    afs_int32    EtherNetTotalErrors;
-    afs_int32    EtherNetTotalWrites;
-    afs_int32    EtherNetTotalInterupts;
-    afs_int32    EtherNetGoodReads;
-    afs_int32    EtherNetTotalBytesWritten;
-    afs_int32    EtherNetTotalBytesRead;
-    afs_int32    ProcessSize;
-    afs_int32    WorkStations;
-    afs_int32    ActiveWorkStations;
-    afs_int32    Spare1;
-    afs_int32    Spare2;
-    afs_int32    Spare3;
-    afs_int32    Spare4;
-    afs_int32    Spare5;
-    afs_int32    Spare6;
-    afs_int32    Spare7;
-    afs_int32    Spare8;
-    ViceDisk     Disk[VOLMAXPARTS];
+    afs_uint32 TotalRPCBogusPackets;
+    afs_int32 SystemCPU;
+    afs_int32 UserCPU;
+    afs_int32 NiceCPU;
+    afs_int32 IdleCPU;
+    afs_int32 TotalIO;
+    afs_int32 ActiveVM;
+    afs_int32 TotalVM;
+    afs_int32 EtherNetTotalErrors;
+    afs_int32 EtherNetTotalWrites;
+    afs_int32 EtherNetTotalInterupts;
+    afs_int32 EtherNetGoodReads;
+    afs_int32 EtherNetTotalBytesWritten;
+    afs_int32 EtherNetTotalBytesRead;
+    afs_int32 ProcessSize;
+    afs_int32 WorkStations;
+    afs_int32 ActiveWorkStations;
+    afs_int32 Spare1;
+    afs_int32 Spare2;
+    afs_int32 Spare3;
+    afs_int32 Spare4;
+    afs_int32 Spare5;
+    afs_int32 Spare6;
+    afs_int32 Spare7;
+    afs_int32 Spare8;
+    ViceDisk Disk[VOLMAXPARTS];
 };
 
 
@@ -79,12 +82,12 @@ struct ProbeViceStatistics {
   * Connection information per FileServer host being probed.
   */
 struct fsprobe_ConnectionInfo {
-    struct sockaddr_in skt;            /*Socket info*/
-    struct rx_connection *rxconn;      /*Rx connection*/
-    struct rx_connection *rxVolconn;   /*Rx connection to Vol server*/
-    struct partList partList;          /*Server part list*/
-    afs_int32 partCnt;                         /*# of parts */
-    char hostName[256];                        /*Computed hostname*/
+    struct sockaddr_in skt;    /*Socket info */
+    struct rx_connection *rxconn;      /*Rx connection */
+    struct rx_connection *rxVolconn;   /*Rx connection to Vol server */
+    struct partList partList;  /*Server part list */
+    afs_int32 partCnt;         /*# of parts */
+    char hostName[256];                /*Computed hostname */
 };
 
 /*
@@ -92,61 +95,63 @@ struct fsprobe_ConnectionInfo {
   * entry in the stats array corresponds to the ith connected server.
   */
 struct fsprobe_ProbeResults {
-    int probeNum;                      /*Probe number*/
-    afs_int32 probeTime;                       /*Time probe initiated*/
-    struct ProbeViceStatistics *stats; /*Ptr to stats array for servers*/
-    int *probeOK;                      /*Array: was latest probe successful?*/
+    int probeNum;              /*Probe number */
+    afs_int32 probeTime;       /*Time probe initiated */
+    struct ProbeViceStatistics *stats; /*Ptr to stats array for servers */
+    int *probeOK;              /*Array: was latest probe successful? */
 };
 
-extern int fsprobe_numServers;                         /*# servers connected*/
-extern struct fsprobe_ConnectionInfo *fsprobe_ConnInfo;        /*Ptr to connections*/
-extern int numCollections;                             /*Num data collections*/
-extern struct fsprobe_ProbeResults fsprobe_Results;    /*Latest probe results*/
+extern int fsprobe_numServers; /*# servers connected */
+extern struct fsprobe_ConnectionInfo *fsprobe_ConnInfo;        /*Ptr to connections */
+extern int numCollections;     /*Num data collections */
+extern struct fsprobe_ProbeResults fsprobe_Results;    /*Latest probe results */
 
-extern int fsprobe_Init();
+extern int fsprobe_Init(int, struct sockaddr_in *, int, int (*)(void), int );
     /*
      * Summary:
      *    Initialize the fsprobe module: set up Rx connections to the
-     *   given set of servers, start up the probe and callback LWPs,
-     *   and associate the routine to be called when a probe completes.
+     *    given set of servers, start up the probe and callback LWPs,
+     *    and associate the routine to be called when a probe completes.
      *
      * Args:
-     *   int a_numServers                  : Num. servers to connect to.
-     *   struct sockaddr_in *a_socketArray : Array of server sockets.
-     *   int a_ProbeFreqInSecs             : Probe frequency in seconds.
-     *   int (*a_ProbeHandler)()           : Ptr to probe handler fcn.
-     *   int a_debug                       : Turn debugging output on?
+     *    int a_numServers                  : Num. servers to connect to.
+     *    struct sockaddr_in *a_socketArray : Array of server sockets.
+     *    int a_ProbeFreqInSecs             : Probe frequency in seconds.
+     *    int (*a_ProbeHandler)()           : Ptr to probe handler fcn.
+     *    int a_debug                       : Turn debugging output on?
      *
      * Returns:
-     *   0 on success,
-     *   Error value otherwise.
+     *    0 on success,
+     *    Error value otherwise.
      */
 
-extern int fsprobe_ForceProbeNow();
+extern int fsprobe_ForceProbeNow(void);
     /*
      * Summary:
      *    Force an immediate probe to the connected FileServers.
      *
      * Args:
-     *   None.
+     *    None.
      *
      * Returns:
-     *   0 on success,
-     *   Error value otherwise.
+     *    0 on success,
+     *    Error value otherwise.
      */
 
-extern int fsprobe_Cleanup();
+extern int fsprobe_Cleanup(int);
     /*
      * Summary:
      *    Clean up our memory and connection state.
      *
      * Args:
-     *   int a_releaseMem : Should we free up malloc'ed areas?
+     *    int a_releaseMem : Should we free up malloc'ed areas?
      *
      * Returns:
-     *   0 on total success,
-     *   -1 if the module was never initialized, or there was a problem
-     *         with the fsprobe connection array.
+     *    0 on total success,
+     *    -1 if the module was never initialized, or there was a problem
+     *          with the fsprobe connection array.
      */
 
+extern int fsprobe_Wait(int);
+
 #endif /* __fsprobe_h */