diff --git a/src/db/dbAccess.c b/src/db/dbAccess.c index 6fe261fc9..1065a829e 100644 --- a/src/db/dbAccess.c +++ b/src/db/dbAccess.c @@ -65,7 +65,6 @@ of this distribution. #include "recSup.h" #include "recGbl.h" #include "special.h" -#include "asLib.h" extern long lset_stack_not_empty; struct dbBase *pdbbase=NULL; @@ -84,7 +83,15 @@ static short mapDBFToDBR[DBF_NTYPES] = { * that flag becomes unset. */ #define MAX_LOCK 10 + +/* The following is to handle SPC_AS */ +static SPC_ASCALLBACK spcAsCallback = 0; +void dbSpcAsRegisterCallback(SPC_ASCALLBACK func) +{ + spcAsCallback = func; +} + static long putSpecial(DBADDR *paddr,int pass) { long int (*pspecial)()=NULL; @@ -105,7 +112,7 @@ static long putSpecial(DBADDR *paddr,int pass) else scanAdd(precord); }else if((special==SPC_AS) && (pass==1)) { - asChangeGroup((ASMEMBERPVT *)&precord->asp,precord->asg); + if(spcAsCallback) (*spcAsCallback)(precord); } }else { if( prset && (pspecial = (prset->special))) { diff --git a/src/db/dbAccess.h b/src/db/dbAccess.h index fea01f78c..88e00e781 100644 --- a/src/db/dbAccess.h +++ b/src/db/dbAccess.h @@ -245,6 +245,9 @@ void dbNotifyAdd(struct dbCommon *pfrom,struct dbCommon *pto); void dbNotifyCancel(PUTNOTIFY *pputnotify); /*dbNotifyCompletion called by recGblFwdLink */ void dbNotifyCompletion(struct dbCommon *precord); +typedef void(*SPC_ASCALLBACK)(struct dbCommon *); +/*dbSpcAsRegisterCallback called by access security */ +void dbSpcAsRegisterCallback(SPC_ASCALLBACK func); long dbBufferSize(short dbrType,long options,long nRequest); long dbValueSize(short dbrType); diff --git a/src/db/iocInit.c b/src/db/iocInit.c index b3bbec241..d68735cff 100644 --- a/src/db/iocInit.c +++ b/src/db/iocInit.c @@ -75,7 +75,6 @@ of this distribution. #include "envDefs.h" #include "dbStaticLib.h" #include "initHooks.h" -#include "asLib.h" extern struct dbBase *pdbbase; LOCAL int initialized=FALSE;