extern afsUUID FS_HostUUID;
extern int hostCount;
+
+#ifndef INTERPRET_DUMP
static int ShowProblems = 1;
+#endif
struct cbcounters cbstuff;
}; /* Anything more: MinTimeOut */
/* minimum time given for a call back */
+#ifndef INTERPRET_DUMP
static int MinTimeOut = (7 * 60);
+#endif
/* Heads of CB queues; a timeout index is 1+index into this array */
static afs_uint32 timeout[CB_NUM_TIMEOUT_QUEUES];
/* Prototypes for static routines */
static struct FileEntry *FindFE(register AFSFid * fid);
+
+#ifndef INTERPRET_DUMP
static struct CallBack *iGetCB(register int *nused);
static int iFreeCB(register struct CallBack *cb, register int *nused);
static struct FileEntry *iGetFE(register int *nused);
static int MultiBreakVolumeCallBack_r(struct host *host, int isheld,
struct VCBParams *parms, int deletefe);
static int MultiBreakVolumeCallBack(struct host *host, int isheld,
- struct VCBParams *parms);
+ void *rock);
static int MultiBreakVolumeLaterCallBack(struct host *host, int isheld,
- struct VCBParams *parms);
+ void *rock);
static int GetSomeSpace_r(struct host *hostp, int locked);
static int ClearHostCallbacks_r(struct host *hp, int locked);
+#endif
#define GetCB() ((struct CallBack *)iGetCB(&cbstuff.nCBs))
#define GetFE() ((struct FileEntry *)iGetFE(&cbstuff.nFEs))
** isheld is 1 if the host is held in BreakVolumeCallBacks
*/
static int
-MultiBreakVolumeCallBack(struct host *host, int isheld,
- struct VCBParams *parms)
+MultiBreakVolumeCallBack(struct host *host, int isheld, void *rock)
{
+ struct VCBParams *parms = (struct VCBParams *) rock;
+
int retval;
H_LOCK;
retval = MultiBreakVolumeCallBack_r(host, isheld, parms, 1);
** isheld is 1 if the host is held in BreakVolumeCallBacks
*/
static int
-MultiBreakVolumeLaterCallBack(struct host *host, int isheld,
- struct VCBParams *parms)
+MultiBreakVolumeLaterCallBack(struct host *host, int isheld, void *rock)
{
+ struct VCBParams *parms = (struct VCBParams *)rock;
int retval;
H_LOCK;
retval = MultiBreakVolumeCallBack_r(host, isheld, parms, 0);
henumParms.fid = &fid;
henumParms.thead = tthead;
H_UNLOCK;
- h_Enumerate(MultiBreakVolumeCallBack, (char *)&henumParms);
+ h_Enumerate(MultiBreakVolumeCallBack, &henumParms);
H_LOCK;
if (henumParms.ncbas) { /* do left-overs */
struct AFSCBFids tf;
* are held by other threads.
*/
static int
-lih0_r(register struct host *host, register int held,
- register struct host *hostp)
+lih0_r(register struct host *host, register int held, void *rock)
{
+ struct host *hostp = (struct host *) rock;
if (host->cblist
&& (hostp && host != hostp)
&& (!held && !h_OtherHolds_r(host))
* prevent held hosts from being selected.
*/
static int
-lih1_r(register struct host *host, register int held,
- register struct host *hostp)
+lih1_r(register struct host *host, register int held, void *rock)
{
+ struct host *hostp = (struct host *) rock;
+
if (host->cblist
&& (hostp && host != hostp)
&& (!lih_host || host->ActiveCall < lih_host->ActiveCall)
/* get a new block of CEs and chain it on CEFree */
static void
-GetCEBlock()
+GetCEBlock(void)
{
register struct CEBlock *block;
register int i;
/* get the next available CE */
static struct client *
-GetCE()
+GetCE(void)
{
register struct client *entry;
/* get a new block of HTs and chain it on HTFree */
static void
-GetHTBlock()
+GetHTBlock(void)
{
register struct HTBlock *block;
register int i;
/* get the next available HT */
static struct host *
-GetHT()
+GetHT(void)
{
register struct host *entry;
struct rx_connection *serverconns[MAXSERVERS];
struct rx_securityClass *sc[3];
struct afsconf_dir *tdir;
- char tconfDir[100] = "";
- char tcell[64] = "";
struct ktc_token ttoken;
afs_int32 scIndex;
struct afsconf_cell info;
* released, 1 if it should be held after enumeration.
*/
void
-h_Enumerate(int (*proc) (), char *param)
+h_Enumerate(int (*proc) (struct host*, int, void *), void *param)
{
register struct host *host, **list;
register int *held;
* be held after enumeration.
*/
void
-h_Enumerate_r(int (*proc) (), struct host *enumstart, char *param)
+h_Enumerate_r(int (*proc) (struct host *, int, void *),
+ struct host *enumstart, void *param)
{
register struct host *host, *next;
int held = 0;
/* not reentrant */
void
-h_InitHostPackage()
+h_InitHostPackage(void)
{
memset(&nulluuid, 0, sizeof(afsUUID));
afsconf_GetLocalCell(confDir, localcellname, PR_MAXNAMELEN);
void
-h_PrintStats()
+h_PrintStats(void)
{
ViceLog(0,
("Total Client entries = %d, blocks = %d; Host entries = %d, blocks = %d\n",
static int
-h_PrintClient(register struct host *host, int held, StreamHandle_t * file)
+h_PrintClient(register struct host *host, int held, void *rock)
{
+ StreamHandle_t *file = (StreamHandle_t *)rock;
register struct client *client;
int i;
char tmpStr[256];
* if known
*/
void
-h_PrintClients()
+h_PrintClients(void)
{
time_t now;
char tmpStr[256];
static int
-h_DumpHost(register struct host *host, int held, StreamHandle_t * file)
+h_DumpHost(register struct host *host, int held, void *rock)
{
+ StreamHandle_t *file = (StreamHandle_t *)rock;
+
int i;
char tmpStr[256];
char hoststr[16];
void
-h_DumpHosts()
+h_DumpHosts(void)
{
time_t now;
StreamHandle_t *file = STREAM_OPEN(AFSDIR_SERVER_HOSTDUMP_FILEPATH, "w");
* from other events.
*/
static int
-CheckHost(register struct host *host, int held)
+CheckHost(register struct host *host, int held, void *rock)
{
register struct client *client;
struct rx_connection *cb_conn = NULL;
if (host->interface) {
/* check alternate addresses */
number = host->interface->numberOfInterfaces;
- if (number == 0)
+ if (number == 0) {
ViceLog(level, ("no-addresses "));
- else {
+ } else {
for (i = 0; i < number; i++)
ViceLog(level, ("%s:%d ", afs_inet_ntoa_r(host->interface->interface[i].addr, hoststr),
ntohs(host->interface->interface[i].port)));
extern int h_Lookup_r(afs_uint32 hostaddr, afs_uint16 hport,
int *heldp, struct host **hostp);
extern struct host *h_LookupUuid_r(afsUUID * uuidp);
-extern void h_Enumerate(int (*proc) (), char *param);
-extern void h_Enumerate_r(int (*proc) (), struct host *enumstart, char *param);
+extern void h_Enumerate(int (*proc) (struct host *, int, void *), void *param);
+extern void h_Enumerate_r(int (*proc) (struct host *, int, void *), struct host *enumstart, void *param);
extern struct host *h_GetHost_r(struct rx_connection *tcon);
extern struct client *h_FindClient_r(struct rx_connection *tcon);
extern int h_ReleaseClient_r(struct client *client);
extern struct client *h_ID2Client(afs_int32 vid);
extern int GetClient(struct rx_connection *tcon, struct client **cp);
extern int PutClient(struct client **cp);
-extern void h_PrintStats();
-extern void h_PrintClients();
-extern void h_GetWorkStats();
+extern void h_PrintStats(void);
+extern void h_PrintClients(void);
+extern void h_GetWorkStats(int *, int *, int *, afs_int32);
extern void h_flushhostcps(register afs_uint32 hostaddr,
register afs_uint16 hport);
extern void h_GetHostNetStats(afs_int32 * a_numHostsP, afs_int32 * a_sameNetOrSubnetP,
afs_int32 * a_diffSubnetP, afs_int32 * a_diffNetworkP);
extern int h_NBLock_r(register struct host *host);
-extern void h_DumpHosts();
-extern void h_InitHostPackage();
+extern void h_DumpHosts(void);
+extern void h_InitHostPackage(void);
extern void h_CheckHosts();
struct Interface *MultiVerifyInterface_r();
extern int initInterfaceAddr_r(struct host *host, struct interfaceAddr *interf);
rxMaxMTU, RX_MIN_PACKET_SIZE,
RX_MAX_PACKET_DATA_SIZE);
return -1;
- }
+ }
} else if (!strcmp(argv[i], "-realm")) {
extern char local_realms[AFS_NUM_LREALMS][AFS_REALM_SZ];
extern int num_lrealms;