/*
- * (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>
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];
};
* 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 */
};
/*
* 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 */