diff --git a/src/db/dbScan.c b/src/db/dbScan.c index 43faf4f10..64695f67f 100644 --- a/src/db/dbScan.c +++ b/src/db/dbScan.c @@ -30,11 +30,12 @@ * * Modification Log: * ----------------- - * .18 07-18-91 mrk major revision - * .19 02-05-92 jba Changed function arguments from paddr to precord - * .20 05-19-92 mrk Changes for internal database structure changes - * .21 08-11-92 jba ANSI C changes - * .22 08-26-92 jba init piosl NULL in scanAdd,scanDelete & added test + * .01 07-18-91 mrk major revision of old scan tasks + * .02 02-05-92 jba Changed function arguments from paddr to precord + * .03 05-19-92 mrk Changes for internal database structure changes + * .04 08-11-92 jba ANSI C changes + * .05 08-26-92 jba init piosl NULL in scanAdd,scanDelete & added test + * .06 08-27-92 mrk removed support for old I/O event scanning */ #include @@ -124,7 +125,6 @@ long scanInit() initPeriodic(); initEvent(); - scan_init(); /*old IO_EVENT_SCAN*/ buildScanLists(); for (i=0;idset->get_ioint_info; + DEVSUPFUN get_ioint_info; - if(get_ioint_info==NULL) return; - if(get_ioint_info(&cmd,precord,&piosl,&dummy1,&dummy2)) return;/*return if error*/ - if(cmd==-1) { - add_to_scan_list(precord); /*old IO_EVENT_SCAN*/ - } else { - if(piosl==NULL) return; - priority = precord->prio; - if(priority<0 || priority>=NUM_CALLBACK_PRIORITIES) { - recGblRecordError(-1,(void *)precord,"scanAdd: illegal prio field"); - return; - } - piosl += priority; /* get piosl for correct priority*/ - addToList(precord,&piosl->scan_list); + if(precord->dset==NULL){ + recGblRecordError(-1,(void *)precord,"scanAdd: I/O Intr not valid (no DSET) "); + return; } + get_ioint_info=precord->dset->get_ioint_info; + if(get_ioint_info==NULL) { + recGblRecordError(-1,(void *)precord,"scanAdd: I/O Intr not valid (no get_ioint_info)"); + return; + } + if(get_ioint_info(0,precord,&piosl)) return;/*return if error*/ + if(piosl==NULL) { + recGblRecordError(-1,(void *)precord,"scanAdd: I/O Intr not valid"); + return; + } + priority = precord->prio; + if(priority<0 || priority>=NUM_CALLBACK_PRIORITIES) { + recGblRecordError(-1,(void *)precord,"scanAdd: illegal prio field"); + return; + } + piosl += priority; /* get piosl for correct priority*/ + addToList(precord,&piosl->scan_list); } else if(scan>=SCAN_1ST_PERIODIC) { int ind; @@ -235,25 +241,30 @@ void scanDelete(struct dbCommon *precord) else deleteFromList(precord,psl); } else if(scan==SCAN_IO_EVENT) { - short cmd=1; struct io_scan_list *piosl=NULL; int priority,dummy1,dummy2; - DEVSUPFUN get_ioint_info=precord->dset->get_ioint_info; + DEVSUPFUN get_ioint_info; - if(get_ioint_info==NULL) return; - if(get_ioint_info(&cmd,precord,&piosl,&dummy1,&dummy2)) return;/*return if error*/ - if(cmd==-1) { - delete_from_scan_list(precord); /*old IO_EVENT_SCAN*/ - } else { - if(piosl==NULL) return; - priority = precord->prio; - if(priority<0 || priority>=NUM_CALLBACK_PRIORITIES) { + if(precord->dset==NULL) { + recGblRecordError(-1,(void *)precord,"scanDelete: I/O Intr not valid (no DSET)"); + return; + } + get_ioint_info=precord->dset->get_ioint_info; + if(get_ioint_info==NULL) { + recGblRecordError(-1,(void *)precord,"scanDelete: I/O Intr not valid (no get_ioint_info)"); + } + if(get_ioint_info(1,precord,&piosl)) return;/*return if error*/ + if(piosl==NULL) { + recGblRecordError(-1,(void *)precord,"scanDelete: I/O Intr not valid"); + return; + } + priority = precord->prio; + if(priority<0 || priority>=NUM_CALLBACK_PRIORITIES) { recGblRecordError(-1,(void *)precord,"scanDelete: get_ioint_info returned illegal priority"); return; - } - piosl += priority; /*get piosl for correct priority*/ - deleteFromList(precord,&piosl->scan_list); } + piosl += priority; /*get piosl for correct priority*/ + deleteFromList(precord,&piosl->scan_list); } else if(scan>=SCAN_1ST_PERIODIC) { int ind; diff --git a/src/db/iocInit.c b/src/db/iocInit.c index 2f735acda..289029c27 100644 --- a/src/db/iocInit.c +++ b/src/db/iocInit.c @@ -47,6 +47,7 @@ * .17 06-16-92 jba Added prset test to call of init_record second time loop * .18 07-31-92 rcz moved database loading to function dbLoad * .19 08-14-92 jba included dblinks with maximize severity in lockset + * .20 08-27-92 mrk removed wakeup_init (For old I/O Event scanning) * */ @@ -91,7 +92,6 @@ static initialized=FALSE; /* The following is for use by interrupt routines */ int interruptAccept=FALSE; -extern short wakeup_init; /*old IO_EVENT_SCAN*/ struct dbBase *pdbBase=NULL; @@ -167,7 +167,6 @@ char * pResourceFilename; /* wait 1/2 second to make sure all tasks are started*/ (void)taskDelay(sysClkRateGet()/2); interruptAccept=TRUE; - wakeup_init=TRUE; /*old IO_EVENT_SCAN*/ if(initialProcess()!=0) logMsg("iocInit: initialProcess Failed\n"); rsrv_init(); logMsg("iocInit: All initialization complete\n");