From 817da309c30062b10ae6e9ca89cd444c154655fd Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Wed, 4 Aug 1993 10:17:17 +0000 Subject: [PATCH] *** empty log message *** --- src/drv/drvAb.c | 11 ++++++----- src/drv/drvBitBus.c | 12 +++++++++--- src/drv/drvComet.c | 4 ++++ src/drv/drvCompuSm.c | 11 +++++++---- src/drv/drvFp.c | 14 +++++++++----- src/drv/drvGpib.c | 6 +++++- src/drv/drvJgvtr1.c | 5 ++++- src/drv/drvMsg.c | 10 +++++++--- src/drv/drvOms.c | 20 ++++++++++++-------- src/drv/drvXy240.c | 6 +++++- src/drv/drvXy566.c | 9 ++++----- 11 files changed, 72 insertions(+), 36 deletions(-) diff --git a/src/drv/drvAb.c b/src/drv/drvAb.c index db634c12c..242ffce9f 100644 --- a/src/drv/drvAb.c +++ b/src/drv/drvAb.c @@ -1,9 +1,5 @@ -/* drvAb.c */ +/* drvAb.c - Driver Support Routines for Allen Bradley */ /* share/src/drv $Id$ */ - -/* drvAb.c - Driver Support Routines for Alleb Bradley */ - -/* share/src/drv @(#)ab_driver.c 1.4 5/15/92 */ /* * routines that are used, below the ai, ao, bi and bo drivers to interface * to the Allen-Bradley Remote Serial IO @@ -185,6 +181,7 @@ * .58 07-22-93 mrk For AB1771IL sign_bit>>= becomes sign_bit<<= * .59 07-27-93 mrk Included changes made by Jeff Hill to stop warning messages * .60 07-27-93 mrk Made changes for vxWorks 5.x semLib + * .61 08-02-93 mrk Added call to taskwdInsert */ /* @@ -304,6 +301,7 @@ #include #include +#include #include #include @@ -1291,15 +1289,18 @@ ab_driver_init() if (abScanId) td(abScanId); abScanId = taskSpawn(ABSCAN_NAME,ABSCAN_PRI,ABSCAN_OPT, ABSCAN_STACK,abScanTask); + taskwdInsert(abScanId,NULL,NULL); /* spawn the done task to handle block transfer responses */ if (abDoneId) td(abDoneId); abDoneId = taskSpawn(ABDONE_NAME,ABDONE_PRI,ABDONE_OPT, ABDONE_STACK,abDoneTask); + taskwdInsert(abDoneId,NULL,NULL); /* spawn the ab change of state interrupt simulator */ if (abCOSId) td(abCOSId); abCOSId = taskSpawn(ABCOS_NAME,ABCOS_PRI,ABCOS_OPT,ABCOS_STACK,ab_bi_cos_simulator); + taskwdInsert(abCOSId,NULL,NULL); } return(0); } diff --git a/src/drv/drvBitBus.c b/src/drv/drvBitBus.c index fae0ac952..8a09ff975 100644 --- a/src/drv/drvBitBus.c +++ b/src/drv/drvBitBus.c @@ -35,6 +35,7 @@ * .05 02-12-92 jrw removed IRQ based transmission. * .06 04-08-92 jrw moved the device configs into module_types.h * .07 09-28-92 jrw upped the reset delay time to 1/2 second + * .08 08-02-93 mrk Added call to taskwdInsert * * NOTES: * This driver currently needs work on error message generation. @@ -59,6 +60,7 @@ #include #include #include +#include #include #include "drvBitBus.h" @@ -137,6 +139,7 @@ initBB() int probeValue; struct xvmeRegs *pXvmeRegs; char *nameTemp[50]; + int taskId; if (init_called) { @@ -232,22 +235,25 @@ initBB() /* start a task to manage the TX link */ sprintf(nameTemp, "%s%d", BBTXLINK_NAME, i); - if (taskSpawn(nameTemp, BBTXLINK_PRI, BBTXLINK_OPT, BBTXLINK_STACK, xvmeTxTask, i) == ERROR) + if ((taskId=taskSpawn(nameTemp, BBTXLINK_PRI, BBTXLINK_OPT, BBTXLINK_STACK, xvmeTxTask, i)) == ERROR) { printf("initBB: failed to start TX link task for link %d\n", i); } + taskwdInsert(taskId,NULL,NULL); /* start a task to manage the RX link */ sprintf(nameTemp, "%s%d", BBRXLINK_NAME, i); - if (taskSpawn(nameTemp, BBRXLINK_PRI, BBRXLINK_OPT, BBRXLINK_STACK, xvmeRxTask, i) == ERROR) + if ((taskId=taskSpawn(nameTemp, BBRXLINK_PRI, BBRXLINK_OPT, BBRXLINK_STACK, xvmeRxTask, i)) == ERROR) { printf("initBB: failed to start RX link task for link %d\n", i); } + taskwdInsert(taskId,NULL,NULL); /* start a task to keep an eye on the busy list */ sprintf(nameTemp, "%s%d", BBWDTASK_NAME, i); - if (taskSpawn(nameTemp, BBWDTASK_PRI, BBWDTASK_OPT, BBWDTASK_STACK, xvmeWdTask, i) == ERROR) + if ((taskId=taskSpawn(nameTemp, BBWDTASK_PRI, BBWDTASK_OPT, BBWDTASK_STACK, xvmeWdTask, i)) == ERROR) { printf("initBB: failed to start watchdog task for link %d\n", i); } + taskwdInsert(taskId,NULL,NULL); } pXvmeRegs++; /* ready for next board window */ } diff --git a/src/drv/drvComet.c b/src/drv/drvComet.c index fb0ba1fa0..65155aa92 100644 --- a/src/drv/drvComet.c +++ b/src/drv/drvComet.c @@ -52,6 +52,7 @@ * .12 joh 092992 card number validation now based on module_types.h. * signal number checking now based on the array element * count. + * .13 mrk 080293 Added call to taskwdInsert */ static char *sccsID = "@(#)drvComet.c 1.11\t9/16/92"; @@ -80,6 +81,7 @@ static char *sccsID = "@(#)drvComet.c 1.11\t9/16/92"; #include #include #include +#include #define COMET_NCHAN 4 #define COMET_CHANNEL_MEM_SIZE 0x20000 /* bytes */ @@ -299,6 +301,7 @@ comet_init() /* free memory and delete tasks from previous initialization */ if (cometDoneTaskId) { + taskwdRemove(cometDoneTaskId); if ((status = taskDelete(cometDoneTaskId)) < 0) logMsg("\nCOMET: Failed to delete cometDoneTask: %d",status); } @@ -374,6 +377,7 @@ comet_init() /* start the waveform readback task */ scan_control = 2; /* scan rate in vxWorks clock ticks */ cometDoneTaskId = taskSpawn("cometWFTask",WFDONE_PRI,WFDONE_OPT,WFDONE_STACK,(FUNCPTR) cometDoneTask); + taskwdInsert(cometDoneTaskId,NULL,NULL); } } diff --git a/src/drv/drvCompuSm.c b/src/drv/drvCompuSm.c index 164bd963e..6a4157080 100644 --- a/src/drv/drvCompuSm.c +++ b/src/drv/drvCompuSm.c @@ -1,6 +1,5 @@ - /* drvCompuSm.c */ -/* share/src/drv @(#)drvCompuSm.c 1.9 8/27/92 */ +/* share/src/drv $Id$ */ /* * subroutines and tasks that are used to interface to the Compumotor 1830 * stepper motor drivers @@ -51,6 +50,7 @@ * .12 08-06-92 joh merged compu sm include file * .13 08-27-92 joh silenced ANSI C function proto warning * .14 08-27-92 joh fixed no epics init + * .15 08-02-93 mrk Added call to taskwdInsert */ #include #include @@ -66,6 +66,7 @@ #include #include #include +#include long compu_sm_io_report(); @@ -556,6 +557,7 @@ compu_driver_init(){ struct compumotor *pmtr; /* memory port to motor card */ int cok = CBBR; /*to reset board */ short none_found; /* flags a steppermotor is present */ + int taskId; /* intialize each driver which is present */ none_found = TRUE; @@ -604,8 +606,9 @@ compu_driver_init(){ /* spawn the sleeping motor driver command and response tasks */ smRespId = taskSpawn("compu_resp_task",SMRESP_PRI,SMRESP_OPT,SMRESP_STACK,compu_resp_task); - taskSpawn("compu_task",SMRESP_PRI,SMRESP_OPT,2000,compu_task); - + taskwdInsert(smRespId,NULL,NULL); + taskId = taskSpawn("compu_task",SMRESP_PRI,SMRESP_OPT,2000,compu_task); + taskwdInsert(taskId,NULL,NULL); return(0); } diff --git a/src/drv/drvFp.c b/src/drv/drvFp.c index 0ac158958..f0214d266 100644 --- a/src/drv/drvFp.c +++ b/src/drv/drvFp.c @@ -50,6 +50,7 @@ * .12 joh 072792 added soft reboot int disable * .13 joh 082792 converted to V5 vxorks * .14 mrk 090192 support epics I/O event scan, and added DRVET + * .15 mrk 080293 Add call to taskwdInsert */ @@ -86,7 +87,7 @@ * */ -static char *sccsId = "$Id$\t$Date$"; +static char *sccsId = "@(#)drvFp.c 1.12\t6/4/93"; #include "vxWorks.h" #include "vme.h" @@ -100,6 +101,7 @@ static char *sccsId = "$Id$\t$Date$"; #include "module_types.h" #include #include +#include #ifndef EPICS_V2 #include #endif @@ -515,11 +517,13 @@ fp_monitor() static char *name = "fpmon"; int tid; - if ((tid = taskNameToId(name)) != ERROR) + if ((tid = taskNameToId(name)) != ERROR) { + taskwdRemove(tid); taskDelete(tid); - if (taskSpawn(name,25,VX_SUPERVISOR_MODE|VX_STDIO, - 1000,fp_mon) == ERROR) - return -1; + } + if((tid = taskSpawn(name,25,VX_SUPERVISOR_MODE|VX_STDIO, + 1000,fp_mon)) == ERROR) return -1; + taskwdInsert(tid,NULL,NULL); return 0; } diff --git a/src/drv/drvGpib.c b/src/drv/drvGpib.c index 60a39a2cf..8d8c55a91 100644 --- a/src/drv/drvGpib.c +++ b/src/drv/drvGpib.c @@ -40,6 +40,7 @@ * .05 02-26-92 jrw changed pnode references in the link task's * busy-list checking, was an endless loop * .06 04-10-92 jrw moved the device configs into module_types.h + * .07 08-02-92 mrk Added call to taskwdInsert * ****************************************************************************** * @@ -70,6 +71,7 @@ #include #include #include +#include #include #include @@ -1178,6 +1180,7 @@ ibLinkStart(plink) struct ibLink *plink; { int j; + int taskId; if (ibDebug || bbibDebug) printf("ibLinkStart(%08.8X): entered for linkType %d, link %d\n", plink, plink->linkType, plink->linkId); @@ -1206,11 +1209,12 @@ struct ibLink *plink; } /* Start a task to manage the link */ - if (taskSpawn(GPIBLINK_NAME, GPIBLINK_PRI, GPIBLINK_OPT, GPIBLINK_STACK, ibLinkTask, plink) == ERROR) + if ((taskId = taskSpawn(GPIBLINK_NAME, GPIBLINK_PRI, GPIBLINK_OPT, GPIBLINK_STACK, ibLinkTask, plink)) == ERROR) { printf("ibLinkStart(): failed to start link task for link %d\n", plink->linkId); return(ERROR); } + taskwdInsert(taskId,NULL,NULL); taskDelay(10); /* give it a chance to start running */ return(OK); } diff --git a/src/drv/drvJgvtr1.c b/src/drv/drvJgvtr1.c index bf9e5b5f7..be45e6373 100644 --- a/src/drv/drvJgvtr1.c +++ b/src/drv/drvJgvtr1.c @@ -1,5 +1,5 @@ /* drvJgvtr1.c */ -/* share/src/drv @(#)drvJgvtr1.c 1.9 8/27/92 */ +/* share/src/drv $Id$ */ /* * Author: Jeff Hill * Date: 5-89 @@ -51,6 +51,7 @@ * 062992 joh removed file pointer argument added to io * report by bg * 082792 joh added ANSI C function prototypes + * 080293 mrk added call to taskwdInsert */ static char *sccsID = "@(#)drvJgvtr1.c 1.9\t8/27/92"; @@ -76,6 +77,7 @@ static char *sccsID = "@(#)drvJgvtr1.c 1.9\t8/27/92"; #include #include #include +#include #include #include @@ -284,6 +286,7 @@ long jgvtr1_init( (FUNCPTR) jgvtr1DoneTask); if(status == ERROR) return ERROR; + taskwdInsert(status,NULL,NULL); # ifdef INTERRUPT_HARDWARE_FIXED diff --git a/src/drv/drvMsg.c b/src/drv/drvMsg.c index 1e6a07fbc..812f63352 100644 --- a/src/drv/drvMsg.c +++ b/src/drv/drvMsg.c @@ -29,6 +29,7 @@ * ----------------- * .01 04-14-92 jrw created * .02 05-26-92 jrw changed enumeration of the record types + * .03 08-02-93 mrk Added call to taskwdInsert * */ @@ -57,6 +58,7 @@ #include #include #include +#include #include #include @@ -354,6 +356,7 @@ struct link *plink; /* I/O link structure from record */ char name[20]; long status; int j; + int taskId; if (msgDebug) printf("In drvMsg_genLink\n"); @@ -384,14 +387,15 @@ struct link *plink; /* I/O link structure from record */ return(NULL); } sprintf(name, "%s", pparmBlock->pdrvBlock->taskName); - if (taskSpawn(name, pparmBlock->pdrvBlock->taskPri, pparmBlock->pdrvBlock->taskOpt, pparmBlock->pdrvBlock->taskStack, msgTask, pparmBlock->pdrvBlock, pmsgLink) == ERROR) + if ((taskId = taskSpawn(name, pparmBlock->pdrvBlock->taskPri, pparmBlock->pdrvBlock->taskOpt, pparmBlock->pdrvBlock->taskStack, msgTask, pparmBlock->pdrvBlock, pmsgLink)) == ERROR) { printf("Message driver: Failed to start link task %s\n", name); /* BUG --delete the FASTLOCK in here */ status = ERROR; - } - else + } else { + taskwdInsert(taskId,NULL,NULL); status = OK; + } if (status == ERROR) { diff --git a/src/drv/drvOms.c b/src/drv/drvOms.c index def7eb986..eefb4c080 100644 --- a/src/drv/drvOms.c +++ b/src/drv/drvOms.c @@ -1,6 +1,5 @@ - /* drvOms.c */ -/* share/src/drv @(#)drvOms.c 1.14 4/23/93 */ +/* share/src/drv $Id$ */ /* * subroutines and tasks that are used to interface to the * Oregon Micro Systems six axis stepper motor drivers @@ -58,6 +57,7 @@ * .16 06-26-92 bg Combined drvOms.c with oms_driver.c * .17 06-29-92 joh took file pointer arg out of io report * .18 08-11-92 joh io report format cleanup + * .19 08-02-93 mrk Added call to taskwdInsert */ /* data requests are made from the oms_task at @@ -80,6 +80,7 @@ #include #include #include +#include #define OMS_INT_LEV 5 @@ -354,10 +355,11 @@ oms_task() */ oms_driver_init(){ struct vmex_motor *pmotor; - short i,j,got_one; - int status; - short dummy; - char oms_init_msg[20]; + short i,j,got_one; + int status; + short dummy; + char oms_init_msg[20]; + int taskId; for (i = 0; i < MAX_OMS_CARDS; i++){ resp_inx[i] = 0; @@ -418,10 +420,12 @@ oms_driver_init(){ if(!(oms_send_sem=semBCreate(SEM_Q_FIFO,SEM_FULL))) errMessage(0,"semBcreate failed in oms_driver_init"); /* spawn the motor data request task */ - taskSpawn("oms_task",42,VX_FP_TASK,8000,oms_task); + taskId = taskSpawn("oms_task",42,VX_FP_TASK,8000,oms_task); + taskwdInsert(taskId,NULL,NULL); /* spawn the motor data request task */ - taskSpawn("oms_resp_task",42,VX_FP_TASK,8000,oms_resp_task); + taskId = taskSpawn("oms_resp_task",42,VX_FP_TASK,8000,oms_resp_task); + taskwdInsert(taskId,NULL,NULL); /* enable echo on each motor that is present */ diff --git a/src/drv/drvXy240.c b/src/drv/drvXy240.c index a2efe5a8a..c985a92d5 100644 --- a/src/drv/drvXy240.c +++ b/src/drv/drvXy240.c @@ -1,5 +1,5 @@ /* xy240_driver.c */ -/* share/src/drv @(#)xy240_driver.c 1.1 6/25/92 */ +/* share/src/drv $Id$ */ /* * routines used to test and interface with Xycom240 * digital i/o module @@ -50,6 +50,7 @@ * be printed even when no xy240's are present * .14 09-17-92 joh io report now tabs over detailed info * .15 09-18-92 joh documentation + * .16 08-02-93 mrk Added call to taskwdInsert */ #include "vxWorks.h" @@ -61,6 +62,7 @@ #ifndef EPICS_V2 #include #include +#include #else extern short wakeup_init; /* flags that the database scan initialization i s complete */ @@ -247,6 +249,7 @@ xy240_init() if (at_least_one_present) { if ((tid = taskNameToId(XY240_NAME)) != ERROR){ + taskwdRemove(tid); taskDelete(tid); } @@ -259,6 +262,7 @@ xy240_init() if (status == ERROR){ printf("Unable to create XY240 scan task\n"); } + else taskwdInsert(status,NULL,NULL); } diff --git a/src/drv/drvXy566.c b/src/drv/drvXy566.c index 46ebc258d..1371d4756 100644 --- a/src/drv/drvXy566.c +++ b/src/drv/drvXy566.c @@ -1,9 +1,5 @@ - -/* drvXy566.c */ - /* share/src/drv $Id$ */ -/* - * drvXy566.c - Driver Support Routines for xy566 +/* drvXy566.c - Driver Support Routines for xy566 * * Author: Bob Dalesio * Date: 6-13-88 @@ -81,6 +77,7 @@ * .21 08-27-92 joh fixed routines which return with and without * status * .22 08-27-92 joh fixed nonexsistant EPICS init + * .23 08-02-93 mrk Added call to taskwdInsert */ #include @@ -92,6 +89,7 @@ #include #include #include +#include static char SccsId[] = "$Id$\t$Date$ "; @@ -1132,6 +1130,7 @@ xy566_init() WFDONE_OPT, WFDONE_STACK, xy566DoneTask); + taskwdInsert(wfDoneId,NULL,NULL); return 0; }