diff --git a/modules/database/src/ioc/as/Makefile b/modules/database/src/ioc/as/Makefile index bef8637e59..b9630780e5 100644 --- a/modules/database/src/ioc/as/Makefile +++ b/modules/database/src/ioc/as/Makefile @@ -16,10 +16,12 @@ SRC_DIRS += $(IOCDIR)/as INC += asDbLib.h INC += asCa.h INC += asIocRegister.h +INC += asTrapWrite.h dbCore_SRCS += asDbLib.c dbCore_SRCS += asCa.c dbCore_SRCS += asIocRegister.c +dbCore_SRCS += asTrapWrite.c PROD_HOST += ascheck ascheck_SRCS = ascheck.c diff --git a/modules/database/src/ioc/as/asDbLib.h b/modules/database/src/ioc/as/asDbLib.h index aeef3f2d55..eea7aa5380 100644 --- a/modules/database/src/ioc/as/asDbLib.h +++ b/modules/database/src/ioc/as/asDbLib.h @@ -16,6 +16,7 @@ #include "callback.h" #include "dbCoreAPI.h" +#include "asTrapWrite.h" typedef struct { epicsCallback callback; diff --git a/modules/database/src/ioc/as/asTrapWrite.h b/modules/database/src/ioc/as/asTrapWrite.h index 0d9f4d99b6..1d21209177 100644 --- a/modules/database/src/ioc/as/asTrapWrite.h +++ b/modules/database/src/ioc/as/asTrapWrite.h @@ -20,7 +20,7 @@ #ifndef INCasTrapWriteh #define INCasTrapWriteh -#include "libComAPI.h" +#include "dbCoreAPI.h" #ifdef __cplusplus extern "C" { @@ -79,15 +79,46 @@ typedef void(*asTrapWriteListener)(asTrapWriteMessage *pmessage,int after); * \param func The listener function to be called. * \return A listener identifier for unregistering this listener. */ -LIBCOM_API asTrapWriteId epicsStdCall asTrapWriteRegisterListener( +DBCORE_API +asTrapWriteId epicsStdCall asTrapWriteRegisterListener( asTrapWriteListener func); /** * \brief Unregister asTrapWriteListener. * \param id Listener identifier from asTrapWriteRegisterListener(). */ -LIBCOM_API void epicsStdCall asTrapWriteUnregisterListener( +DBCORE_API +void epicsStdCall asTrapWriteUnregisterListener( asTrapWriteId id); +DBCORE_API +void * epicsStdCall asTrapWriteBeforeWithData( + const char *userid, const char *hostid, void *addr, + int dbrType, int no_elements, void *data); + +DBCORE_API +void epicsStdCall asTrapWriteAfterWrite(void *pvt); + +/* More convenience macros +void *asTrapWriteWithData(ASCLIENTPVT asClientPvt, + const char *userid, const char *hostid, void *addr, + int dbrType, int no_elements, void *data); +void asTrapWriteAfter(ASCLIENTPVT asClientPvt); +*/ +#define asTrapWriteWithData(asClientPvt, user, host, addr, type, count, data) \ + ((asActive && (asClientPvt)->trapMask) \ + ? asTrapWriteBeforeWithData((user), (host), (addr), (type), (count), (data)) \ + : 0) +#define asTrapWriteAfter(pvt) \ + if (pvt) asTrapWriteAfterWrite(pvt) + +/* This macro is for backwards compatibility, upgrade any code + calling it to use asTrapWriteWithData() instead ASAP: +void *asTrapWriteBefore(ASCLIENTPVT asClientPvt, + const char *userid, const char *hostid, void *addr); +*/ +#define asTrapWriteBefore(asClientPvt, user, host, addr) \ + asTrapWriteWithData(asClientPvt, user, host, addr, 0, 0, NULL) + #ifdef __cplusplus } #endif diff --git a/modules/libcom/src/as/Makefile b/modules/libcom/src/as/Makefile index 65f7520187..e293b08078 100644 --- a/modules/libcom/src/as/Makefile +++ b/modules/libcom/src/as/Makefile @@ -14,9 +14,7 @@ SRC_DIRS += $(LIBCOM)/as INC += asLib.h -INC += asTrapWrite.h Com_SRCS += asLib.c -Com_SRCS += asTrapWrite.c CLEANS += asLib.c asLib_lex.c diff --git a/modules/libcom/src/as/asLib.h b/modules/libcom/src/as/asLib.h index 9c47790ebe..73a482a62f 100644 --- a/modules/libcom/src/as/asLib.h +++ b/modules/libcom/src/as/asLib.h @@ -46,27 +46,6 @@ long asCheckPut(ASCLIENTPVT asClientPvt); #define asCheckPut(asClientPvt) \ (!asActive || ((asClientPvt)->access >= asWRITE)) -/* More convenience macros -void *asTrapWriteWithData(ASCLIENTPVT asClientPvt, - const char *userid, const char *hostid, void *addr, - int dbrType, int no_elements, void *data); -void asTrapWriteAfter(ASCLIENTPVT asClientPvt); -*/ -#define asTrapWriteWithData(asClientPvt, user, host, addr, type, count, data) \ - ((asActive && (asClientPvt)->trapMask) \ - ? asTrapWriteBeforeWithData((user), (host), (addr), (type), (count), (data)) \ - : 0) -#define asTrapWriteAfter(pvt) \ - if (pvt) asTrapWriteAfterWrite(pvt) - -/* This macro is for backwards compatibility, upgrade any code - calling it to use asTrapWriteWithData() instead ASAP: -void *asTrapWriteBefore(ASCLIENTPVT asClientPvt, - const char *userid, const char *hostid, void *addr); -*/ -#define asTrapWriteBefore(asClientPvt, user, host, addr) \ - asTrapWriteWithData(asClientPvt, user, host, addr, 0, 0, NULL) - LIBCOM_API long epicsStdCall asInitialize(ASINPUTFUNCPTR inputfunction); LIBCOM_API long epicsStdCall asInitFile( @@ -120,12 +99,6 @@ LIBCOM_API int epicsStdCall asDumpMemFP(FILE *fp,const char *asgname, LIBCOM_API int epicsStdCall asDumpHash(void); LIBCOM_API int epicsStdCall asDumpHashFP(FILE *fp); -LIBCOM_API void * epicsStdCall asTrapWriteBeforeWithData( - const char *userid, const char *hostid, void *addr, - int dbrType, int no_elements, void *data); - -LIBCOM_API void epicsStdCall asTrapWriteAfterWrite(void *pvt); - #define S_asLib_clientsExist (M_asLib| 1) /*Client Exists*/ #define S_asLib_noUag (M_asLib| 2) /*User Access Group does not exist*/ #define S_asLib_noHag (M_asLib| 3) /*Host Access Group does not exist*/