Remove old I/O event scanning

This commit is contained in:
Marty Kraimer
1992-09-01 08:08:17 +00:00
parent aa920741dd
commit 4815136b76
2 changed files with 46 additions and 36 deletions
+45 -34
View File
@@ -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 <vxWorks.h>
@@ -124,7 +125,6 @@ long scanInit()
initPeriodic();
initEvent();
scan_init(); /*old IO_EVENT_SCAN*/
buildScanLists();
for (i=0;i<nPeriodic; i++) spawnPeriodic(i);
spawnEvent();
@@ -182,25 +182,31 @@ void scanAdd(struct dbCommon *precord)
}
addToList(precord,psl);
} else if(scan==SCAN_IO_EVENT) {
short cmd=0;
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) {
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;
+1 -2
View File
@@ -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");