Experimental Physics and
| |||||||||||||||||
|
Andrew Johnson wrote: It's just that it doesn't seem to make much sense to pass the The dbCommon field rset did not initially exist. That is probably why the second argument is passed to the inam routine. The entire code for calling the iname routine looks strange. if(strlen(psub->inam)!=0) { /* convert the initialization subroutine name */ psub->sadr = (void *)registryFunctionFind(psub->inam); if(psub->sadr==0) { recGblRecordError(S_db_BadSub,(void *)psub,"recSub(init_record)"); return(S_db_BadSub); } /* invoke the initialization subroutine */ psubroutine = (SUBFUNCPTR)(psub->sadr); status = (*psubroutine)(psub,process); } Note that sadr is later used to store the address of the snam routine. I think the above code should be: if(strlen(psub->inam)!=0) { /* convert the initialization subroutine name */ psubroutine = (void *)registryFunctionFind(psub->inam); if(psubroutine ==0) { recGblRecordError(S_db_BadSub,(void *)psub,"recSub(init_record)"); return(S_db_BadSub); } /* invoke the initialization subroutine */ status = (*psubroutine )(psub); } Note that record reference manual never mentions a second argument to the init routine.
| ||||||||||||||||
ANJ, 10 Aug 2010 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |