mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 15:00:12 +00:00
lwp-protoize-20080310
LICENSE IPL10 protoize lwp. make it match pthreads' idea of createprocess
This commit is contained in:
parent
9473128eb3
commit
ff988ead4e
@ -121,7 +121,7 @@ config: prelude
|
||||
procmgmt: config
|
||||
${COMPILE_PART1} procmgmt ${COMPILE_PART2}
|
||||
|
||||
util: procmgmt des
|
||||
util: procmgmt des lwp_depinstall
|
||||
${COMPILE_PART1} util ${COMPILE_PART2}
|
||||
|
||||
audit: util rx rxkad
|
||||
|
@ -1009,7 +1009,7 @@ afs_RXCallBackServer(void)
|
||||
/*
|
||||
* Donate this process to Rx.
|
||||
*/
|
||||
rx_ServerProc();
|
||||
rx_ServerProc(NULL);
|
||||
return (0);
|
||||
|
||||
} /*afs_RXCallBackServer */
|
||||
|
@ -491,8 +491,8 @@ DeleteProc(register struct bnode_proc *abproc)
|
||||
}
|
||||
|
||||
/* bnode lwp executes this code repeatedly */
|
||||
static int
|
||||
bproc()
|
||||
static void *
|
||||
bproc(void *unused)
|
||||
{
|
||||
register afs_int32 code;
|
||||
register struct bnode *tb;
|
||||
@ -641,6 +641,7 @@ bproc()
|
||||
}
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static afs_int32
|
||||
@ -763,9 +764,11 @@ hdl_notifier(struct bnode_proc *tp)
|
||||
|
||||
/* Called by IOMGR at low priority on IOMGR's stack shortly after a SIGCHLD
|
||||
* occurs. Wakes up bproc do redo things */
|
||||
int
|
||||
bnode_SoftInt(int asignal)
|
||||
void *
|
||||
bnode_SoftInt(void *param)
|
||||
{
|
||||
/* int asignal = (int) param; */
|
||||
|
||||
IOMGR_Cancel(bproc_pid);
|
||||
return 0;
|
||||
}
|
||||
@ -776,12 +779,10 @@ bnode_SoftInt(int asignal)
|
||||
void
|
||||
bnode_Int(int asignal)
|
||||
{
|
||||
extern void bozo_ShutdownAndExit();
|
||||
|
||||
if (asignal == SIGQUIT) {
|
||||
IOMGR_SoftSig(bozo_ShutdownAndExit, (char *)asignal);
|
||||
IOMGR_SoftSig(bozo_ShutdownAndExit, (void *) asignal);
|
||||
} else {
|
||||
IOMGR_SoftSig(bnode_SoftInt, (char *)asignal);
|
||||
IOMGR_SoftSig(bnode_SoftInt, (void *) asignal);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1655,9 +1655,10 @@ SBOZO_SetRestrictedMode(acall, arestmode)
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
bozo_ShutdownAndExit(int asignal)
|
||||
void *
|
||||
bozo_ShutdownAndExit(void *param)
|
||||
{
|
||||
int asignal = (int) param;
|
||||
int code;
|
||||
|
||||
bozo_Log
|
||||
|
@ -13,4 +13,7 @@
|
||||
/* bosserver.c */
|
||||
void bozo_Log(char *format, ... );
|
||||
|
||||
/* bosoprocs.c */
|
||||
void *bozo_ShutdownAndExit(void *arock /* really int asignal */);
|
||||
|
||||
#endif
|
||||
|
@ -514,8 +514,8 @@ bdrestart(register struct bnode *abnode, char *arock)
|
||||
|
||||
#define BOZO_MINSKIP 3600 /* minimum to advance clock */
|
||||
/* lwp to handle system restarts */
|
||||
static int
|
||||
BozoDaemon()
|
||||
static void *
|
||||
BozoDaemon(void *unused)
|
||||
{
|
||||
register afs_int32 now;
|
||||
|
||||
@ -550,6 +550,7 @@ BozoDaemon()
|
||||
bnode_ApplyInstance(bdrestart, 0);
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#ifdef AFS_AIX32_ENV
|
||||
|
@ -104,8 +104,8 @@ nextItem(linkPtr)
|
||||
|
||||
char *cmdLine;
|
||||
|
||||
int
|
||||
cmdDispatch()
|
||||
void *
|
||||
cmdDispatch(void *unused)
|
||||
{
|
||||
#define MAXV 100
|
||||
char **targv[MAXV]; /*Ptr to parsed argv stuff */
|
||||
@ -119,7 +119,7 @@ cmdDispatch()
|
||||
code = cmd_ParseLine(internalCmdLine, targv, &targc, MAXV);
|
||||
if (code) {
|
||||
printf("Couldn't parse line: '%s'", afs_error_message(code));
|
||||
return (1);
|
||||
return (void *)(1);
|
||||
}
|
||||
free(internalCmdLine);
|
||||
|
||||
@ -129,10 +129,11 @@ cmdDispatch()
|
||||
*/
|
||||
doDispatch(targc, targv, 1);
|
||||
cmd_FreeArgv(targv);
|
||||
return(0);
|
||||
return(void *)(0);
|
||||
}
|
||||
|
||||
statusWatcher()
|
||||
void *
|
||||
statusWatcher(void *unused)
|
||||
{
|
||||
struct rx_connection *tconn = (struct rc_connection *)0;
|
||||
statusP curPollPtr = 0;
|
||||
@ -394,6 +395,7 @@ statusWatcher()
|
||||
curPollPtr = 0;
|
||||
} /*done */
|
||||
} /*w */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* bc_jobNumber
|
||||
|
17
src/bucoord/bucoord_prototypes.h
Normal file
17
src/bucoord/bucoord_prototypes.h
Normal file
@ -0,0 +1,17 @@
|
||||
/* 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 _BUCOORD_PROTOTYPES_H
|
||||
#define _BUCOORD_PROTOTYPES_H
|
||||
|
||||
/* bc_status.c */
|
||||
|
||||
extern void *statusWatcher(void *);
|
||||
|
||||
#endif
|
||||
|
@ -199,9 +199,10 @@ freeDumpTaskVolumeList(vdptr)
|
||||
* The other half of the dump/restore create process call. In bc_StartDmpRst,
|
||||
* we allocated a dumpTask entry. Here we do the task and then free the entry.
|
||||
*/
|
||||
bc_DmpRstStart(aindex)
|
||||
afs_int32 aindex;
|
||||
void *
|
||||
bc_DmpRstStart(void *param)
|
||||
{
|
||||
afs_int32 aindex = (afs_int32) param;
|
||||
register struct bc_dumpTask *tdump;
|
||||
register afs_int32 code;
|
||||
|
||||
|
@ -45,7 +45,7 @@ RCSID
|
||||
#include <afs/budb.h>
|
||||
|
||||
#include "bc.h" /*Backup Coordinator structs and defs */
|
||||
|
||||
#include "bucoord_prototypes.h"
|
||||
|
||||
int localauth, interact;
|
||||
char tcell[64];
|
||||
@ -244,8 +244,6 @@ backupInit()
|
||||
PROCESS watcherPid;
|
||||
PROCESS pid; /* LWP process ID */
|
||||
|
||||
extern statusWatcher();
|
||||
|
||||
/* Initialization */
|
||||
initialize_CMD_error_table();
|
||||
|
||||
|
@ -44,6 +44,7 @@ RCSID
|
||||
#include "globals.h"
|
||||
#include "afs/audit.h"
|
||||
|
||||
void *dumpWatcher(void *);
|
||||
|
||||
/* dump ubik database - interface routines */
|
||||
|
||||
@ -63,9 +64,10 @@ badEntry(dbAddr)
|
||||
* decode the arguments passed via LWP and dump the database.
|
||||
*/
|
||||
|
||||
setupDbDump(writeFid)
|
||||
int writeFid;
|
||||
void *
|
||||
setupDbDump(void *param)
|
||||
{
|
||||
int writeFid = (int)param;
|
||||
afs_int32 code = 0;
|
||||
|
||||
code = InitRPC(&dumpSyncPtr->ut, LOCKREAD, 1);
|
||||
@ -85,7 +87,7 @@ setupDbDump(writeFid)
|
||||
error_exit:
|
||||
if (dumpSyncPtr->ut)
|
||||
ubik_EndTrans(dumpSyncPtr->ut);
|
||||
return (code);
|
||||
return (void *)(code);
|
||||
}
|
||||
|
||||
|
||||
@ -116,7 +118,6 @@ DumpDB(call, firstcall, maxLength, charListPtr, done)
|
||||
PROCESS dumperPid, watcherPid;
|
||||
int readSize;
|
||||
afs_int32 code = 0;
|
||||
extern dumpWatcher();
|
||||
|
||||
if (callPermitted(call) == 0)
|
||||
ERROR(BUDB_NOTPERMITTED);
|
||||
@ -288,7 +289,8 @@ RestoreDbHeader(call, header)
|
||||
* transactions can proceed.
|
||||
*/
|
||||
|
||||
dumpWatcher()
|
||||
void *
|
||||
dumpWatcher(void *unused)
|
||||
{
|
||||
afs_int32 code;
|
||||
|
||||
|
@ -584,7 +584,7 @@ main(argc, argv)
|
||||
currentTime = time(0);
|
||||
LogError(0, "Ready to process requests at %s\n", ctime(¤tTime));
|
||||
|
||||
rx_ServerProc(); /* donate this LWP */
|
||||
rx_ServerProc(NULL); /* donate this LWP */
|
||||
|
||||
error_exit:
|
||||
osi_audit(BUDB_FinishEvent, code, AUD_END);
|
||||
|
36
src/butc/butc_prototypes.h
Normal file
36
src/butc/butc_prototypes.h
Normal file
@ -0,0 +1,36 @@
|
||||
/* 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 _BUTC_PROTOTYPES_H
|
||||
#define _BUTC_PROTOTYPES_H
|
||||
|
||||
/* dbentries.c */
|
||||
|
||||
extern void *dbWatcher(void *);
|
||||
|
||||
/* dump.c */
|
||||
|
||||
extern void *Dumper(void *);
|
||||
extern void *DeleteDump(void *);
|
||||
|
||||
/* lwps.c */
|
||||
extern void *Restorer(void *);
|
||||
extern void *Labeller(void *);
|
||||
|
||||
/* recoverdDb.c */
|
||||
|
||||
extern void *ScanDumps(void *);
|
||||
|
||||
/* tcudbprocs.c */
|
||||
|
||||
extern void *saveDbToTape(void *);
|
||||
extern void *restoreDbFromTape(void *);
|
||||
extern void *KeepAlive(void *);
|
||||
|
||||
#endif
|
||||
|
@ -316,8 +316,8 @@ waitDbWatcher()
|
||||
#define MAXVOLUMESTOADD 100
|
||||
int addvolumes = 1;
|
||||
|
||||
void
|
||||
dbWatcher()
|
||||
void *
|
||||
dbWatcher(void *unused)
|
||||
{
|
||||
dlqlinkP entryPtr;
|
||||
struct budb_dumpEntry *dumpPtr;
|
||||
@ -485,4 +485,5 @@ dbWatcher()
|
||||
IOMGR_Sleep(2);
|
||||
#endif
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
@ -1117,9 +1117,10 @@ dumpPass(struct dumpRock * dparamsPtr, int passNumber)
|
||||
return (code);
|
||||
}
|
||||
|
||||
int
|
||||
Dumper(struct dumpNode *nodePtr)
|
||||
void *
|
||||
Dumper(void *param)
|
||||
{
|
||||
struct dumpNode *nodePtr = (struct dumpNode *)param;
|
||||
struct dumpRock dparams;
|
||||
struct butm_tapeInfo tapeInfo;
|
||||
int pass;
|
||||
@ -1369,7 +1370,7 @@ Dumper(struct dumpNode *nodePtr)
|
||||
|
||||
FreeNode(taskId); /* free the dump node */
|
||||
LeaveDeviceQueue(deviceLatch);
|
||||
return (code);
|
||||
return (void *)(code);
|
||||
}
|
||||
|
||||
#define BELLTIME 60 /* 60 seconds before a bell rings */
|
||||
@ -2030,9 +2031,11 @@ InitToServer(afs_int32 taskId, struct butx_transactionInfo * butxInfoP,
|
||||
/* DeleteDump
|
||||
*
|
||||
*/
|
||||
int
|
||||
DeleteDump(struct deleteDumpIf *ptr)
|
||||
void *
|
||||
DeleteDump(void *param)
|
||||
{
|
||||
struct deleteDumpIf *ptr = (struct deleteDumpIf *)param;
|
||||
|
||||
afs_int32 taskId;
|
||||
afs_int32 rc, code = 0;
|
||||
afs_uint32 dumpid;
|
||||
|
@ -1743,9 +1743,10 @@ restoreVolume(taskId, restoreInfo, rparamsPtr)
|
||||
* created as a LWP by the server stub, <newNode> is a pointer to all
|
||||
* the parameters Restorer needs
|
||||
*/
|
||||
Restorer(newNode)
|
||||
struct dumpNode *newNode;
|
||||
{
|
||||
void *
|
||||
Restorer(void *param) {
|
||||
struct dumpNode *newNode = (struct dumpNode *) param;
|
||||
|
||||
afs_int32 code = 0, tcode;
|
||||
afs_uint32 taskId;
|
||||
char *newVolName;
|
||||
@ -2226,9 +2227,11 @@ updateTapeLabel(labelIfPtr, tapeInfoPtr, newLabelPtr)
|
||||
* specified by <label>
|
||||
*/
|
||||
|
||||
Labeller(labelIfPtr)
|
||||
struct labelTapeIf *labelIfPtr;
|
||||
void *
|
||||
Labeller(void *param)
|
||||
{
|
||||
struct labelTapeIf *labelIfPtr = (struct labelTapeIf *)param;
|
||||
|
||||
struct tc_tapeLabel *label = &labelIfPtr->label;
|
||||
|
||||
struct butm_tapeLabel newTapeLabel;
|
||||
|
@ -692,9 +692,11 @@ getScanTape(afs_int32 taskId, struct butm_tapeInfo *tapeInfoPtr, char *tname, af
|
||||
*
|
||||
*/
|
||||
|
||||
int
|
||||
ScanDumps(struct scanTapeIf *ptr)
|
||||
void *
|
||||
ScanDumps(void *param)
|
||||
{
|
||||
struct scanTapeIf *ptr = (struct scanTapeIf *)param;
|
||||
|
||||
struct butm_tapeInfo curTapeInfo;
|
||||
struct tapeScanInfo tapeScanInfo;
|
||||
afs_uint32 taskId;
|
||||
@ -751,7 +753,7 @@ ScanDumps(struct scanTapeIf *ptr)
|
||||
free(ptr);
|
||||
setStatus(taskId, TASK_DONE);
|
||||
LeaveDeviceQueue(deviceLatch);
|
||||
return (code);
|
||||
return (void *)(code);
|
||||
}
|
||||
|
||||
|
||||
|
@ -56,6 +56,7 @@ RCSID
|
||||
#include "afs/butx.h"
|
||||
#define XBSA_TCMAIN
|
||||
#include "butc_xbsa.h"
|
||||
#include "butc_prototypes.h"
|
||||
|
||||
#define N_SECURITY_OBJECTS 3
|
||||
#define ERRCODE_RANGE 8 /* from error_table.h */
|
||||
@ -66,7 +67,6 @@ RCSID
|
||||
|
||||
struct ubik_client *cstruct;
|
||||
extern void TC_ExecuteRequest();
|
||||
extern int dbWatcher();
|
||||
FILE *logIO, *ErrorlogIO, *centralLogIO, *lastLogIO;
|
||||
char lFile[AFSDIR_PATH_MAX];
|
||||
char logFile[256];
|
||||
|
@ -41,6 +41,7 @@ RCSID
|
||||
#include <afs/tcdata.h>
|
||||
#include "error_macros.h"
|
||||
#include "butc_xbsa.h"
|
||||
#include "butc_prototypes.h"
|
||||
|
||||
static CopyDumpDesc();
|
||||
static CopyRestoreDesc();
|
||||
@ -147,7 +148,6 @@ STC_LabelTape(struct rx_call *acid, struct tc_tapeLabel *label, afs_uint32 *task
|
||||
statusP statusPtr = NULL;
|
||||
afs_int32 code;
|
||||
|
||||
extern int Labeller();
|
||||
extern statusP createStatusNode();
|
||||
extern afs_int32 allocTaskId();
|
||||
|
||||
@ -228,7 +228,6 @@ STC_PerformDump(struct rx_call *rxCallId, struct tc_dumpInterface *tcdiPtr, tc_d
|
||||
afs_int32 code = 0;
|
||||
|
||||
extern statusP createStatusNode();
|
||||
extern Dumper();
|
||||
|
||||
if (callPermitted(rxCallId) == 0)
|
||||
return (TC_NOTPERMITTED);
|
||||
@ -326,7 +325,6 @@ STC_PerformRestore(struct rx_call *acid, char *dumpSetName, tc_restoreArray *are
|
||||
PROCESS pid;
|
||||
#endif
|
||||
|
||||
extern int Restorer();
|
||||
extern statusP createStatusNode();
|
||||
|
||||
if (callPermitted(acid) == 0)
|
||||
@ -425,7 +423,6 @@ STC_RestoreDb(struct rx_call *rxCall, afs_uint32 *taskId)
|
||||
statusP statusPtr;
|
||||
afs_int32 code = 0;
|
||||
|
||||
extern afs_int32 restoreDbFromTape();
|
||||
extern statusP createStatusNode();
|
||||
extern afs_int32 allocTaskId();
|
||||
|
||||
@ -496,7 +493,6 @@ STC_SaveDb(struct rx_call *rxCall, Date archiveTime, afs_uint32 *taskId)
|
||||
afs_int32 code = 0;
|
||||
struct saveDbIf *ptr;
|
||||
|
||||
extern afs_int32 saveDbToTape();
|
||||
extern statusP createStatusNode();
|
||||
extern afs_int32 allocTaskId();
|
||||
|
||||
@ -579,7 +575,6 @@ STC_ScanDumps(struct rx_call *acid, afs_int32 addDbFlag, afs_uint32 *taskId)
|
||||
statusP statusPtr;
|
||||
afs_int32 code = 0;
|
||||
|
||||
extern afs_int32 ScanDumps();
|
||||
extern afs_int32 allocTaskId();
|
||||
extern statusP createStatusNode();
|
||||
|
||||
@ -671,7 +666,6 @@ STC_DeleteDump(struct rx_call *acid, afs_uint32 dumpID, afs_uint32 *taskId)
|
||||
PROCESS pid;
|
||||
#endif
|
||||
#endif
|
||||
extern afs_int32 DeleteDump();
|
||||
extern statusP createStatusNode();
|
||||
extern afs_int32 allocTaskId();
|
||||
|
||||
|
@ -56,6 +56,7 @@ static void initTapeBuffering();
|
||||
static writeDbDump();
|
||||
static restoreDbEntries();
|
||||
|
||||
void * KeepAlive(void *);
|
||||
/* CreateDBDump
|
||||
* create a dump entry for a saved database
|
||||
*/
|
||||
@ -413,8 +414,6 @@ writeDbDump(tapeInfoPtr, taskId, expires, dumpid)
|
||||
extern struct tapeConfig globalTapeConfig;
|
||||
extern struct udbHandleS udbHandle;
|
||||
|
||||
extern int KeepAlive();
|
||||
|
||||
blockSize = BUTM_BLKSIZE;
|
||||
writeBlock = (char *)malloc(BUTM_BLOCKSIZE);
|
||||
if (!writeBlock)
|
||||
@ -624,10 +623,10 @@ writeDbDump(tapeInfoPtr, taskId, expires, dumpid)
|
||||
* dump backup database to tape
|
||||
*/
|
||||
|
||||
afs_int32
|
||||
saveDbToTape(saveDbIfPtr)
|
||||
struct saveDbIf *saveDbIfPtr;
|
||||
void *
|
||||
saveDbToTape(void *param)
|
||||
{
|
||||
struct saveDbIf *saveDbIfPtr = (struct saveDbIf *)param;
|
||||
afs_int32 code = 0;
|
||||
afs_int32 i;
|
||||
int wroteLabel;
|
||||
@ -1018,10 +1017,10 @@ restoreDbEntries(tapeInfoPtr, rstTapeInfoPtr)
|
||||
* restore the backup database from tape.
|
||||
*/
|
||||
|
||||
afs_int32
|
||||
restoreDbFromTape(taskId)
|
||||
afs_uint32 taskId;
|
||||
void *
|
||||
restoreDbFromTape(void *param)
|
||||
{
|
||||
afs_uint32 taskId = (void *)param;
|
||||
afs_int32 code = 0;
|
||||
afs_int32 i;
|
||||
struct butm_tapeInfo tapeInfo;
|
||||
@ -1107,7 +1106,7 @@ restoreDbFromTape(taskId)
|
||||
LeaveDeviceQueue(deviceLatch);
|
||||
setStatus(taskId, TASK_DONE);
|
||||
|
||||
return (code);
|
||||
return (void *)(code);
|
||||
}
|
||||
|
||||
/* KeepAlive
|
||||
@ -1119,8 +1118,8 @@ restoreDbFromTape(taskId)
|
||||
*
|
||||
* Use the same udbHandle as writeDbDump so we go to the same server.
|
||||
*/
|
||||
int
|
||||
KeepAlive()
|
||||
void *
|
||||
KeepAlive(void *unused)
|
||||
{
|
||||
charListT charList;
|
||||
afs_int32 code;
|
||||
|
@ -232,8 +232,8 @@ fsprobe_Cleanup(a_releaseMem)
|
||||
* Side Effects:
|
||||
* As advertised.
|
||||
*------------------------------------------------------------------------*/
|
||||
static void
|
||||
fsprobe_LWP()
|
||||
static void *
|
||||
fsprobe_LWP(void *unused)
|
||||
{ /*fsprobe_LWP */
|
||||
|
||||
static char rn[] = "fsprobe_LWP"; /*Routine name */
|
||||
@ -389,6 +389,8 @@ fsprobe_LWP()
|
||||
fprintf(stderr, "[%s] IOMGR_Select returned code %d\n", rn, code);
|
||||
} /*Service loop */
|
||||
free(stats64.ViceStatistics64_val);
|
||||
|
||||
return NULL;
|
||||
} /*fsprobe_LWP */
|
||||
|
||||
/*list all the partitions on <aserver> */
|
||||
|
@ -14,7 +14,7 @@
|
||||
* Implementation of the gator curses window facility.
|
||||
*
|
||||
*------------------------------------------------------------------------*/
|
||||
#define IGNORE_STDS_H
|
||||
|
||||
#include <afsconfig.h>
|
||||
#include <afs/param.h>
|
||||
|
||||
@ -40,6 +40,8 @@ RCSID
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <lwp.h>
|
||||
|
||||
#include "gtxcurseswin.h" /*Interface definition */
|
||||
#include "gtxobjects.h"
|
||||
#include "gtxframe.h"
|
||||
|
@ -7,7 +7,6 @@
|
||||
* directory or online at http://www.openafs.org/dl/license10.html
|
||||
*/
|
||||
|
||||
#define IGNORE_STDS_H
|
||||
#include <afsconfig.h>
|
||||
#include <afs/param.h>
|
||||
|
||||
|
@ -7,7 +7,6 @@
|
||||
* directory or online at http://www.openafs.org/dl/license10.html
|
||||
*/
|
||||
|
||||
#define IGNORE_STDS_H
|
||||
#include <afsconfig.h>
|
||||
#include <afs/param.h>
|
||||
|
||||
@ -29,9 +28,11 @@ RCSID
|
||||
|
||||
|
||||
/* process input */
|
||||
gtx_InputServer(awin)
|
||||
register struct gwin *awin;
|
||||
void *
|
||||
gtx_InputServer(void *param)
|
||||
{
|
||||
struct gwin *awin = (struct gwin *) param;
|
||||
|
||||
register int tc;
|
||||
register int code;
|
||||
register struct gtx_frame *tframe;
|
||||
|
@ -491,6 +491,6 @@ main(argc, argv)
|
||||
}
|
||||
|
||||
ViceLog(0, ("Starting to process AuthServer requests\n"));
|
||||
rx_ServerProc(); /* donate this LWP */
|
||||
rx_ServerProc(NULL); /* donate this LWP */
|
||||
return 0;
|
||||
}
|
||||
|
@ -104,8 +104,8 @@ char udptgsServerPrincipal[256];
|
||||
|
||||
int fiveminutes = 300;
|
||||
|
||||
static
|
||||
FiveMinuteCheckLWP()
|
||||
static void *
|
||||
FiveMinuteCheckLWP(void *unused)
|
||||
{
|
||||
|
||||
printf("start 5 min check lwp\n");
|
||||
@ -115,6 +115,7 @@ FiveMinuteCheckLWP()
|
||||
/* close the log so it can be removed */
|
||||
ReOpenLog(AFSDIR_SERVER_KALOG_FILEPATH); /* no trunc, just append */
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@ -825,8 +826,8 @@ process_udp_request(ksoc, pkt)
|
||||
return;
|
||||
}
|
||||
|
||||
static void
|
||||
SocketListener()
|
||||
static void *
|
||||
SocketListener(void *unused)
|
||||
{
|
||||
fd_set rfds;
|
||||
struct timeval tv;
|
||||
@ -908,6 +909,8 @@ SocketListener()
|
||||
sock_kerb5 = -1;
|
||||
}
|
||||
printf("UDP SocketListener exiting due to error\n");
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#if MAIN
|
||||
|
@ -97,7 +97,7 @@ typedef unsigned char bool;
|
||||
#define NSIG 8*sizeof(sigset_t)
|
||||
#endif
|
||||
|
||||
static int SignalSignals();
|
||||
static int SignalSignals(void);
|
||||
|
||||
/********************************\
|
||||
* *
|
||||
@ -148,8 +148,8 @@ static int sigDelivered[NSIG]; /* True for signals delivered so far.
|
||||
to write it */
|
||||
/* software 'signals' */
|
||||
#define NSOFTSIG 4
|
||||
static int (*sigProc[NSOFTSIG])();
|
||||
static char *sigRock[NSOFTSIG];
|
||||
static void *(*sigProc[NSOFTSIG])(void *);
|
||||
static void *sigRock[NSOFTSIG];
|
||||
|
||||
|
||||
static struct IoRequest *iorFreeList = 0;
|
||||
@ -208,7 +208,7 @@ fd_set *IOMGR_AllocFDSet(void)
|
||||
|
||||
#define FreeRequest(x) ((x)->next = iorFreeList, iorFreeList = (x))
|
||||
|
||||
static struct IoRequest *NewRequest()
|
||||
static struct IoRequest *NewRequest(void)
|
||||
{
|
||||
struct IoRequest *request;
|
||||
|
||||
@ -391,7 +391,7 @@ static int FDSetEmpty(int nfds, fd_set *fds)
|
||||
static fd_set IOMGR_readfds, IOMGR_writefds, IOMGR_exceptfds;
|
||||
static int IOMGR_nfds = 0;
|
||||
|
||||
static int IOMGR(void *dummy)
|
||||
static void *IOMGR(void *dummy)
|
||||
{
|
||||
for (;;) {
|
||||
int code;
|
||||
@ -620,7 +620,7 @@ static int IOMGR(void *dummy)
|
||||
}
|
||||
LWP_DispatchProcess();
|
||||
}
|
||||
return -1; /* keeps compilers happy. */
|
||||
return (void *)-1; /* keeps compilers happy. */
|
||||
}
|
||||
|
||||
/************************\
|
||||
@ -677,8 +677,7 @@ static void SignalTimeout(int code, struct timeval *timeout)
|
||||
* signalling routines, above). *
|
||||
* *
|
||||
\*****************************************************/
|
||||
static void SigHandler (signo)
|
||||
int signo;
|
||||
static void SigHandler (int signo)
|
||||
{
|
||||
if (badsig(signo) || (sigsHandled & mysigmask(signo)) == 0)
|
||||
return; /* can't happen. */
|
||||
@ -695,7 +694,7 @@ static int SignalSignals (void)
|
||||
{
|
||||
bool gotone = FALSE;
|
||||
register int i;
|
||||
register int (*p)();
|
||||
register void *(*p)(void *);
|
||||
afs_int32 stackSize;
|
||||
|
||||
anySigsDelivered = FALSE;
|
||||
@ -704,9 +703,9 @@ static int SignalSignals (void)
|
||||
stackSize = (AFS_LWP_MINSTACKSIZE < lwp_MaxStackSeen? lwp_MaxStackSeen : AFS_LWP_MINSTACKSIZE);
|
||||
for (i=0; i < NSOFTSIG; i++) {
|
||||
PROCESS pid;
|
||||
if (p=sigProc[i]) /* This yields!!! */
|
||||
if ((p=sigProc[i])) /* This yields!!! */
|
||||
LWP_CreateProcess2(p, stackSize, LWP_NORMAL_PRIORITY,
|
||||
(void *) sigRock[i], "SignalHandler", &pid);
|
||||
sigRock[i], "SignalHandler", &pid);
|
||||
sigProc[i] = 0;
|
||||
}
|
||||
|
||||
@ -730,9 +729,8 @@ static int SignalSignals (void)
|
||||
/* Keep IOMGR process id */
|
||||
static PROCESS IOMGR_Id = NULL;
|
||||
|
||||
int IOMGR_SoftSig(aproc, arock)
|
||||
int (*aproc)();
|
||||
char *arock; {
|
||||
int IOMGR_SoftSig(void *(*aproc)(void *), void *arock)
|
||||
{
|
||||
register int i;
|
||||
for (i=0;i<NSOFTSIG;i++) {
|
||||
if (sigProc[i] == 0) {
|
||||
@ -753,7 +751,6 @@ unsigned char allOnes[100];
|
||||
|
||||
int IOMGR_Initialize(void)
|
||||
{
|
||||
extern int TM_Init();
|
||||
PROCESS pid;
|
||||
|
||||
/* If lready initialized, just return */
|
||||
@ -776,7 +773,7 @@ int IOMGR_Initialize(void)
|
||||
"IO MANAGER", &IOMGR_Id);
|
||||
}
|
||||
|
||||
int IOMGR_Finalize()
|
||||
int IOMGR_Finalize(void)
|
||||
{
|
||||
int status;
|
||||
|
||||
@ -864,10 +861,8 @@ int IOMGR_Poll(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int IOMGR_Select(fds, readfds, writefds, exceptfds, timeout)
|
||||
int fds;
|
||||
fd_set *readfds, *writefds, *exceptfds;
|
||||
struct timeval *timeout;
|
||||
int IOMGR_Select(int fds, fd_set *readfds, fd_set *writefds,
|
||||
fd_set *exceptfds, struct timeval *timeout)
|
||||
{
|
||||
register struct IoRequest *request;
|
||||
int result;
|
||||
@ -888,7 +883,9 @@ int IOMGR_Select(fds, readfds, writefds, exceptfds, timeout)
|
||||
#ifdef DEBUG
|
||||
if (lwp_debug != 0) puts("[Polling SELECT]");
|
||||
#endif /* DEBUG */
|
||||
#if defined(AFS_SGI_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_OSF_ENV) || defined(AFS_AIX32_ENV) || defined(AFS_NT40_ENV)
|
||||
again:
|
||||
#endif
|
||||
code = select(fds, readfds, writefds, exceptfds, timeout);
|
||||
#if defined(AFS_SGI_ENV) || defined(AFS_SUN5_ENV) || defined(AFS_OSF_ENV) || defined(AFS_AIX32_ENV)
|
||||
/*
|
||||
|
@ -197,9 +197,7 @@ Afs_Lock_ReleaseW(struct Lock *lock)
|
||||
|
||||
/* release a write lock and sleep on an address, atomically */
|
||||
void
|
||||
LWP_WaitProcessR(addr, alock)
|
||||
register char *addr;
|
||||
register struct Lock *alock;
|
||||
LWP_WaitProcessR(register void *addr, register struct Lock *alock)
|
||||
{
|
||||
ReleaseReadLock(alock);
|
||||
LWP_WaitProcess(addr);
|
||||
@ -207,9 +205,7 @@ LWP_WaitProcessR(addr, alock)
|
||||
|
||||
/* release a write lock and sleep on an address, atomically */
|
||||
void
|
||||
LWP_WaitProcessW(addr, alock)
|
||||
register char *addr;
|
||||
register struct Lock *alock;
|
||||
LWP_WaitProcessW(register void *addr, register struct Lock *alock)
|
||||
{
|
||||
ReleaseWriteLock(alock);
|
||||
LWP_WaitProcess(addr);
|
||||
@ -217,9 +213,7 @@ LWP_WaitProcessW(addr, alock)
|
||||
|
||||
/* release a write lock and sleep on an address, atomically */
|
||||
void
|
||||
LWP_WaitProcessS(addr, alock)
|
||||
register char *addr;
|
||||
register struct Lock *alock;
|
||||
LWP_WaitProcessS(register void *addr, register struct Lock *alock)
|
||||
{
|
||||
ReleaseSharedLock(alock);
|
||||
LWP_WaitProcess(addr);
|
||||
|
@ -68,6 +68,7 @@ struct Lock {
|
||||
extern void Afs_Lock_Obtain(struct Lock *lock, int how);
|
||||
extern void Afs_Lock_ReleaseR(struct Lock *lock);
|
||||
extern void Afs_Lock_ReleaseW(struct Lock *lock);
|
||||
extern void Afs_Lock_WakeupR(struct Lock *lock);
|
||||
void Lock_Init(struct Lock *lock);
|
||||
void Lock_Destroy(struct Lock *lock);
|
||||
|
||||
|
@ -100,20 +100,23 @@ extern char PRE_Block; /* from preempt.c */
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
static int Dispatcher();
|
||||
static int Create_Process_Part2();
|
||||
static int Exit_LWP();
|
||||
static afs_int32 Initialize_Stack();
|
||||
static int Stack_Used();
|
||||
char (*RC_to_ASCII());
|
||||
static void *Dispatcher(void *);
|
||||
static void *Create_Process_Part2(void *);
|
||||
static void *Exit_LWP(void *);
|
||||
static afs_int32 Initialize_Stack(char *stackptr, int stacksize);
|
||||
static int Stack_Used(register char *stackptr, int stacksize);
|
||||
|
||||
static void Abort_LWP(char *msg);
|
||||
static void Overflow_Complain(void);
|
||||
static void Initialize_PCB(PROCESS temp, int priority, char *stack,
|
||||
int stacksize, void *(*ep)(void *), void *parm,
|
||||
char *name);
|
||||
static void Dispose_of_Dead_PCB(PROCESS cur);
|
||||
static void Free_PCB(PROCESS pid);
|
||||
static int Internal_Signal(void *event);
|
||||
static int purge_dead_pcbs(void);
|
||||
static int LWP_MwaitProcess(int wcount, void *evlist[]);
|
||||
|
||||
static void Abort_LWP();
|
||||
static void Overflow_Complain();
|
||||
static void Initialize_PCB();
|
||||
static void Dispose_of_Dead_PCB();
|
||||
static void Free_PCB();
|
||||
static int Internal_Signal();
|
||||
static purge_dead_pcbs();
|
||||
|
||||
#define MAX_PRIORITIES (LWP_MAX_PRIORITY+1)
|
||||
|
||||
@ -121,7 +124,9 @@ struct QUEUE {
|
||||
PROCESS head;
|
||||
int count;
|
||||
} runnable[MAX_PRIORITIES], blocked, qwaiting;
|
||||
/* Invariant for runnable queues: The head of each queue points to the currently running process if it is in that queue, or it points to the next process in that queue that should run. */
|
||||
/* Invariant for runnable queues: The head of each queue points to the
|
||||
* currently running process if it is in that queue, or it points to the
|
||||
* next process in that queue that should run. */
|
||||
|
||||
/* Offset of stack field within pcb -- used by stack checking stuff */
|
||||
int stack_offset;
|
||||
@ -262,7 +267,7 @@ reserveFromStack(register afs_int32 size)
|
||||
#endif
|
||||
|
||||
int
|
||||
LWP_CreateProcess(int (*ep) (), int stacksize, int priority, void *parm,
|
||||
LWP_CreateProcess(void *(*ep) (void *), int stacksize, int priority, void *parm,
|
||||
char *name, PROCESS * pid)
|
||||
{
|
||||
PROCESS temp, temp2;
|
||||
@ -419,7 +424,7 @@ LWP_CreateProcess(int (*ep) (), int stacksize, int priority, void *parm,
|
||||
|
||||
#ifdef AFS_AIX32_ENV
|
||||
int
|
||||
LWP_CreateProcess2(int (*ep) (), int stacksize, int priority, void *parm,
|
||||
LWP_CreateProcess2(void *(*ep) (void *), int stacksize, int priority, void *parm,
|
||||
char *name, PROCESS * pid)
|
||||
{
|
||||
PROCESS temp, temp2;
|
||||
@ -650,7 +655,7 @@ LWP_InitializeProcessSupport(int priority, PROCESS * pid)
|
||||
}
|
||||
|
||||
int
|
||||
LWP_INTERNALSIGNAL(char *event, int yield)
|
||||
LWP_INTERNALSIGNAL(void *event, int yield)
|
||||
{ /* signal the occurence of an event */
|
||||
Debug(2, ("Entered LWP_SignalProcess"));
|
||||
if (lwp_init) {
|
||||
@ -689,9 +694,9 @@ LWP_TerminateProcessSupport(void)
|
||||
}
|
||||
|
||||
int
|
||||
LWP_WaitProcess(char *event)
|
||||
LWP_WaitProcess(void *event)
|
||||
{ /* wait on a single event */
|
||||
char *tempev[2];
|
||||
void *tempev[2];
|
||||
|
||||
Debug(2, ("Entered Wait_Process"));
|
||||
if (event == NULL)
|
||||
@ -702,7 +707,7 @@ LWP_WaitProcess(char *event)
|
||||
}
|
||||
|
||||
int
|
||||
LWP_MwaitProcess(int wcount, char *evlist[])
|
||||
LWP_MwaitProcess(int wcount, void *evlist[])
|
||||
{ /* wait on m of n events */
|
||||
register int ecount, i;
|
||||
|
||||
@ -730,8 +735,8 @@ LWP_MwaitProcess(int wcount, char *evlist[])
|
||||
if (ecount > lwp_cpptr->eventlistsize) {
|
||||
|
||||
lwp_cpptr->eventlist =
|
||||
(char **)realloc(lwp_cpptr->eventlist,
|
||||
ecount * sizeof(char *));
|
||||
(void **)realloc(lwp_cpptr->eventlist,
|
||||
ecount * sizeof(void *));
|
||||
lwp_cpptr->eventlistsize = ecount;
|
||||
}
|
||||
for (i = 0; i < ecount; i++)
|
||||
@ -781,14 +786,14 @@ Abort_LWP(char *msg)
|
||||
Dump_Processes();
|
||||
#endif
|
||||
if (LWPANCHOR.outersp == NULL)
|
||||
Exit_LWP();
|
||||
Exit_LWP(NULL);
|
||||
else
|
||||
savecontext(Exit_LWP, &tempcontext, LWPANCHOR.outersp);
|
||||
return;
|
||||
}
|
||||
|
||||
static int
|
||||
Create_Process_Part2(void)
|
||||
static void *
|
||||
Create_Process_Part2(void *unused)
|
||||
{ /* creates a context for the new process */
|
||||
PROCESS temp;
|
||||
|
||||
@ -876,8 +881,8 @@ purge_dead_pcbs(void)
|
||||
|
||||
int LWP_TraceProcesses = 0;
|
||||
|
||||
static int
|
||||
Dispatcher(void)
|
||||
static void *
|
||||
Dispatcher(void *unused)
|
||||
{ /* Lightweight process dispatcher */
|
||||
register int i;
|
||||
#ifdef DEBUG
|
||||
@ -928,7 +933,8 @@ Dispatcher(void)
|
||||
printf("stackcheck = %u: stack = %u \n", lwp_cpptr->stackcheck,
|
||||
*(int *)lwp_cpptr->stack);
|
||||
printf("topstack = 0x%x: stackptr = 0x%x: stacksize = 0x%x\n",
|
||||
lwp_cpptr->context.topstack, lwp_cpptr->stack,
|
||||
(unsigned int)lwp_cpptr->context.topstack,
|
||||
(unsigned int)lwp_cpptr->stack,
|
||||
lwp_cpptr->stacksize);
|
||||
|
||||
switch (lwp_overflowAction) {
|
||||
@ -1003,8 +1009,8 @@ Dispose_of_Dead_PCB(PROCESS cur)
|
||||
*/
|
||||
}
|
||||
|
||||
static int
|
||||
Exit_LWP(void)
|
||||
static void *
|
||||
Exit_LWP(void *unused)
|
||||
{
|
||||
abort();
|
||||
}
|
||||
@ -1028,7 +1034,7 @@ Free_PCB(PROCESS pid)
|
||||
|
||||
static void
|
||||
Initialize_PCB(PROCESS temp, int priority, char *stack, int stacksize,
|
||||
int (*ep) (), void *parm, char *name)
|
||||
void *(*ep) (void *), void *parm, char *name)
|
||||
{
|
||||
register int i = 0;
|
||||
|
||||
@ -1038,7 +1044,7 @@ Initialize_PCB(PROCESS temp, int priority, char *stack, int stacksize,
|
||||
i++;
|
||||
temp->name[31] = '\0';
|
||||
temp->status = READY;
|
||||
temp->eventlist = (char **)malloc(EVINITSIZE * sizeof(char *));
|
||||
temp->eventlist = (void **)malloc(EVINITSIZE * sizeof(void *));
|
||||
temp->eventlistsize = EVINITSIZE;
|
||||
temp->eventcnt = 0;
|
||||
temp->wakevent = 0;
|
||||
@ -1066,7 +1072,7 @@ Initialize_PCB(PROCESS temp, int priority, char *stack, int stacksize,
|
||||
}
|
||||
|
||||
static int
|
||||
Internal_Signal(register char *event)
|
||||
Internal_Signal(register void *event)
|
||||
{
|
||||
int rc = LWP_ENOWAIT;
|
||||
register int i;
|
||||
@ -1256,13 +1262,13 @@ plim(char *name, afs_int32 lc, uchar_t hard)
|
||||
|
||||
#ifdef AFS_SUN5_ENV
|
||||
int
|
||||
LWP_NoYieldSignal(char *event)
|
||||
LWP_NoYieldSignal(void *event)
|
||||
{
|
||||
return (LWP_INTERNALSIGNAL(event, 0));
|
||||
}
|
||||
|
||||
int
|
||||
LWP_SignalProcess(char *event)
|
||||
LWP_SignalProcess(void *event)
|
||||
{
|
||||
return (LWP_INTERNALSIGNAL(event, 1));
|
||||
}
|
||||
@ -1287,7 +1293,7 @@ pthread_key_t lwp_process_key; /* Key associating lwp pid with thread */
|
||||
|
||||
typedef struct event {
|
||||
struct event *next; /* next in hash chain */
|
||||
char *event; /* lwp event: an address */
|
||||
void *event; /* lwp event: an address */
|
||||
int refcount; /* Is it in use? */
|
||||
pthread_cond_t cond; /* Currently associated condition variable */
|
||||
int seq; /* Sequence number: this is incremented
|
||||
@ -1512,7 +1518,7 @@ LWP_TerminateProcessSupport(void)
|
||||
|
||||
/* Get and initialize event structure corresponding to lwp event (i.e. address) */
|
||||
static event_t *
|
||||
getevent(char *event)
|
||||
getevent(void *event)
|
||||
{
|
||||
event_t *evp, *newp;
|
||||
int hashcode;
|
||||
@ -1546,7 +1552,7 @@ getevent(char *event)
|
||||
#define relevent(evp) ((evp)->refcount--)
|
||||
|
||||
int
|
||||
LWP_WaitProcess(char *event)
|
||||
LWP_WaitProcess(void *event)
|
||||
{ /* wait on a single event */
|
||||
struct event *ev;
|
||||
int seq;
|
||||
@ -1570,7 +1576,7 @@ LWP_MwaitProcess(int wcount, char *evlist[])
|
||||
}
|
||||
|
||||
int
|
||||
LWP_NoYieldSignal(char *event)
|
||||
LWP_NoYieldSignal(void *event)
|
||||
{
|
||||
struct event *ev;
|
||||
debugf(("%s: no yield signal (%x)\n", lwp_process_string(), event));
|
||||
@ -1586,7 +1592,7 @@ LWP_NoYieldSignal(char *event)
|
||||
}
|
||||
|
||||
int
|
||||
LWP_SignalProcess(char *event)
|
||||
LWP_SignalProcess(void *event)
|
||||
{
|
||||
struct event *ev;
|
||||
debugf(("%s: signal process (%x)\n", lwp_process_string(), event));
|
||||
|
@ -223,7 +223,7 @@ struct lwp_pcb { /* process control block */
|
||||
char blockflag; /* if (blockflag), process blocked */
|
||||
char eventlistsize; /* size of eventlist array */
|
||||
char padding; /* force 32-bit alignment */
|
||||
char **eventlist; /* ptr to array of eventids */
|
||||
void **eventlist; /* ptr to array of eventids */
|
||||
int eventcnt; /* no. of events currently in eventlist array */
|
||||
int wakevent; /* index of eventid causing wakeup */
|
||||
int waitcnt; /* min number of events awaited */
|
||||
@ -232,7 +232,7 @@ struct lwp_pcb { /* process control block */
|
||||
char *stack; /* ptr to process stack */
|
||||
int stacksize; /* size of stack */
|
||||
int stackcheck; /* first word of stack for overflow checking */
|
||||
int (*ep) (); /* initial entry point */
|
||||
void *(*ep)(void *); /* initial entry point */
|
||||
char *parm; /* initial parm for process */
|
||||
struct lwp_context
|
||||
context; /* saved context for next dispatch */
|
||||
@ -348,7 +348,7 @@ extern void IOMGR_Sleep(int seconds);
|
||||
extern int IOMGR_Cancel(PROCESS pid);
|
||||
extern int IOMGR_Initialize(void);
|
||||
extern void IOMGR_FreeFDSet(fd_set * fds);
|
||||
extern int IOMGR_SoftSig(int (*aproc) (), char *arock);
|
||||
extern int IOMGR_SoftSig(void *(*aproc) (void *), void *arock);
|
||||
|
||||
|
||||
/* fasttime.c */
|
||||
@ -374,15 +374,22 @@ extern int LWP_QWait(void);
|
||||
extern int LWP_QSignal(PROCESS pid);
|
||||
#else
|
||||
extern int LWP_CurrentProcess(PROCESS * pid);
|
||||
extern int LWP_INTERNALSIGNAL(char *event, int yield);
|
||||
extern int LWP_INTERNALSIGNAL(void *event, int yield);
|
||||
extern int LWP_InitializeProcessSupport(int priority, PROCESS * pid);
|
||||
extern int LWP_CreateProcess(int (*ep) (), int stacksize, int priority,
|
||||
extern int LWP_CreateProcess(void *(*ep)(void *), int stacksize, int priority,
|
||||
void *parm, char *name, PROCESS * pid);
|
||||
extern int LWP_DestroyProcess(PROCESS pid);
|
||||
extern int LWP_WaitProcess(char *event);
|
||||
extern int LWP_DispatchProcess(void);
|
||||
extern int LWP_WaitProcess(void *event);
|
||||
extern PROCESS LWP_ThreadId(void);
|
||||
extern int LWP_QWait(void);
|
||||
extern int LWP_QSignal(register PROCESS pid);
|
||||
#endif
|
||||
|
||||
extern afs_int32 savecontext(void *(*ep)(void *),
|
||||
struct lwp_context *savearea, char *sp);
|
||||
extern void returnto(struct lwp_context *savearea);
|
||||
|
||||
#ifdef AFS_LINUX24_ENV
|
||||
/* max time we are allowed to spend in a select call on Linux to avoid
|
||||
lost signal issues */
|
||||
|
@ -34,7 +34,7 @@ PRE_InitPreempt(struct timeval *slice)
|
||||
}
|
||||
|
||||
int
|
||||
PRE_EndPreempt()
|
||||
PRE_EndPreempt(void)
|
||||
{
|
||||
return LWP_SUCCESS;
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ extern char PRE_Block; /* used in lwp.c and process.s */
|
||||
#if defined(USE_UCONTEXT) && defined(HAVE_UCONTEXT_H)
|
||||
|
||||
afs_int32
|
||||
savecontext(char (*ep) (), struct lwp_context *savearea, char *newsp)
|
||||
savecontext(void (*ep) (void *dummy), struct lwp_context *savearea, char *newsp)
|
||||
{
|
||||
#if defined(AFS_LINUX20_ENV)
|
||||
/* getcontext does not export stack info */
|
||||
@ -69,8 +69,7 @@ savecontext(char (*ep) (), struct lwp_context *savearea, char *newsp)
|
||||
}
|
||||
|
||||
void
|
||||
returnto(savearea)
|
||||
struct lwp_context *savearea;
|
||||
returnto(struct lwp_context *savearea)
|
||||
{
|
||||
PRE_Block = 0;
|
||||
|
||||
@ -173,7 +172,7 @@ static int ptr_mangle(int p)
|
||||
|
||||
afs_int32
|
||||
savecontext(ep, savearea, sp)
|
||||
char (*ep) ();
|
||||
void (*ep) ();
|
||||
struct lwp_context *savearea;
|
||||
char *sp;
|
||||
{
|
||||
@ -233,7 +232,7 @@ savecontext(ep, savearea, sp)
|
||||
return 0;
|
||||
}
|
||||
|
||||
afs_int32
|
||||
void
|
||||
returnto(struct lwp_context * savearea)
|
||||
{
|
||||
#if defined(DEBUG)
|
||||
@ -249,7 +248,7 @@ returnto(struct lwp_context * savearea)
|
||||
#endif
|
||||
PRE_Block = 0;
|
||||
longjmp(savearea->setjmp_buffer, 2);
|
||||
return 0;
|
||||
return;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -30,13 +30,14 @@ extern int TM_eql(struct timeval *t1, struct timeval *t2);
|
||||
#ifndef _TIMER_IMPL_
|
||||
#define Tm_Insert(list, elem) openafs_insque(list, elem)
|
||||
#define TM_Remove(list, elem) openafs_remque(elem)
|
||||
extern int TM_Rescan();
|
||||
void TM_Insert();
|
||||
extern struct TM_Elem *TM_GetExpired();
|
||||
extern struct TM_Elem *TM_GetEarliest();
|
||||
extern int TM_Rescan(struct TM_Elem *tlist);
|
||||
void TM_Insert(struct TM_Elem *tlistPtr, struct TM_Elem *elem);
|
||||
extern struct TM_Elem *TM_GetExpired(struct TM_Elem *tlist);
|
||||
extern struct TM_Elem *TM_GetEarliest(struct TM_Elem *tlist);
|
||||
#endif
|
||||
|
||||
extern int TM_Final();
|
||||
extern int TM_Init(register struct TM_Elem **list);
|
||||
extern int TM_Final(register struct TM_Elem **list);
|
||||
|
||||
#define FOR_ALL_ELTS(var, list, body)\
|
||||
{\
|
||||
|
@ -134,8 +134,8 @@ rxk_Listener(void)
|
||||
/* This is the server process request loop. The server process loop
|
||||
* becomes a listener thread when rxi_ServerProc returns, and stays
|
||||
* listener thread until rxi_ListenerProc returns. */
|
||||
void
|
||||
rx_ServerProc(void)
|
||||
void *
|
||||
rx_ServerProc(void *unused)
|
||||
{
|
||||
osi_socket sock;
|
||||
int threadID;
|
||||
|
@ -718,7 +718,7 @@ rx_StartServer(int donateMe)
|
||||
(*registerProgram) (pid, name);
|
||||
#endif /* KERNEL */
|
||||
#endif /* AFS_NT40_ENV */
|
||||
rx_ServerProc(); /* Never returns */
|
||||
rx_ServerProc(NULL); /* Never returns */
|
||||
}
|
||||
#ifdef RX_ENABLE_TSFPQ
|
||||
/* no use leaving packets around in this thread's local queue if
|
||||
|
@ -273,8 +273,8 @@ osi_AssertFailK(const char *expr, const char *file, int line)
|
||||
#ifndef UKERNEL
|
||||
/* This is the server process request loop. Kernel server
|
||||
* processes never become listener threads */
|
||||
void
|
||||
rx_ServerProc(void)
|
||||
void *
|
||||
rx_ServerProc(void *unused)
|
||||
{
|
||||
int threadID;
|
||||
|
||||
|
@ -75,7 +75,7 @@ rxi_Wakeup(void *addr)
|
||||
}
|
||||
|
||||
PROCESS rx_listenerPid = 0; /* LWP process id of socket listener process */
|
||||
static int rx_ListenerProc(void *dummy);
|
||||
static void* rx_ListenerProc(void *dummy);
|
||||
|
||||
/*
|
||||
* Delay the current thread the specified number of seconds.
|
||||
@ -119,14 +119,14 @@ rxi_InitializeThreadSupport(void)
|
||||
}
|
||||
|
||||
void
|
||||
rxi_StartServerProc(void (*proc) (void), int stacksize)
|
||||
rxi_StartServerProc(void *(*proc) (void *), int stacksize)
|
||||
{
|
||||
PROCESS scratchPid;
|
||||
static int number = 0;
|
||||
char name[32];
|
||||
|
||||
sprintf(name, "srv_%d", ++number);
|
||||
LWP_CreateProcess((int (*)(void *))proc, stacksize, RX_PROCESS_PRIORITY, (void *)0,
|
||||
LWP_CreateProcess(proc, stacksize, RX_PROCESS_PRIORITY, NULL,
|
||||
"rx_ServerProc", &scratchPid);
|
||||
if (registerProgram)
|
||||
(*registerProgram) (scratchPid, name);
|
||||
@ -320,7 +320,7 @@ rxi_ListenerProc(fd_set * rfds, int *tnop, struct rx_call **newcallp)
|
||||
/* This is the listener process request loop. The listener process loop
|
||||
* becomes a server thread when rxi_ListenerProc returns, and stays
|
||||
* server thread until rxi_ServerProc returns. */
|
||||
static int
|
||||
static void *
|
||||
rx_ListenerProc(void *dummy)
|
||||
{
|
||||
int threadID;
|
||||
@ -343,13 +343,14 @@ rx_ListenerProc(void *dummy)
|
||||
/* assert(sock != OSI_NULLSOCKET); */
|
||||
}
|
||||
/* not reached */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* This is the server process request loop. The server process loop
|
||||
* becomes a listener thread when rxi_ServerProc returns, and stays
|
||||
* listener thread until rxi_ListenerProc returns. */
|
||||
void
|
||||
rx_ServerProc(void)
|
||||
void *
|
||||
rx_ServerProc(void * unused)
|
||||
{
|
||||
osi_socket sock;
|
||||
int threadID;
|
||||
@ -376,6 +377,7 @@ rx_ServerProc(void)
|
||||
/* assert(newcall != NULL); */
|
||||
}
|
||||
/* not reached */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -365,7 +365,7 @@ extern osi_socket *rxk_NewSocket(short aport);
|
||||
extern int rxk_ReadPacket(osi_socket so, struct rx_packet *p, int *host,
|
||||
int *port);
|
||||
#ifdef UKERNEL
|
||||
extern void rx_ServerProc(void);
|
||||
extern void *rx_ServerProc(void *);
|
||||
#endif
|
||||
extern void osi_AssertFailK(const char *expr, const char *file, int line);
|
||||
extern void rxk_ListenerProc(void);
|
||||
@ -419,7 +419,6 @@ extern void afs_rxevent_daemon(void);
|
||||
|
||||
|
||||
/* rx_lwp.c */
|
||||
extern void rx_ServerProc(void);
|
||||
extern void rxi_Sleep(void *addr);
|
||||
extern void rxi_Delay(int seconds);
|
||||
extern void rxi_InitializeThreadSupport(void);
|
||||
@ -429,9 +428,9 @@ extern void rxi_StopListener(void);
|
||||
extern void rxi_ReScheduleEvents(void);
|
||||
#endif
|
||||
extern void rxi_InitializeThreadSupport(void);
|
||||
extern void rxi_StartServerProc(void (*proc) (void), int stacksize);
|
||||
extern void rxi_StartServerProc(void *(*proc) (void *), int stacksize);
|
||||
extern void rxi_StartListener(void);
|
||||
extern void rx_ServerProc(void);
|
||||
extern void *rx_ServerProc(void *);
|
||||
extern int rxi_Listen(osi_socket sock);
|
||||
extern int rxi_Recvmsg(osi_socket socket, struct msghdr *msg_p, int flags);
|
||||
extern int rxi_Sendmsg(osi_socket socket, struct msghdr *msg_p, int flags);
|
||||
@ -531,11 +530,11 @@ extern int rxi_AdjustDgramPackets(int frags, int mtu);
|
||||
/* rx_pthread.c */
|
||||
extern void rxi_Delay(int sec);
|
||||
extern void rxi_InitializeThreadSupport(void);
|
||||
extern void rxi_StartServerProc(void (*proc) (void), int stacksize);
|
||||
extern void rxi_StartServerProc(void *(*proc) (void *), int stacksize);
|
||||
#ifndef rxi_ReScheduleEvents
|
||||
extern void rxi_ReScheduleEvents(void);
|
||||
#endif
|
||||
extern void rx_ServerProc(void);
|
||||
extern void *rx_ServerProc(void *);
|
||||
extern void rxi_StartListener(void);
|
||||
extern int rxi_Listen(osi_socket sock);
|
||||
extern int rxi_Recvmsg(osi_socket socket, struct msghdr *msg_p, int flags);
|
||||
|
@ -108,7 +108,7 @@ server_entry(void *argp)
|
||||
* Start an Rx server process.
|
||||
*/
|
||||
void
|
||||
rxi_StartServerProc(void (*proc) (void), int stacksize)
|
||||
rxi_StartServerProc(void *(*proc) (void *), int stacksize)
|
||||
{
|
||||
pthread_t thread;
|
||||
pthread_attr_t tattr;
|
||||
@ -279,8 +279,8 @@ rx_ListenerProc(void *argp)
|
||||
/* This is the server process request loop. The server process loop
|
||||
* becomes a listener thread when rxi_ServerProc returns, and stays
|
||||
* listener thread until rxi_ListenerProc returns. */
|
||||
void
|
||||
rx_ServerProc(void)
|
||||
void *
|
||||
rx_ServerProc(void * dummy)
|
||||
{
|
||||
osi_socket sock;
|
||||
int threadID;
|
||||
|
@ -305,7 +305,8 @@ ubeacon_InitServerListCommon(ame, info, clones, aservers)
|
||||
* we're sync site or we want to be the sync site. It runs in its very own light-weight
|
||||
* process.
|
||||
*/
|
||||
ubeacon_Interact()
|
||||
void *
|
||||
ubeacon_Interact(void *dummy)
|
||||
{
|
||||
register afs_int32 code;
|
||||
struct timeval tt;
|
||||
|
@ -412,8 +412,8 @@ urecovery_Initialize(register struct ubik_dbase *adbase)
|
||||
* requests. However, the recovery module still has one more task:
|
||||
* propagating the dbase out to everyone who is up in the network.
|
||||
*/
|
||||
int
|
||||
urecovery_Interact(void)
|
||||
void *
|
||||
urecovery_Interact(void *dummy)
|
||||
{
|
||||
afs_int32 code, tcode;
|
||||
struct ubik_server *bestServer = NULL;
|
||||
|
@ -193,7 +193,6 @@ ubik_ServerInitCommon(afs_int32 myHost, short myPort,
|
||||
|
||||
struct rx_service *tservice;
|
||||
extern int VOTE_ExecuteRequest(), DISK_ExecuteRequest();
|
||||
extern void rx_ServerProc();
|
||||
extern int rx_stackSize;
|
||||
|
||||
initialize_U_error_table();
|
||||
|
@ -313,11 +313,11 @@ extern int urecovery_AllBetter(register struct ubik_dbase *adbase,
|
||||
extern int urecovery_AbortAll(struct ubik_dbase *adbase);
|
||||
extern int urecovery_CheckTid(register struct ubik_tid *atid);
|
||||
extern int urecovery_Initialize(register struct ubik_dbase *adbase);
|
||||
extern int urecovery_Interact(void);
|
||||
extern void *urecovery_Interact(void *);
|
||||
extern int DoProbe(struct ubik_server *server);
|
||||
|
||||
|
||||
extern int ubeacon_Interact();
|
||||
extern void *ubeacon_Interact(void *);
|
||||
extern int sdisk_Interact();
|
||||
extern int uvote_Interact();
|
||||
extern int DISK_Abort();
|
||||
|
@ -41,6 +41,7 @@ RCSID
|
||||
#include <sys/stat.h>
|
||||
#include "afsutil.h"
|
||||
#include "fileutil.h"
|
||||
#include <lwp.h>
|
||||
#if defined(AFS_PTHREAD_ENV)
|
||||
#include <assert.h>
|
||||
#include <pthread.h>
|
||||
@ -165,9 +166,10 @@ FSLog(const char *format, ...)
|
||||
va_end(args);
|
||||
} /*FSLog */
|
||||
|
||||
static int
|
||||
DebugOn(int loglevel)
|
||||
static void*
|
||||
DebugOn(void *param)
|
||||
{
|
||||
int loglevel = (int)param;
|
||||
if (loglevel == 0) {
|
||||
ViceLog(0, ("Reset Debug levels to 0\n"));
|
||||
} else {
|
||||
@ -181,8 +183,6 @@ DebugOn(int loglevel)
|
||||
void
|
||||
SetDebug_Signal(int signo)
|
||||
{
|
||||
/* extern int IOMGR_SoftSig();*/
|
||||
|
||||
if (LogLevel > 0) {
|
||||
LogLevel *= 5;
|
||||
|
||||
@ -202,9 +202,9 @@ SetDebug_Signal(int signo)
|
||||
}
|
||||
printLocks = 2;
|
||||
#if defined(AFS_PTHREAD_ENV)
|
||||
DebugOn(LogLevel);
|
||||
DebugOn((void *) LogLevel);
|
||||
#else /* AFS_PTHREAD_ENV */
|
||||
IOMGR_SoftSig(DebugOn, LogLevel);
|
||||
IOMGR_SoftSig(DebugOn, (void *) LogLevel);
|
||||
#endif /* AFS_PTHREAD_ENV */
|
||||
|
||||
(void)signal(signo, SetDebug_Signal); /* on some platforms, this
|
||||
@ -220,9 +220,9 @@ ResetDebug_Signal(int signo)
|
||||
if (printLocks > 0)
|
||||
--printLocks;
|
||||
#if defined(AFS_PTHREAD_ENV)
|
||||
DebugOn(LogLevel);
|
||||
DebugOn((void *) LogLevel);
|
||||
#else /* AFS_PTHREAD_ENV */
|
||||
IOMGR_SoftSig(DebugOn, LogLevel);
|
||||
IOMGR_SoftSig(DebugOn, (void *) LogLevel);
|
||||
#endif /* AFS_PTHREAD_ENV */
|
||||
|
||||
(void)signal(signo, ResetDebug_Signal); /* on some platforms,
|
||||
|
@ -224,7 +224,7 @@ extern int MultiBreakCallBackAlternateAddress_r(struct host *host,
|
||||
struct AFSCBFids *afidp);
|
||||
extern int DumpCallBackState(void);
|
||||
extern int PrintCallBackStats(void);
|
||||
extern int ShutDown(void);
|
||||
extern void *ShutDown(void *);
|
||||
extern void ShutDownAndCore(int dopanic);
|
||||
|
||||
extern struct host *h_Alloc(register struct rx_connection *r_con);
|
||||
|
@ -111,10 +111,10 @@ extern int BreakVolumeCallBacksLater();
|
||||
extern int LogLevel, etext;
|
||||
extern afs_int32 BlocksSpare, PctSpare;
|
||||
|
||||
int ShutDown(void);
|
||||
void *ShutDown(void *);
|
||||
static void ClearXStatValues(), NewParms(), PrintCounters();
|
||||
static void ResetCheckDescriptors(void), ResetCheckSignal(void);
|
||||
static int CheckSignal(void);
|
||||
static void *CheckSignal(void *);
|
||||
extern int GetKeysFromToken();
|
||||
extern int RXAFS_ExecuteRequest();
|
||||
extern int RXSTATS_ExecuteRequest();
|
||||
@ -250,8 +250,8 @@ struct fs_state fs_state =
|
||||
*/
|
||||
|
||||
/* DEBUG HACK */
|
||||
static int
|
||||
CheckDescriptors()
|
||||
static void *
|
||||
CheckDescriptors(void *unused)
|
||||
{
|
||||
#ifndef AFS_NT40_ENV
|
||||
struct afs_stat status;
|
||||
@ -266,8 +266,8 @@ CheckDescriptors()
|
||||
}
|
||||
fflush(stdout);
|
||||
ResetCheckDescriptors();
|
||||
return 0;
|
||||
#endif
|
||||
return 0;
|
||||
} /*CheckDescriptors */
|
||||
|
||||
|
||||
@ -275,19 +275,19 @@ CheckDescriptors()
|
||||
void
|
||||
CheckSignal_Signal(x)
|
||||
{
|
||||
CheckSignal();
|
||||
CheckSignal(NULL);
|
||||
}
|
||||
|
||||
void
|
||||
ShutDown_Signal(x)
|
||||
{
|
||||
ShutDown();
|
||||
ShutDown(NULL);
|
||||
}
|
||||
|
||||
void
|
||||
CheckDescriptors_Signal(x)
|
||||
{
|
||||
CheckDescriptors();
|
||||
CheckDescriptors(NULL);
|
||||
}
|
||||
#else /* AFS_PTHREAD_ENV */
|
||||
void
|
||||
@ -442,8 +442,8 @@ setThreadId(char *s)
|
||||
}
|
||||
|
||||
/* This LWP does things roughly every 5 minutes */
|
||||
static void
|
||||
FiveMinuteCheckLWP()
|
||||
static void *
|
||||
FiveMinuteCheckLWP(void *unused)
|
||||
{
|
||||
static int msg = 0;
|
||||
char tbuffer[32];
|
||||
@ -511,6 +511,7 @@ FiveMinuteCheckLWP()
|
||||
FS_UNLOCK;
|
||||
FS_STATE_UNLOCK;
|
||||
#endif
|
||||
return NULL;
|
||||
} /*FiveMinuteCheckLWP */
|
||||
|
||||
|
||||
@ -519,8 +520,8 @@ FiveMinuteCheckLWP()
|
||||
* it probes the workstations
|
||||
*/
|
||||
|
||||
static void
|
||||
HostCheckLWP()
|
||||
static void *
|
||||
HostCheckLWP(void *unused)
|
||||
{
|
||||
ViceLog(1, ("Starting Host check process\n"));
|
||||
setThreadId("HostCheckLWP");
|
||||
@ -562,14 +563,15 @@ HostCheckLWP()
|
||||
FS_UNLOCK;
|
||||
FS_STATE_UNLOCK;
|
||||
#endif
|
||||
return NULL;
|
||||
} /*HostCheckLWP */
|
||||
|
||||
/* This LWP does fsync checks every 5 minutes: it should not be used for
|
||||
* other 5 minute activities because it may be delayed by timeouts when
|
||||
* it probes the workstations
|
||||
*/
|
||||
static void
|
||||
FsyncCheckLWP()
|
||||
static void *
|
||||
FsyncCheckLWP(void *unused)
|
||||
{
|
||||
afs_int32 code;
|
||||
#ifdef AFS_PTHREAD_ENV
|
||||
@ -628,6 +630,7 @@ FsyncCheckLWP()
|
||||
FS_UNLOCK;
|
||||
FS_STATE_UNLOCK;
|
||||
#endif /* AFS_DEMAND_ATTACH_FS */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
@ -747,8 +750,8 @@ PrintCounters()
|
||||
|
||||
|
||||
|
||||
static int
|
||||
CheckSignal()
|
||||
static void *
|
||||
CheckSignal(void *unused)
|
||||
{
|
||||
if (FS_registered > 0) {
|
||||
/*
|
||||
@ -855,8 +858,8 @@ ShutDownAndCore(int dopanic)
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int
|
||||
ShutDown(void)
|
||||
void *
|
||||
ShutDown(void *unused)
|
||||
{ /* backward compatibility */
|
||||
ShutDownAndCore(DONTPANIC);
|
||||
return 0;
|
||||
@ -2219,12 +2222,12 @@ main(int argc, char *argv[])
|
||||
assert(pthread_attr_setdetachstate(&tattr, PTHREAD_CREATE_DETACHED) == 0);
|
||||
|
||||
assert(pthread_create
|
||||
(&serverPid, &tattr, (void *)FiveMinuteCheckLWP,
|
||||
(&serverPid, &tattr, FiveMinuteCheckLWP,
|
||||
&fiveminutes) == 0);
|
||||
assert(pthread_create
|
||||
(&serverPid, &tattr, (void *)HostCheckLWP, &fiveminutes) == 0);
|
||||
(&serverPid, &tattr, HostCheckLWP, &fiveminutes) == 0);
|
||||
assert(pthread_create
|
||||
(&serverPid, &tattr, (void *)FsyncCheckLWP, &fiveminutes) == 0);
|
||||
(&serverPid, &tattr, FsyncCheckLWP, &fiveminutes) == 0);
|
||||
#else /* AFS_PTHREAD_ENV */
|
||||
ViceLog(5, ("Starting LWP\n"));
|
||||
assert(LWP_CreateProcess
|
||||
|
@ -60,7 +60,7 @@ afs_uint32 HostAddress[MAXSERVERID + 1];
|
||||
extern int afsconf_CheckAuth();
|
||||
extern int afsconf_ServerAuth();
|
||||
|
||||
static CheckSignal();
|
||||
static void *CheckSignal(void*);
|
||||
int LogLevel = 0;
|
||||
int smallMem = 0;
|
||||
int rxJumbograms = 1; /* default is to send and receive jumbo grams */
|
||||
@ -77,8 +77,8 @@ CheckSignal_Signal()
|
||||
IOMGR_SoftSig(CheckSignal, 0);
|
||||
}
|
||||
|
||||
static
|
||||
CheckSignal()
|
||||
static void *
|
||||
CheckSignal(void *unused)
|
||||
{
|
||||
register int i, errorcode;
|
||||
struct ubik_trans *trans;
|
||||
@ -94,7 +94,7 @@ CheckSignal()
|
||||
for (i = 0; i < HASHSIZE; i++) {
|
||||
HashIdDump(trans, i);
|
||||
}
|
||||
return (ubik_EndTrans(trans));
|
||||
return ((void *)ubik_EndTrans(trans));
|
||||
} /*CheckSignal */
|
||||
|
||||
|
||||
|
@ -142,8 +142,8 @@ TryUnlock()
|
||||
}
|
||||
|
||||
/* background daemon for timing out transactions */
|
||||
static void
|
||||
BKGLoop()
|
||||
static void*
|
||||
BKGLoop(void *unused)
|
||||
{
|
||||
struct timeval tv;
|
||||
int loop = 0;
|
||||
@ -164,12 +164,14 @@ BKGLoop()
|
||||
ReOpenLog(AFSDIR_SERVER_VOLSERLOG_FILEPATH);
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Background daemon for sleeping so the volserver does not become I/O bound */
|
||||
afs_int32 TTsleep, TTrun;
|
||||
static void
|
||||
BKGSleep()
|
||||
static void *
|
||||
BKGSleep(void *unused)
|
||||
{
|
||||
struct volser_trans *tt;
|
||||
|
||||
@ -197,6 +199,7 @@ BKGSleep()
|
||||
VTRANS_UNLOCK;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#ifndef AFS_NT40_ENV
|
||||
|
@ -198,8 +198,8 @@ xstat_cm_Cleanup(int a_releaseMem)
|
||||
* Side Effects:
|
||||
* As advertised.
|
||||
*------------------------------------------------------------------------*/
|
||||
static void
|
||||
xstat_cm_LWP()
|
||||
static void *
|
||||
xstat_cm_LWP(void *unused)
|
||||
{
|
||||
static char rn[] = "xstat_cm_LWP"; /*Routine name */
|
||||
register afs_int32 code; /*Results of calls */
|
||||
@ -349,6 +349,7 @@ xstat_cm_LWP()
|
||||
code);
|
||||
} /*Continuous execution */
|
||||
} /*Service loop */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
@ -238,8 +238,8 @@ xstat_fs_Cleanup(int a_releaseMem)
|
||||
* Nothing interesting.
|
||||
*------------------------------------------------------------------------*/
|
||||
|
||||
static void
|
||||
xstat_fs_LWP()
|
||||
static void *
|
||||
xstat_fs_LWP(void *unused)
|
||||
{
|
||||
static char rn[] = "xstat_fs_LWP"; /*Routine name */
|
||||
register afs_int32 code; /*Results of calls */
|
||||
@ -388,6 +388,7 @@ xstat_fs_LWP()
|
||||
code);
|
||||
} /*Continuous execution */
|
||||
} /*Service loop */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user