Skip to content

Commit

Permalink
build asTrapWrite in dbCore
Browse files Browse the repository at this point in the history
Move asTrap* definitions from asLib.h
Include asTrapWrite.h from asDbLib.h to reduce
the possibility of build failures.
  • Loading branch information
mdavidsaver committed Jun 11, 2024
1 parent 694eee9 commit 0756507
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 32 deletions.
2 changes: 2 additions & 0 deletions modules/database/src/ioc/as/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions modules/database/src/ioc/as/asDbLib.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

#include "callback.h"
#include "dbCoreAPI.h"
#include "asTrapWrite.h"

typedef struct {
epicsCallback callback;
Expand Down
37 changes: 34 additions & 3 deletions modules/database/src/ioc/as/asTrapWrite.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#ifndef INCasTrapWriteh
#define INCasTrapWriteh

#include "libComAPI.h"
#include "dbCoreAPI.h"

#ifdef __cplusplus
extern "C" {
Expand Down Expand Up @@ -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
Expand Down
2 changes: 0 additions & 2 deletions modules/libcom/src/as/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
27 changes: 0 additions & 27 deletions modules/libcom/src/as/asLib.h
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down Expand Up @@ -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*/
Expand Down

0 comments on commit 0756507

Please sign in to comment.