Merge ~epics-core/epics-base/+git/database:epicsCallback into ~epics-core/epics-base/+git/epics-base:7.0

Proposed by mdavidsaver
Status: Merged
Merge reported by: mdavidsaver
Merged at revision: 72a17558fb89ab96493071d1259c855ac96cea5d
Proposed branch: ~epics-core/epics-base/+git/database:epicsCallback
Merge into: ~epics-core/epics-base/+git/epics-base:7.0
Diff against target: 1093 lines (+118/-116)
58 files modified
modules/database/src/ioc/as/asDbLib.h (+1/-1)
modules/database/src/ioc/db/callback.c (+9/-9)
modules/database/src/ioc/db/callback.h (+9/-7)
modules/database/src/ioc/db/dbNotify.c (+3/-3)
modules/database/src/ioc/db/dbScan.c (+6/-6)
modules/database/src/std/dev/asSubRecordFunctions.c (+1/-1)
modules/database/src/std/dev/devAiSoftCallback.c (+1/-1)
modules/database/src/std/dev/devBiSoftCallback.c (+1/-1)
modules/database/src/std/dev/devI64inSoftCallback.c (+1/-1)
modules/database/src/std/dev/devLiSoftCallback.c (+1/-1)
modules/database/src/std/dev/devMbbiDirectSoftCallback.c (+1/-1)
modules/database/src/std/dev/devMbbiSoftCallback.c (+1/-1)
modules/database/src/std/dev/devSiSoftCallback.c (+1/-1)
modules/database/src/std/rec/aaiRecord.c (+2/-2)
modules/database/src/std/rec/aaiRecord.dbd (+1/-1)
modules/database/src/std/rec/aaoRecord.c (+2/-2)
modules/database/src/std/rec/aaoRecord.dbd (+1/-1)
modules/database/src/std/rec/aiRecord.c (+2/-2)
modules/database/src/std/rec/aiRecord.dbd.pod (+1/-1)
modules/database/src/std/rec/aoRecord.c (+2/-2)
modules/database/src/std/rec/aoRecord.dbd.pod (+1/-1)
modules/database/src/std/rec/biRecord.c (+2/-2)
modules/database/src/std/rec/boRecord.c (+4/-4)
modules/database/src/std/rec/calcoutRecord.c (+5/-5)
modules/database/src/std/rec/eventRecord.c (+2/-2)
modules/database/src/std/rec/eventRecord.dbd (+1/-1)
modules/database/src/std/rec/histogramRecord.c (+4/-4)
modules/database/src/std/rec/histogramRecord.dbd (+1/-1)
modules/database/src/std/rec/int64inRecord.c (+2/-2)
modules/database/src/std/rec/int64inRecord.dbd.pod (+1/-1)
modules/database/src/std/rec/int64outRecord.c (+2/-2)
modules/database/src/std/rec/int64outRecord.dbd.pod (+1/-1)
modules/database/src/std/rec/longinRecord.c (+2/-2)
modules/database/src/std/rec/longinRecord.dbd (+1/-1)
modules/database/src/std/rec/longoutRecord.c (+2/-2)
modules/database/src/std/rec/longoutRecord.dbd (+1/-1)
modules/database/src/std/rec/lsiRecord.c (+2/-2)
modules/database/src/std/rec/lsiRecord.dbd (+1/-1)
modules/database/src/std/rec/lsoRecord.c (+2/-2)
modules/database/src/std/rec/lsoRecord.dbd (+1/-1)
modules/database/src/std/rec/mbbiDirectRecord.c (+2/-2)
modules/database/src/std/rec/mbbiDirectRecord.dbd (+1/-1)
modules/database/src/std/rec/mbbiRecord.c (+2/-2)
modules/database/src/std/rec/mbbiRecord.dbd (+1/-1)
modules/database/src/std/rec/mbboDirectRecord.c (+2/-2)
modules/database/src/std/rec/mbboDirectRecord.dbd (+1/-1)
modules/database/src/std/rec/mbboRecord.c (+2/-2)
modules/database/src/std/rec/mbboRecord.dbd (+1/-1)
modules/database/src/std/rec/seqRecord.c (+3/-3)
modules/database/src/std/rec/stringinRecord.c (+2/-2)
modules/database/src/std/rec/stringinRecord.dbd (+1/-1)
modules/database/src/std/rec/stringoutRecord.c (+2/-2)
modules/database/src/std/rec/stringoutRecord.dbd (+1/-1)
modules/database/src/std/rec/waveformRecord.c (+2/-2)
modules/database/src/std/rec/waveformRecord.dbd.pod (+1/-1)
modules/database/test/ioc/db/callbackParallelTest.c (+4/-4)
modules/database/test/ioc/db/callbackTest.c (+4/-4)
modules/libcom/src/taskwd/taskwd.c (+1/-1)
Reviewer Review Type Date Requested Status
Andrew Johnson Needs Fixing
mdavidsaver Approve
Review via email: mp+372385@code.launchpad.net

Description of the change

Second step in migration away from CALLBACK, which clashes with a WIN32 macro.

The first step introduced 'epicsCallback' as an equivalent with 00a974ce528277de9a95987cfda538ff18e38d8c released in 3.15.6, 3.16.2, and 7.0.2 .

This second step allows user code to define EPICS_NO_CALLBACK to prevent callback.h from providing CALLBACK (and undefining the WIN32 macro).

To post a comment you must log in.
Revision history for this message
mdavidsaver (mdavidsaver) wrote :

As this change doesn't change the API (by default), and seems low risk, it crosses my threshold for creating a MR by the number of lines changed. Please note any objections/changes soon.

review: Approve
Revision history for this message
Andrew Johnson (anj) wrote :

Is your plan to mark CALLBACK with EPICS_DEPRECATED at some point? I'm not sure that we will _need_ to do that, but it should be possible.

review: Approve
Revision history for this message
Andrew Johnson (anj) wrote :

This will (of course) need to be applied to 3.15 and merged up, since Windows builds of pva2pva are failing to build against that release because of CALLBACK errors.

However looking at when the pva2pva build started failing I'm reasonably confident that including osiSock.h towards the top of both pdbsingle.cpp and pvif.cpp was probably the trigger. If you were to move that include below dbNotify.h I suspect that will fix the problem without needing this MR.

I still approve of this change, but against 3.15 instead of 7.0. It does need Release Notes too, there were none in the previous step and if you want people to change their code that needs to be documented. They should probably say that we won't deprecate CALLBACK in any 3.15 release.

review: Needs Fixing
Revision history for this message
mdavidsaver (mdavidsaver) wrote :

> Is your plan to mark CALLBACK with EPICS_DEPRECATED at some point?

As a matter of form, yes. Though there is no urgency.

> applied to 3.15

Not "of course" for me, but your decision. As you've indicated approval, I'll apply to 3.15 directly w/o another MR.

> If you were to move

I'll work on cures, but I'm tired of treating this symptom. Someone else will need to find an appropriate bandage this time.

I could pick 299aed026fd40b792f40b08386f208d17166fc40 onto 3.15 as well,
which also fixes things going forward.

> need Release Notes

Yup. I going to wait until any formatting changes have landed. The entry will be:

Add option to avoid CALLBACK conflict.

If a macro EPICS_NO_CALLBACK is defined, then callback.h will no longer (re)define CALLBACK.
The name 'CALLBACK' is used by the WIN32 API, and redefinition in callback.h cause errors if some windows headers are later included.

Code which defines EPICS_NO_CALLBACK, but still wishes to use callbacks, should use
the alternate name 'epicsCallback' introduced in 3.15.6, 3.16.2, and 7.0.2.
It is also possible, though not encouraged, to use 'struct callbackPvt'
which has been present since the callback API was introduced.

Revision history for this message
mdavidsaver (mdavidsaver) wrote :

Rebased onto 3.15 as 77574022a109d82edb52a959c11e09b4e89440db

Revision history for this message
Freddie Akeroyd (freddie-akeroyd) wrote :

Hi, sorry for joining this late - been away a bit recently. If you need any further help/testing please let me know.

I think what you are doing with removing the CALLBACK keyword from EPICS is the right way forward. Andrew mentioned osiSock.h above and that can certainly be involved, it will indirectly includes windows headers and so osiSock.h would need to be included before callback.h and all other windows headers that might need the WIN32 CALLBACK definition. It may be possible to workaround the issue by making callback.h include the windows headers itself before it changes CALLBACK (maybe adding osiSock.h here would be enough), but this does feel to be getting a bit messy and is not guaranteed to work in all cases for a user developing an ioc.

Revision history for this message
Andrew Johnson (anj) wrote :

Hi Freddie,

EPICS code doesn't use the Windows CALLBACK macro at all so it should only have been needed inside the Windows headers themselves. I moved the #include "osiSock.h" lines that Michael had added to a couple of the pva2pva sources to resolve the Windows build problems on Saturday morning, and this merge request has now been applied to the 3.15 branch and merged up to 7.0 which hopefully will prevent or provide a fix for any further issues with this going forward.

Thanks,

- Andrew

Revision history for this message
mdavidsaver (mdavidsaver) wrote :

> I moved the #include "osiSock.h" lines that Michael had added to a couple of the pva2pva sources to resolve the Windows build problems

I was reminded today of why I had put osiSock.h where it was. If I don't, then my cross-mingw builds fail after warning "Please include winsock2.h before windows.h". Does this mean that osiSock.h should be including windows.h as well?

In file included from /home/mdavidsaver/work/epics/base-git/include/os/WIN32/osdSock.h:23,
                 from /home/mdavidsaver/work/epics/base-git/include/osiSock.h:19,
                 from ../pdbsingle.cpp:11:
/usr/share/mingw-w64/include/winsock2.h:15:2: warning: #warning Please include winsock2.h before windows.h [-Wcpp]
 #warning Please include winsock2.h before windows.h
  ^~~~~~~
In file included from /home/mdavidsaver/work/epics/base-git/include/os/WIN32/osdSock.h:23,
                 from /home/mdavidsaver/work/epics/base-git/include/osiSock.h:19,
                 from ../pdbsingle.cpp:11:
/usr/share/mingw-w64/include/winsock2.h:541:24: error: expected ‘)’ before ‘*’ token
   typedef int (CALLBACK *LPCONDITIONPROC)(LPWSABUF lpCallerId,LPWSABUF lpCallerData,LPQOS lpSQOS,LPQOS lpGQOS,LPWSABUF lpCalleeId,LPWSABUF lpCalleeData,GROUP *g,DWORD_PTR dwCallbackData);
               ~ ^~
                        )
In file included from /home/mdavidsaver/work/epics/base-git/include/os/WIN32/osdSock.h:23,
                 from /home/mdavidsaver/work/epics/base-git/include/osiSock.h:19,
                 from ../pdbsingle.cpp:11:
/usr/share/mingw-w64/include/winsock2.h:542:25: error: expected ‘)’ before ‘*’ token
   typedef void (CALLBACK *LPWSAOVERLAPPED_COMPLETION_ROUTINE)(DWORD dwError,DWORD cbTransferred,LPWSAOVERLAPPED lpOverlapped,DWORD dwFlags);
                ~ ^~
                         )
/usr/share/mingw-w64/include/winsock2.h:567:2: error: ‘LPWSAOVERLAPPED_COMPLETION_ROUTINE’ does not name a type; did you mean ‘LPOVERLAPPED_COMPLETION_ROUTINE’?
  LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc;
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  LPOVERLAPPED_COMPLETION_ROUTINE
... omitting many similar errors

Revision history for this message
Andrew Johnson (anj) wrote :

Including windows.h in osdSock.h wouldn't get rid of that warning, which is complaining that some other osi/os/WIN32 header has already included windows.h (most of them seem to). Basically if we need winsock2.h we have to include it before windows.h. The proper fix would be to include winsock2.h first everywhere that we include windows.h, although that does seem a bit excessive.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/modules/database/src/ioc/as/asDbLib.h b/modules/database/src/ioc/as/asDbLib.h
index 65c4c6f..1e0f675 100644
--- a/modules/database/src/ioc/as/asDbLib.h
+++ b/modules/database/src/ioc/as/asDbLib.h
@@ -16,7 +16,7 @@
16#include "shareLib.h"16#include "shareLib.h"
1717
18typedef struct {18typedef struct {
19 CALLBACK callback;19 epicsCallback callback;
20 long status;20 long status;
21} ASDBCALLBACK;21} ASDBCALLBACK;
2222
diff --git a/modules/database/src/ioc/db/callback.c b/modules/database/src/ioc/db/callback.c
index e1f1d45..bbd798e 100644
--- a/modules/database/src/ioc/db/callback.c
+++ b/modules/database/src/ioc/db/callback.c
@@ -216,7 +216,7 @@ static void callbackTask(void *arg)
216 epicsEventMustWait(mySet->semWakeUp);216 epicsEventMustWait(mySet->semWakeUp);
217217
218 while ((ptr = epicsRingPointerPop(mySet->queue))) {218 while ((ptr = epicsRingPointerPop(mySet->queue))) {
219 CALLBACK *pcallback = (CALLBACK *)ptr;219 epicsCallback *pcallback = (epicsCallback *)ptr;
220 if(!epicsRingPointerIsEmpty(mySet->queue))220 if(!epicsRingPointerIsEmpty(mySet->queue))
221 epicsEventMustTrigger(mySet->semWakeUp);221 epicsEventMustTrigger(mySet->semWakeUp);
222 mySet->queueOverflow = FALSE;222 mySet->queueOverflow = FALSE;
@@ -317,7 +317,7 @@ void callbackInit(void)
317}317}
318318
319/* This routine can be called from interrupt context */319/* This routine can be called from interrupt context */
320int callbackRequest(CALLBACK *pcallback)320int callbackRequest(epicsCallback *pcallback)
321{321{
322 int priority;322 int priority;
323 int pushOK;323 int pushOK;
@@ -347,7 +347,7 @@ int callbackRequest(CALLBACK *pcallback)
347 return 0;347 return 0;
348}348}
349349
350static void ProcessCallback(CALLBACK *pcallback)350static void ProcessCallback(epicsCallback *pcallback)
351{351{
352 dbCommon *pRec;352 dbCommon *pRec;
353353
@@ -358,14 +358,14 @@ static void ProcessCallback(CALLBACK *pcallback)
358 dbScanUnlock(pRec);358 dbScanUnlock(pRec);
359}359}
360360
361void callbackSetProcess(CALLBACK *pcallback, int Priority, void *pRec)361void callbackSetProcess(epicsCallback *pcallback, int Priority, void *pRec)
362{362{
363 callbackSetCallback(ProcessCallback, pcallback);363 callbackSetCallback(ProcessCallback, pcallback);
364 callbackSetPriority(Priority, pcallback);364 callbackSetPriority(Priority, pcallback);
365 callbackSetUser(pRec, pcallback);365 callbackSetUser(pRec, pcallback);
366}366}
367367
368int callbackRequestProcessCallback(CALLBACK *pcallback,368int callbackRequestProcessCallback(epicsCallback *pcallback,
369 int Priority, void *pRec)369 int Priority, void *pRec)
370{370{
371 callbackSetProcess(pcallback, Priority, pRec);371 callbackSetProcess(pcallback, Priority, pRec);
@@ -374,11 +374,11 @@ int callbackRequestProcessCallback(CALLBACK *pcallback,
374374
375static void notify(void *pPrivate)375static void notify(void *pPrivate)
376{376{
377 CALLBACK *pcallback = (CALLBACK *)pPrivate;377 epicsCallback *pcallback = (epicsCallback *)pPrivate;
378 callbackRequest(pcallback);378 callbackRequest(pcallback);
379}379}
380380
381void callbackRequestDelayed(CALLBACK *pcallback, double seconds)381void callbackRequestDelayed(epicsCallback *pcallback, double seconds)
382{382{
383 epicsTimerId timer = (epicsTimerId)pcallback->timer;383 epicsTimerId timer = (epicsTimerId)pcallback->timer;
384384
@@ -389,7 +389,7 @@ void callbackRequestDelayed(CALLBACK *pcallback, double seconds)
389 epicsTimerStartDelay(timer, seconds);389 epicsTimerStartDelay(timer, seconds);
390}390}
391391
392void callbackCancelDelayed(CALLBACK *pcallback)392void callbackCancelDelayed(epicsCallback *pcallback)
393{393{
394 epicsTimerId timer = (epicsTimerId)pcallback->timer;394 epicsTimerId timer = (epicsTimerId)pcallback->timer;
395395
@@ -398,7 +398,7 @@ void callbackCancelDelayed(CALLBACK *pcallback)
398 }398 }
399}399}
400400
401void callbackRequestProcessCallbackDelayed(CALLBACK *pcallback,401void callbackRequestProcessCallbackDelayed(epicsCallback *pcallback,
402 int Priority, void *pRec, double seconds)402 int Priority, void *pRec, double seconds)
403{403{
404 callbackSetProcess(pcallback, Priority, pRec);404 callbackSetProcess(pcallback, Priority, pRec);
diff --git a/modules/database/src/ioc/db/callback.h b/modules/database/src/ioc/db/callback.h
index 720cf33..a77a888 100644
--- a/modules/database/src/ioc/db/callback.h
+++ b/modules/database/src/ioc/db/callback.h
@@ -26,7 +26,7 @@ extern "C" {
26/*26/*
27 * WINDOWS also has a "CALLBACK" type def27 * WINDOWS also has a "CALLBACK" type def
28 */28 */
29#ifdef _WIN3229#if defined(_WIN32) && !defined(EPICS_NO_CALLBACK)
30# ifdef CALLBACK30# ifdef CALLBACK
31# undef CALLBACK31# undef CALLBACK
32# endif /*CALLBACK*/32# endif /*CALLBACK*/
@@ -44,7 +44,9 @@ typedef struct callbackPvt {
44 void *timer; /*for use by callback itself*/44 void *timer; /*for use by callback itself*/
45}epicsCallback;45}epicsCallback;
4646
47#if !defined(EPICS_NO_CALLBACK)
47typedef epicsCallback CALLBACK;48typedef epicsCallback CALLBACK;
49#endif
4850
49typedef void (*CALLBACKFUNC)(struct callbackPvt*);51typedef void (*CALLBACKFUNC)(struct callbackPvt*);
5052
@@ -69,16 +71,16 @@ typedef struct callbackQueueStats {
69epicsShareFunc void callbackInit(void);71epicsShareFunc void callbackInit(void);
70epicsShareFunc void callbackStop(void);72epicsShareFunc void callbackStop(void);
71epicsShareFunc void callbackCleanup(void);73epicsShareFunc void callbackCleanup(void);
72epicsShareFunc int callbackRequest(CALLBACK *pCallback);74epicsShareFunc int callbackRequest(epicsCallback *pCallback);
73epicsShareFunc void callbackSetProcess(75epicsShareFunc void callbackSetProcess(
74 CALLBACK *pcallback, int Priority, void *pRec);76 epicsCallback *pcallback, int Priority, void *pRec);
75epicsShareFunc int callbackRequestProcessCallback(77epicsShareFunc int callbackRequestProcessCallback(
76 CALLBACK *pCallback,int Priority, void *pRec);78 epicsCallback *pCallback,int Priority, void *pRec);
77epicsShareFunc void callbackRequestDelayed(79epicsShareFunc void callbackRequestDelayed(
78 CALLBACK *pCallback,double seconds);80 epicsCallback *pCallback,double seconds);
79epicsShareFunc void callbackCancelDelayed(CALLBACK *pcallback);81epicsShareFunc void callbackCancelDelayed(epicsCallback *pcallback);
80epicsShareFunc void callbackRequestProcessCallbackDelayed(82epicsShareFunc void callbackRequestProcessCallbackDelayed(
81 CALLBACK *pCallback, int Priority, void *pRec, double seconds);83 epicsCallback *pCallback, int Priority, void *pRec, double seconds);
82epicsShareFunc int callbackSetQueueSize(int size);84epicsShareFunc int callbackSetQueueSize(int size);
83epicsShareFunc int callbackQueueStatus(const int reset, callbackQueueStats *result);85epicsShareFunc int callbackQueueStatus(const int reset, callbackQueueStats *result);
84epicsShareFunc void callbackQueueShow(const int reset);86epicsShareFunc void callbackQueueShow(const int reset);
diff --git a/modules/database/src/ioc/db/dbNotify.c b/modules/database/src/ioc/db/dbNotify.c
index 794672a..e25ce4a 100644
--- a/modules/database/src/ioc/db/dbNotify.c
+++ b/modules/database/src/ioc/db/dbNotify.c
@@ -69,7 +69,7 @@ typedef struct notifyPvt {
69 ELLNODE node; /*For free list*/69 ELLNODE node; /*For free list*/
70 long magic;70 long magic;
71 short state;71 short state;
72 CALLBACK callback;72 epicsCallback callback;
73 ELLLIST waitList; /*list of records for current processNotify*/73 ELLLIST waitList; /*list of records for current processNotify*/
74 short cancelWait;74 short cancelWait;
75 short userCallbackWait;75 short userCallbackWait;
@@ -86,7 +86,7 @@ typedef struct notifyGlobal {
8686
87static notifyGlobal *pnotifyGlobal = 0;87static notifyGlobal *pnotifyGlobal = 0;
8888
89static void notifyCallback(CALLBACK *pcallback);89static void notifyCallback(epicsCallback *pcallback);
9090
91#define ellSafeAdd(list,listnode) \91#define ellSafeAdd(list,listnode) \
92{ \92{ \
@@ -270,7 +270,7 @@ static void processNotifyCommon(processNotify *ppn, dbCommon *precord, int first
270 callDone(precord, ppn);270 callDone(precord, ppn);
271}271}
272272
273static void notifyCallback(CALLBACK *pcallback)273static void notifyCallback(epicsCallback *pcallback)
274{274{
275 processNotify *ppn = NULL;275 processNotify *ppn = NULL;
276 dbCommon *precord;276 dbCommon *precord;
diff --git a/modules/database/src/ioc/db/dbScan.c b/modules/database/src/ioc/db/dbScan.c
index 9224ed5..1904082 100644
--- a/modules/database/src/ioc/db/dbScan.c
+++ b/modules/database/src/ioc/db/dbScan.c
@@ -109,7 +109,7 @@ static char *priorityName[NUM_CALLBACK_PRIORITIES] = {
109/* EVENT */109/* EVENT */
110110
111typedef struct event_list {111typedef struct event_list {
112 CALLBACK callback[NUM_CALLBACK_PRIORITIES];112 epicsCallback callback[NUM_CALLBACK_PRIORITIES];
113 scan_list scan_list[NUM_CALLBACK_PRIORITIES];113 scan_list scan_list[NUM_CALLBACK_PRIORITIES];
114 struct event_list *next;114 struct event_list *next;
115 char eventname[1]; /* actually arbitrary size */115 char eventname[1]; /* actually arbitrary size */
@@ -120,7 +120,7 @@ static epicsMutexId event_lock;
120/* IO_EVENT*/120/* IO_EVENT*/
121121
122typedef struct io_scan_list {122typedef struct io_scan_list {
123 CALLBACK callback;123 epicsCallback callback;
124 scan_list scan_list;124 scan_list scan_list;
125} io_scan_list;125} io_scan_list;
126126
@@ -141,9 +141,9 @@ static void periodicTask(void *arg);
141static void initPeriodic(void);141static void initPeriodic(void);
142static void deletePeriodic(void);142static void deletePeriodic(void);
143static void spawnPeriodic(int ind);143static void spawnPeriodic(int ind);
144static void eventCallback(CALLBACK *pcallback);144static void eventCallback(epicsCallback *pcallback);
145static void ioscanInit(void);145static void ioscanInit(void);
146static void ioscanCallback(CALLBACK *pcallback);146static void ioscanCallback(epicsCallback *pcallback);
147static void ioscanDestroy(void);147static void ioscanDestroy(void);
148static void printList(scan_list *psl, char *message);148static void printList(scan_list *psl, char *message);
149static void scanList(scan_list *psl);149static void scanList(scan_list *psl);
@@ -448,7 +448,7 @@ int scanpiol(void) /* print pioscan_list */
448 return 0;448 return 0;
449}449}
450450
451451
452static void eventCallback(CALLBACK *pcallback)452static void eventCallback(epicsCallback *pcallback)
453{453{
454 scan_list *psl;454 scan_list *psl;
455455
@@ -944,7 +944,7 @@ static void spawnPeriodic(int ind)
944 epicsEventWait(startStopEvent);944 epicsEventWait(startStopEvent);
945}945}
946946
947947
948static void ioscanCallback(CALLBACK *pcallback)948static void ioscanCallback(epicsCallback *pcallback)
949{949{
950 ioscan_head *piosh;950 ioscan_head *piosh;
951 int prio;951 int prio;
diff --git a/modules/database/src/std/dev/asSubRecordFunctions.c b/modules/database/src/std/dev/asSubRecordFunctions.c
index 76943e9..5bbd958 100644
--- a/modules/database/src/std/dev/asSubRecordFunctions.c
+++ b/modules/database/src/std/dev/asSubRecordFunctions.c
@@ -34,7 +34,7 @@
34/* The following is provided for access security*/34/* The following is provided for access security*/
35/*It allows a CA client to force access security initialization*/35/*It allows a CA client to force access security initialization*/
3636
37static void myCallback(CALLBACK *pcallback)37static void myCallback(epicsCallback *pcallback)
38{38{
39 ASDBCALLBACK *pasdbcallback = (ASDBCALLBACK *)pcallback;39 ASDBCALLBACK *pasdbcallback = (ASDBCALLBACK *)pcallback;
40 subRecord *precord;40 subRecord *precord;
diff --git a/modules/database/src/std/dev/devAiSoftCallback.c b/modules/database/src/std/dev/devAiSoftCallback.c
index cf38c87..8bf6385 100644
--- a/modules/database/src/std/dev/devAiSoftCallback.c
+++ b/modules/database/src/std/dev/devAiSoftCallback.c
@@ -36,7 +36,7 @@
3636
37typedef struct devPvt {37typedef struct devPvt {
38 processNotify pn;38 processNotify pn;
39 CALLBACK callback;39 epicsCallback callback;
40 long options;40 long options;
41 int status;41 int status;
42 int smooth;42 int smooth;
diff --git a/modules/database/src/std/dev/devBiSoftCallback.c b/modules/database/src/std/dev/devBiSoftCallback.c
index 3144600..607b1af 100644
--- a/modules/database/src/std/dev/devBiSoftCallback.c
+++ b/modules/database/src/std/dev/devBiSoftCallback.c
@@ -35,7 +35,7 @@
3535
36typedef struct devPvt {36typedef struct devPvt {
37 processNotify pn;37 processNotify pn;
38 CALLBACK callback;38 epicsCallback callback;
39 long options;39 long options;
40 int status;40 int status;
41 struct {41 struct {
diff --git a/modules/database/src/std/dev/devI64inSoftCallback.c b/modules/database/src/std/dev/devI64inSoftCallback.c
index 9eb5656..8881902 100644
--- a/modules/database/src/std/dev/devI64inSoftCallback.c
+++ b/modules/database/src/std/dev/devI64inSoftCallback.c
@@ -35,7 +35,7 @@
3535
36typedef struct devPvt {36typedef struct devPvt {
37 processNotify pn;37 processNotify pn;
38 CALLBACK callback;38 epicsCallback callback;
39 long options;39 long options;
40 int status;40 int status;
41 struct {41 struct {
diff --git a/modules/database/src/std/dev/devLiSoftCallback.c b/modules/database/src/std/dev/devLiSoftCallback.c
index caab523..d833939 100644
--- a/modules/database/src/std/dev/devLiSoftCallback.c
+++ b/modules/database/src/std/dev/devLiSoftCallback.c
@@ -35,7 +35,7 @@
3535
36typedef struct devPvt {36typedef struct devPvt {
37 processNotify pn;37 processNotify pn;
38 CALLBACK callback;38 epicsCallback callback;
39 long options;39 long options;
40 int status;40 int status;
41 struct {41 struct {
diff --git a/modules/database/src/std/dev/devMbbiDirectSoftCallback.c b/modules/database/src/std/dev/devMbbiDirectSoftCallback.c
index d785f73..e40a6b0 100644
--- a/modules/database/src/std/dev/devMbbiDirectSoftCallback.c
+++ b/modules/database/src/std/dev/devMbbiDirectSoftCallback.c
@@ -35,7 +35,7 @@
3535
36typedef struct devPvt {36typedef struct devPvt {
37 processNotify pn;37 processNotify pn;
38 CALLBACK callback;38 epicsCallback callback;
39 long options;39 long options;
40 int status;40 int status;
41 struct {41 struct {
diff --git a/modules/database/src/std/dev/devMbbiSoftCallback.c b/modules/database/src/std/dev/devMbbiSoftCallback.c
index 3796bce..fee81b5 100644
--- a/modules/database/src/std/dev/devMbbiSoftCallback.c
+++ b/modules/database/src/std/dev/devMbbiSoftCallback.c
@@ -35,7 +35,7 @@
3535
36typedef struct devPvt {36typedef struct devPvt {
37 processNotify pn;37 processNotify pn;
38 CALLBACK callback;38 epicsCallback callback;
39 long options;39 long options;
40 int status;40 int status;
41 struct {41 struct {
diff --git a/modules/database/src/std/dev/devSiSoftCallback.c b/modules/database/src/std/dev/devSiSoftCallback.c
index 8f67988..fd0e376 100644
--- a/modules/database/src/std/dev/devSiSoftCallback.c
+++ b/modules/database/src/std/dev/devSiSoftCallback.c
@@ -37,7 +37,7 @@
37typedef struct devPvt {37typedef struct devPvt {
38 DBADDR dbaddr;38 DBADDR dbaddr;
39 processNotify pn;39 processNotify pn;
40 CALLBACK callback;40 epicsCallback callback;
41 long options;41 long options;
42 int status;42 int status;
43 struct {43 struct {
diff --git a/modules/database/src/std/rec/aaiRecord.c b/modules/database/src/std/rec/aaiRecord.c
index 7805c9f..51af45f 100644
--- a/modules/database/src/std/rec/aaiRecord.c
+++ b/modules/database/src/std/rec/aaiRecord.c
@@ -356,10 +356,10 @@ static long readValue(aaiRecord *prec)
356 recGblSetSevr(prec, SIMM_ALARM, prec->sims);356 recGblSetSevr(prec, SIMM_ALARM, prec->sims);
357357
358 if (prec->sdly >= 0) {358 if (prec->sdly >= 0) {
359 CALLBACK *pvt = prec->simpvt;359 epicsCallback *pvt = prec->simpvt;
360360
361 if (!pvt) { /* very lazy allocation of callback structure */361 if (!pvt) { /* very lazy allocation of callback structure */
362 pvt = calloc(1, sizeof(CALLBACK));362 pvt = calloc(1, sizeof(epicsCallback));
363 prec->simpvt = pvt;363 prec->simpvt = pvt;
364 }364 }
365 if (pvt)365 if (pvt)
diff --git a/modules/database/src/std/rec/aaiRecord.dbd b/modules/database/src/std/rec/aaiRecord.dbd
index 15db6d3..b4675b3 100644
--- a/modules/database/src/std/rec/aaiRecord.dbd
+++ b/modules/database/src/std/rec/aaiRecord.dbd
@@ -122,7 +122,7 @@ recordtype(aai) {
122 prompt("Sim. Mode Private")122 prompt("Sim. Mode Private")
123 special(SPC_NOMOD)123 special(SPC_NOMOD)
124 interest(4)124 interest(4)
125 extra("CALLBACK *simpvt")125 extra("epicsCallback *simpvt")
126 }126 }
127 field(MPST,DBF_MENU) {127 field(MPST,DBF_MENU) {
128 prompt("Post Value Monitors")128 prompt("Post Value Monitors")
diff --git a/modules/database/src/std/rec/aaoRecord.c b/modules/database/src/std/rec/aaoRecord.c
index b717500..ccf0517 100644
--- a/modules/database/src/std/rec/aaoRecord.c
+++ b/modules/database/src/std/rec/aaoRecord.c
@@ -367,9 +367,9 @@ static long writeValue(aaoRecord *prec)
367 status = pdset->write_aao(prec);367 status = pdset->write_aao(prec);
368 prec->pact = FALSE;368 prec->pact = FALSE;
369 } else { /* !prec->pact && delay >= 0. */369 } else { /* !prec->pact && delay >= 0. */
370 CALLBACK *pvt = prec->simpvt;370 epicsCallback *pvt = prec->simpvt;
371 if (!pvt) {371 if (!pvt) {
372 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */372 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
373 prec->simpvt = pvt;373 prec->simpvt = pvt;
374 }374 }
375 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);375 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/aaoRecord.dbd b/modules/database/src/std/rec/aaoRecord.dbd
index a1731a3..20e957f 100644
--- a/modules/database/src/std/rec/aaoRecord.dbd
+++ b/modules/database/src/std/rec/aaoRecord.dbd
@@ -122,7 +122,7 @@ recordtype(aao) {
122 prompt("Sim. Mode Private")122 prompt("Sim. Mode Private")
123 special(SPC_NOMOD)123 special(SPC_NOMOD)
124 interest(4)124 interest(4)
125 extra("CALLBACK *simpvt")125 extra("epicsCallback *simpvt")
126 }126 }
127 field(MPST,DBF_MENU) {127 field(MPST,DBF_MENU) {
128 prompt("Post Value Monitors")128 prompt("Post Value Monitors")
diff --git a/modules/database/src/std/rec/aiRecord.c b/modules/database/src/std/rec/aiRecord.c
index 5001933..0e35932 100644
--- a/modules/database/src/std/rec/aiRecord.c
+++ b/modules/database/src/std/rec/aiRecord.c
@@ -508,9 +508,9 @@ static long readValue(aiRecord *prec)
508 }508 }
509 prec->pact = FALSE;509 prec->pact = FALSE;
510 } else { /* !prec->pact && delay >= 0. */510 } else { /* !prec->pact && delay >= 0. */
511 CALLBACK *pvt = prec->simpvt;511 epicsCallback *pvt = prec->simpvt;
512 if (!pvt) {512 if (!pvt) {
513 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */513 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
514 prec->simpvt = pvt;514 prec->simpvt = pvt;
515 }515 }
516 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);516 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/aiRecord.dbd.pod b/modules/database/src/std/rec/aiRecord.dbd.pod
index 69ca65f..e113aa3 100644
--- a/modules/database/src/std/rec/aiRecord.dbd.pod
+++ b/modules/database/src/std/rec/aiRecord.dbd.pod
@@ -516,7 +516,7 @@ simulation mode.
516 prompt("Sim. Mode Private")516 prompt("Sim. Mode Private")
517 special(SPC_NOMOD)517 special(SPC_NOMOD)
518 interest(4)518 interest(4)
519 extra("CALLBACK *simpvt")519 extra("epicsCallback *simpvt")
520 }520 }
521}521}
522522
diff --git a/modules/database/src/std/rec/aoRecord.c b/modules/database/src/std/rec/aoRecord.c
index c5a84f6..6fa6585 100644
--- a/modules/database/src/std/rec/aoRecord.c
+++ b/modules/database/src/std/rec/aoRecord.c
@@ -574,9 +574,9 @@ static long writeValue(aoRecord *prec)
574 status = dbPutLink(&prec->siol, DBR_DOUBLE, &prec->oval, 1);574 status = dbPutLink(&prec->siol, DBR_DOUBLE, &prec->oval, 1);
575 prec->pact = FALSE;575 prec->pact = FALSE;
576 } else { /* !prec->pact && delay >= 0. */576 } else { /* !prec->pact && delay >= 0. */
577 CALLBACK *pvt = prec->simpvt;577 epicsCallback *pvt = prec->simpvt;
578 if (!pvt) {578 if (!pvt) {
579 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */579 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
580 prec->simpvt = pvt;580 prec->simpvt = pvt;
581 }581 }
582 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);582 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/aoRecord.dbd.pod b/modules/database/src/std/rec/aoRecord.dbd.pod
index f2361df..9059e44 100644
--- a/modules/database/src/std/rec/aoRecord.dbd.pod
+++ b/modules/database/src/std/rec/aoRecord.dbd.pod
@@ -573,7 +573,7 @@ information on these fields.
573 prompt("Sim. Mode Private")573 prompt("Sim. Mode Private")
574 special(SPC_NOMOD)574 special(SPC_NOMOD)
575 interest(4)575 interest(4)
576 extra("CALLBACK *simpvt")576 extra("epicsCallback *simpvt")
577 }577 }
578 field(IVOA,DBF_MENU) {578 field(IVOA,DBF_MENU) {
579 prompt("INVALID output action")579 prompt("INVALID output action")
diff --git a/modules/database/src/std/rec/biRecord.c b/modules/database/src/std/rec/biRecord.c
index be700a5..9c0ddb3 100644
--- a/modules/database/src/std/rec/biRecord.c
+++ b/modules/database/src/std/rec/biRecord.c
@@ -304,9 +304,9 @@ static long readValue(biRecord *prec)
304 }304 }
305 prec->pact = FALSE;305 prec->pact = FALSE;
306 } else { /* !prec->pact && delay >= 0. */306 } else { /* !prec->pact && delay >= 0. */
307 CALLBACK *pvt = prec->simpvt;307 epicsCallback *pvt = prec->simpvt;
308 if (!pvt) {308 if (!pvt) {
309 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */309 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
310 prec->simpvt = pvt;310 prec->simpvt = pvt;
311 }311 }
312 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);312 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/boRecord.c b/modules/database/src/std/rec/boRecord.c
index 1861823..4cfe62d 100644
--- a/modules/database/src/std/rec/boRecord.c
+++ b/modules/database/src/std/rec/boRecord.c
@@ -98,7 +98,7 @@ struct bodset { /* binary output dset */
9898
99/* control block for callback*/99/* control block for callback*/
100typedef struct myCallback {100typedef struct myCallback {
101 CALLBACK callback;101 epicsCallback callback;
102 struct dbCommon *precord;102 struct dbCommon *precord;
103}myCallback;103}myCallback;
104104
@@ -106,7 +106,7 @@ static void checkAlarms(boRecord *);
106static void monitor(boRecord *);106static void monitor(boRecord *);
107static long writeValue(boRecord *);107static long writeValue(boRecord *);
108108
109static void myCallbackFunc(CALLBACK *arg)109static void myCallbackFunc(epicsCallback *arg)
110{110{
111 myCallback *pcallback;111 myCallback *pcallback;
112 boRecord *prec;112 boRecord *prec;
@@ -439,9 +439,9 @@ static long writeValue(boRecord *prec)
439 status = dbPutLink(&prec->siol, DBR_USHORT, &prec->val, 1);439 status = dbPutLink(&prec->siol, DBR_USHORT, &prec->val, 1);
440 prec->pact = FALSE;440 prec->pact = FALSE;
441 } else { /* !prec->pact && delay >= 0. */441 } else { /* !prec->pact && delay >= 0. */
442 CALLBACK *pvt = prec->simpvt;442 epicsCallback *pvt = prec->simpvt;
443 if (!pvt) {443 if (!pvt) {
444 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */444 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
445 prec->simpvt = pvt;445 prec->simpvt = pvt;
446 }446 }
447 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);447 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/calcoutRecord.c b/modules/database/src/std/rec/calcoutRecord.c
index 8b55255..d9f66af 100644
--- a/modules/database/src/std/rec/calcoutRecord.c
+++ b/modules/database/src/std/rec/calcoutRecord.c
@@ -117,8 +117,8 @@ typedef struct calcoutDSET {
117#define CA_LINKS_NOT_OK 2117#define CA_LINKS_NOT_OK 2
118118
119typedef struct rpvtStruct {119typedef struct rpvtStruct {
120 CALLBACK doOutCb;120 epicsCallback doOutCb;
121 CALLBACK checkLinkCb;121 epicsCallback checkLinkCb;
122 short cbScheduled;122 short cbScheduled;
123 short caLinkStat; /* NO_CA_LINKS, CA_LINKS_ALL_OK, CA_LINKS_NOT_OK */123 short caLinkStat; /* NO_CA_LINKS, CA_LINKS_ALL_OK, CA_LINKS_NOT_OK */
124} rpvtStruct;124} rpvtStruct;
@@ -128,7 +128,7 @@ static void monitor(calcoutRecord *prec);
128static int fetch_values(calcoutRecord *prec);128static int fetch_values(calcoutRecord *prec);
129static void execOutput(calcoutRecord *prec);129static void execOutput(calcoutRecord *prec);
130static void checkLinks(calcoutRecord *prec);130static void checkLinks(calcoutRecord *prec);
131static void checkLinksCallback(CALLBACK *arg);131static void checkLinksCallback(epicsCallback *arg);
132static long writeValue(calcoutRecord *prec);132static long writeValue(calcoutRecord *prec);
133133
134int calcoutRecDebug;134int calcoutRecDebug;
@@ -702,7 +702,7 @@ static int fetch_values(calcoutRecord *prec)
702 return(status);702 return(status);
703}703}
704704
705static void checkLinksCallback(CALLBACK *arg)705static void checkLinksCallback(epicsCallback *arg)
706{706{
707707
708 calcoutRecord *prec;708 calcoutRecord *prec;
@@ -760,7 +760,7 @@ static void checkLinks(calcoutRecord *prec)
760 prpvt->caLinkStat = NO_CA_LINKS;760 prpvt->caLinkStat = NO_CA_LINKS;
761761
762 if (!prpvt->cbScheduled && caLinkNc) {762 if (!prpvt->cbScheduled && caLinkNc) {
763 /* Schedule another CALLBACK */763 /* Schedule another epicsCallback */
764 prpvt->cbScheduled = 1;764 prpvt->cbScheduled = 1;
765 callbackRequestDelayed(&prpvt->checkLinkCb, .5);765 callbackRequestDelayed(&prpvt->checkLinkCb, .5);
766 }766 }
diff --git a/modules/database/src/std/rec/eventRecord.c b/modules/database/src/std/rec/eventRecord.c
index dbaef01..c10c902 100644
--- a/modules/database/src/std/rec/eventRecord.c
+++ b/modules/database/src/std/rec/eventRecord.c
@@ -199,9 +199,9 @@ static long readValue(eventRecord *prec)
199 }199 }
200 prec->pact = FALSE;200 prec->pact = FALSE;
201 } else { /* !prec->pact && delay >= 0. */201 } else { /* !prec->pact && delay >= 0. */
202 CALLBACK *pvt = prec->simpvt;202 epicsCallback *pvt = prec->simpvt;
203 if (!pvt) {203 if (!pvt) {
204 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */204 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
205 prec->simpvt = pvt;205 prec->simpvt = pvt;
206 }206 }
207 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);207 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/eventRecord.dbd b/modules/database/src/std/rec/eventRecord.dbd
index 57306f5..3010509 100644
--- a/modules/database/src/std/rec/eventRecord.dbd
+++ b/modules/database/src/std/rec/eventRecord.dbd
@@ -77,6 +77,6 @@ recordtype(event) {
77 prompt("Sim. Mode Private")77 prompt("Sim. Mode Private")
78 special(SPC_NOMOD)78 special(SPC_NOMOD)
79 interest(4)79 interest(4)
80 extra("CALLBACK *simpvt")80 extra("epicsCallback *simpvt")
81 }81 }
82}82}
diff --git a/modules/database/src/std/rec/histogramRecord.c b/modules/database/src/std/rec/histogramRecord.c
index cac81ff..82fc91a 100644
--- a/modules/database/src/std/rec/histogramRecord.c
+++ b/modules/database/src/std/rec/histogramRecord.c
@@ -100,7 +100,7 @@ struct histogramdset { /* histogram input dset */
100100
101/* control block for callback*/101/* control block for callback*/
102typedef struct myCallback {102typedef struct myCallback {
103 CALLBACK callback;103 epicsCallback callback;
104 histogramRecord *prec;104 histogramRecord *prec;
105} myCallback;105} myCallback;
106106
@@ -110,7 +110,7 @@ static void monitor(histogramRecord *);
110static long readValue(histogramRecord *);110static long readValue(histogramRecord *);
111111
112112
113static void wdogCallback(CALLBACK *arg)113static void wdogCallback(epicsCallback *arg)
114{114{
115 myCallback *pcallback;115 myCallback *pcallback;
116 histogramRecord *prec;116 histogramRecord *prec;
@@ -403,9 +403,9 @@ static long readValue(histogramRecord *prec)
403 }403 }
404 prec->pact = FALSE;404 prec->pact = FALSE;
405 } else { /* !prec->pact && delay >= 0. */405 } else { /* !prec->pact && delay >= 0. */
406 CALLBACK *pvt = prec->simpvt;406 epicsCallback *pvt = prec->simpvt;
407 if (!pvt) {407 if (!pvt) {
408 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */408 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
409 prec->simpvt = pvt;409 prec->simpvt = pvt;
410 }410 }
411 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);411 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/histogramRecord.dbd b/modules/database/src/std/rec/histogramRecord.dbd
index 545ae3f..304038b 100644
--- a/modules/database/src/std/rec/histogramRecord.dbd
+++ b/modules/database/src/std/rec/histogramRecord.dbd
@@ -154,7 +154,7 @@ recordtype(histogram) {
154 prompt("Sim. Mode Private")154 prompt("Sim. Mode Private")
155 special(SPC_NOMOD)155 special(SPC_NOMOD)
156 interest(4)156 interest(4)
157 extra("CALLBACK *simpvt")157 extra("epicsCallback *simpvt")
158 }158 }
159 field(HOPR,DBF_ULONG) {159 field(HOPR,DBF_ULONG) {
160 prompt("High Operating Range")160 prompt("High Operating Range")
diff --git a/modules/database/src/std/rec/int64inRecord.c b/modules/database/src/std/rec/int64inRecord.c
index c76d96c..8ce2410 100644
--- a/modules/database/src/std/rec/int64inRecord.c
+++ b/modules/database/src/std/rec/int64inRecord.c
@@ -420,9 +420,9 @@ static long readValue(int64inRecord *prec)
420 }420 }
421 prec->pact = FALSE;421 prec->pact = FALSE;
422 } else { /* !prec->pact && delay >= 0. */422 } else { /* !prec->pact && delay >= 0. */
423 CALLBACK *pvt = prec->simpvt;423 epicsCallback *pvt = prec->simpvt;
424 if (!pvt) {424 if (!pvt) {
425 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */425 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
426 prec->simpvt = pvt;426 prec->simpvt = pvt;
427 }427 }
428 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);428 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/int64inRecord.dbd.pod b/modules/database/src/std/rec/int64inRecord.dbd.pod
index c85992f..edb19a7 100644
--- a/modules/database/src/std/rec/int64inRecord.dbd.pod
+++ b/modules/database/src/std/rec/int64inRecord.dbd.pod
@@ -313,7 +313,7 @@ simulation mode.
313 prompt("Sim. Mode Private")313 prompt("Sim. Mode Private")
314 special(SPC_NOMOD)314 special(SPC_NOMOD)
315 interest(4)315 interest(4)
316 extra("CALLBACK *simpvt")316 extra("epicsCallback *simpvt")
317 }317 }
318}318}
319319
diff --git a/modules/database/src/std/rec/int64outRecord.c b/modules/database/src/std/rec/int64outRecord.c
index da5a76d..e9170f9 100644
--- a/modules/database/src/std/rec/int64outRecord.c
+++ b/modules/database/src/std/rec/int64outRecord.c
@@ -396,9 +396,9 @@ static long writeValue(int64outRecord *prec)
396 status = dbPutLink(&prec->siol, DBR_INT64, &prec->val, 1);396 status = dbPutLink(&prec->siol, DBR_INT64, &prec->val, 1);
397 prec->pact = FALSE;397 prec->pact = FALSE;
398 } else { /* !prec->pact && delay >= 0. */398 } else { /* !prec->pact && delay >= 0. */
399 CALLBACK *pvt = prec->simpvt;399 epicsCallback *pvt = prec->simpvt;
400 if (!pvt) {400 if (!pvt) {
401 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */401 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
402 prec->simpvt = pvt;402 prec->simpvt = pvt;
403 }403 }
404 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);404 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/int64outRecord.dbd.pod b/modules/database/src/std/rec/int64outRecord.dbd.pod
index f765414..1b5003e 100644
--- a/modules/database/src/std/rec/int64outRecord.dbd.pod
+++ b/modules/database/src/std/rec/int64outRecord.dbd.pod
@@ -350,7 +350,7 @@ simulation mode.
350 prompt("Sim. Mode Private")350 prompt("Sim. Mode Private")
351 special(SPC_NOMOD)351 special(SPC_NOMOD)
352 interest(4)352 interest(4)
353 extra("CALLBACK *simpvt")353 extra("epicsCallback *simpvt")
354 }354 }
355355
356=head3 Invalid Alarm Output Action356=head3 Invalid Alarm Output Action
diff --git a/modules/database/src/std/rec/longinRecord.c b/modules/database/src/std/rec/longinRecord.c
index f72ac91..d524641 100644
--- a/modules/database/src/std/rec/longinRecord.c
+++ b/modules/database/src/std/rec/longinRecord.c
@@ -428,9 +428,9 @@ static long readValue(longinRecord *prec)
428 }428 }
429 prec->pact = FALSE;429 prec->pact = FALSE;
430 } else { /* !prec->pact && delay >= 0. */430 } else { /* !prec->pact && delay >= 0. */
431 CALLBACK *pvt = prec->simpvt;431 epicsCallback *pvt = prec->simpvt;
432 if (!pvt) {432 if (!pvt) {
433 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */433 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
434 prec->simpvt = pvt;434 prec->simpvt = pvt;
435 }435 }
436 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);436 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/longinRecord.dbd b/modules/database/src/std/rec/longinRecord.dbd
index f0e5a8d..505b336 100644
--- a/modules/database/src/std/rec/longinRecord.dbd
+++ b/modules/database/src/std/rec/longinRecord.dbd
@@ -183,6 +183,6 @@ recordtype(longin) {
183 prompt("Sim. Mode Private")183 prompt("Sim. Mode Private")
184 special(SPC_NOMOD)184 special(SPC_NOMOD)
185 interest(4)185 interest(4)
186 extra("CALLBACK *simpvt")186 extra("epicsCallback *simpvt")
187 }187 }
188}188}
diff --git a/modules/database/src/std/rec/longoutRecord.c b/modules/database/src/std/rec/longoutRecord.c
index 5e13e09..06e3b6e 100644
--- a/modules/database/src/std/rec/longoutRecord.c
+++ b/modules/database/src/std/rec/longoutRecord.c
@@ -401,9 +401,9 @@ static long writeValue(longoutRecord *prec)
401 status = dbPutLink(&prec->siol, DBR_LONG, &prec->val, 1);401 status = dbPutLink(&prec->siol, DBR_LONG, &prec->val, 1);
402 prec->pact = FALSE;402 prec->pact = FALSE;
403 } else { /* !prec->pact && delay >= 0. */403 } else { /* !prec->pact && delay >= 0. */
404 CALLBACK *pvt = prec->simpvt;404 epicsCallback *pvt = prec->simpvt;
405 if (!pvt) {405 if (!pvt) {
406 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */406 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
407 prec->simpvt = pvt;407 prec->simpvt = pvt;
408 }408 }
409 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);409 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/longoutRecord.dbd b/modules/database/src/std/rec/longoutRecord.dbd
index 626be16..3256818 100644
--- a/modules/database/src/std/rec/longoutRecord.dbd
+++ b/modules/database/src/std/rec/longoutRecord.dbd
@@ -195,7 +195,7 @@ recordtype(longout) {
195 prompt("Sim. Mode Private")195 prompt("Sim. Mode Private")
196 special(SPC_NOMOD)196 special(SPC_NOMOD)
197 interest(4)197 interest(4)
198 extra("CALLBACK *simpvt")198 extra("epicsCallback *simpvt")
199 }199 }
200 field(IVOA,DBF_MENU) {200 field(IVOA,DBF_MENU) {
201 prompt("INVALID output action")201 prompt("INVALID output action")
diff --git a/modules/database/src/std/rec/lsiRecord.c b/modules/database/src/std/rec/lsiRecord.c
index 261313f..7396946 100644
--- a/modules/database/src/std/rec/lsiRecord.c
+++ b/modules/database/src/std/rec/lsiRecord.c
@@ -241,9 +241,9 @@ static long readValue(lsiRecord *prec)
241 if (status == 0) prec->udf = FALSE;241 if (status == 0) prec->udf = FALSE;
242 prec->pact = FALSE;242 prec->pact = FALSE;
243 } else { /* !prec->pact && delay >= 0. */243 } else { /* !prec->pact && delay >= 0. */
244 CALLBACK *pvt = prec->simpvt;244 epicsCallback *pvt = prec->simpvt;
245 if (!pvt) {245 if (!pvt) {
246 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */246 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
247 prec->simpvt = pvt;247 prec->simpvt = pvt;
248 }248 }
249 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);249 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/lsiRecord.dbd b/modules/database/src/std/rec/lsiRecord.dbd
index 689366f..21f2ba4 100644
--- a/modules/database/src/std/rec/lsiRecord.dbd
+++ b/modules/database/src/std/rec/lsiRecord.dbd
@@ -110,6 +110,6 @@ recordtype(lsi) {
110 prompt("Sim. Mode Private")110 prompt("Sim. Mode Private")
111 special(SPC_NOMOD)111 special(SPC_NOMOD)
112 interest(4)112 interest(4)
113 extra("CALLBACK *simpvt")113 extra("epicsCallback *simpvt")
114 }114 }
115}115}
diff --git a/modules/database/src/std/rec/lsoRecord.c b/modules/database/src/std/rec/lsoRecord.c
index dcbe150..9485e38 100644
--- a/modules/database/src/std/rec/lsoRecord.c
+++ b/modules/database/src/std/rec/lsoRecord.c
@@ -282,9 +282,9 @@ static long writeValue(lsoRecord *prec)
282 status = dbPutLinkLS(&prec->siol, prec->val, prec->len);282 status = dbPutLinkLS(&prec->siol, prec->val, prec->len);
283 prec->pact = FALSE;283 prec->pact = FALSE;
284 } else { /* !prec->pact && delay >= 0. */284 } else { /* !prec->pact && delay >= 0. */
285 CALLBACK *pvt = prec->simpvt;285 epicsCallback *pvt = prec->simpvt;
286 if (!pvt) {286 if (!pvt) {
287 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */287 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
288 prec->simpvt = pvt;288 prec->simpvt = pvt;
289 }289 }
290 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);290 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/lsoRecord.dbd b/modules/database/src/std/rec/lsoRecord.dbd
index 8d3a64e..880139a 100644
--- a/modules/database/src/std/rec/lsoRecord.dbd
+++ b/modules/database/src/std/rec/lsoRecord.dbd
@@ -134,6 +134,6 @@ recordtype(lso) {
134 prompt("Sim. Mode Private")134 prompt("Sim. Mode Private")
135 special(SPC_NOMOD)135 special(SPC_NOMOD)
136 interest(4)136 interest(4)
137 extra("CALLBACK *simpvt")137 extra("epicsCallback *simpvt")
138 }138 }
139}139}
diff --git a/modules/database/src/std/rec/mbbiDirectRecord.c b/modules/database/src/std/rec/mbbiDirectRecord.c
index 779b732..88d805c 100644
--- a/modules/database/src/std/rec/mbbiDirectRecord.c
+++ b/modules/database/src/std/rec/mbbiDirectRecord.c
@@ -277,9 +277,9 @@ static long readValue(mbbiDirectRecord *prec)
277 }277 }
278 prec->pact = FALSE;278 prec->pact = FALSE;
279 } else { /* !prec->pact && delay >= 0. */279 } else { /* !prec->pact && delay >= 0. */
280 CALLBACK *pvt = prec->simpvt;280 epicsCallback *pvt = prec->simpvt;
281 if (!pvt) {281 if (!pvt) {
282 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */282 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
283 prec->simpvt = pvt;283 prec->simpvt = pvt;
284 }284 }
285 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);285 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/mbbiDirectRecord.dbd b/modules/database/src/std/rec/mbbiDirectRecord.dbd
index bb432e5..eb70a13 100644
--- a/modules/database/src/std/rec/mbbiDirectRecord.dbd
+++ b/modules/database/src/std/rec/mbbiDirectRecord.dbd
@@ -98,7 +98,7 @@ recordtype(mbbiDirect) {
98 prompt("Sim. Mode Private")98 prompt("Sim. Mode Private")
99 special(SPC_NOMOD)99 special(SPC_NOMOD)
100 interest(4)100 interest(4)
101 extra("CALLBACK *simpvt")101 extra("epicsCallback *simpvt")
102 }102 }
103 field(B0,DBF_UCHAR) {103 field(B0,DBF_UCHAR) {
104 prompt("Bit 0")104 prompt("Bit 0")
diff --git a/modules/database/src/std/rec/mbbiRecord.c b/modules/database/src/std/rec/mbbiRecord.c
index 5995288..0202594 100644
--- a/modules/database/src/std/rec/mbbiRecord.c
+++ b/modules/database/src/std/rec/mbbiRecord.c
@@ -409,9 +409,9 @@ static long readValue(mbbiRecord *prec)
409 }409 }
410 prec->pact = FALSE;410 prec->pact = FALSE;
411 } else { /* !prec->pact && delay >= 0. */411 } else { /* !prec->pact && delay >= 0. */
412 CALLBACK *pvt = prec->simpvt;412 epicsCallback *pvt = prec->simpvt;
413 if (!pvt) {413 if (!pvt) {
414 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */414 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
415 prec->simpvt = pvt;415 prec->simpvt = pvt;
416 }416 }
417 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);417 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/mbbiRecord.dbd b/modules/database/src/std/rec/mbbiRecord.dbd
index 52f18e4..a6ce71c 100644
--- a/modules/database/src/std/rec/mbbiRecord.dbd
+++ b/modules/database/src/std/rec/mbbiRecord.dbd
@@ -500,6 +500,6 @@ recordtype(mbbi) {
500 prompt("Sim. Mode Private")500 prompt("Sim. Mode Private")
501 special(SPC_NOMOD)501 special(SPC_NOMOD)
502 interest(4)502 interest(4)
503 extra("CALLBACK *simpvt")503 extra("epicsCallback *simpvt")
504 }504 }
505}505}
diff --git a/modules/database/src/std/rec/mbboDirectRecord.c b/modules/database/src/std/rec/mbboDirectRecord.c
index dcc2b3c..5c2dd94 100644
--- a/modules/database/src/std/rec/mbboDirectRecord.c
+++ b/modules/database/src/std/rec/mbboDirectRecord.c
@@ -375,9 +375,9 @@ static long writeValue(mbboDirectRecord *prec)
375 status = dbPutLink(&prec->siol, DBR_ULONG, &prec->val, 1);375 status = dbPutLink(&prec->siol, DBR_ULONG, &prec->val, 1);
376 prec->pact = FALSE;376 prec->pact = FALSE;
377 } else { /* !prec->pact && delay >= 0. */377 } else { /* !prec->pact && delay >= 0. */
378 CALLBACK *pvt = prec->simpvt;378 epicsCallback *pvt = prec->simpvt;
379 if (!pvt) {379 if (!pvt) {
380 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */380 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
381 prec->simpvt = pvt;381 prec->simpvt = pvt;
382 }382 }
383 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);383 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/mbboDirectRecord.dbd b/modules/database/src/std/rec/mbboDirectRecord.dbd
index a6a43b4..ff5fb28 100644
--- a/modules/database/src/std/rec/mbboDirectRecord.dbd
+++ b/modules/database/src/std/rec/mbboDirectRecord.dbd
@@ -118,7 +118,7 @@ recordtype(mbboDirect) {
118 prompt("Sim. Mode Private")118 prompt("Sim. Mode Private")
119 special(SPC_NOMOD)119 special(SPC_NOMOD)
120 interest(4)120 interest(4)
121 extra("CALLBACK *simpvt")121 extra("epicsCallback *simpvt")
122 }122 }
123 field(IVOA,DBF_MENU) {123 field(IVOA,DBF_MENU) {
124 prompt("INVALID outpt action")124 prompt("INVALID outpt action")
diff --git a/modules/database/src/std/rec/mbboRecord.c b/modules/database/src/std/rec/mbboRecord.c
index e708380..2488552 100644
--- a/modules/database/src/std/rec/mbboRecord.c
+++ b/modules/database/src/std/rec/mbboRecord.c
@@ -458,9 +458,9 @@ static long writeValue(mbboRecord *prec)
458 status = dbPutLink(&prec->siol, DBR_USHORT, &prec->val, 1);458 status = dbPutLink(&prec->siol, DBR_USHORT, &prec->val, 1);
459 prec->pact = FALSE;459 prec->pact = FALSE;
460 } else { /* !prec->pact && delay >= 0. */460 } else { /* !prec->pact && delay >= 0. */
461 CALLBACK *pvt = prec->simpvt;461 epicsCallback *pvt = prec->simpvt;
462 if (!pvt) {462 if (!pvt) {
463 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */463 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
464 prec->simpvt = pvt;464 prec->simpvt = pvt;
465 }465 }
466 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);466 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/mbboRecord.dbd b/modules/database/src/std/rec/mbboRecord.dbd
index 5475029..41f3870 100644
--- a/modules/database/src/std/rec/mbboRecord.dbd
+++ b/modules/database/src/std/rec/mbboRecord.dbd
@@ -510,7 +510,7 @@ recordtype(mbbo) {
510 prompt("Sim. Mode Private")510 prompt("Sim. Mode Private")
511 special(SPC_NOMOD)511 special(SPC_NOMOD)
512 interest(4)512 interest(4)
513 extra("CALLBACK *simpvt")513 extra("epicsCallback *simpvt")
514 }514 }
515 field(IVOA,DBF_MENU) {515 field(IVOA,DBF_MENU) {
516 prompt("INVALID outpt action")516 prompt("INVALID outpt action")
diff --git a/modules/database/src/std/rec/seqRecord.c b/modules/database/src/std/rec/seqRecord.c
index 86d05f2..8b88f80 100644
--- a/modules/database/src/std/rec/seqRecord.c
+++ b/modules/database/src/std/rec/seqRecord.c
@@ -31,7 +31,7 @@
3131
32static void processNextLink(seqRecord *prec);32static void processNextLink(seqRecord *prec);
33static long asyncFinish(seqRecord *prec);33static long asyncFinish(seqRecord *prec);
34static void processCallback(CALLBACK *arg);34static void processCallback(epicsCallback *arg);
3535
36/* Create RSET - Record Support Entry Table*/36/* Create RSET - Record Support Entry Table*/
37#define report NULL37#define report NULL
@@ -94,7 +94,7 @@ typedef struct linkGrp {
9494
95/* The list of link-groups for processing */95/* The list of link-groups for processing */
96typedef struct seqRecPvt {96typedef struct seqRecPvt {
97 CALLBACK callback;97 epicsCallback callback;
98 seqRecord *prec;98 seqRecord *prec;
99 linkGrp *grps[NUM_LINKS + 1]; /* List of link-groups */99 linkGrp *grps[NUM_LINKS + 1]; /* List of link-groups */
100 int index; /* Where we are now */100 int index; /* Where we are now */
@@ -241,7 +241,7 @@ static long asyncFinish(seqRecord *prec)
241}241}
242242
243243
244static void processCallback(CALLBACK *arg)244static void processCallback(epicsCallback *arg)
245{245{
246 seqRecPvt *pcb;246 seqRecPvt *pcb;
247 seqRecord *prec;247 seqRecord *prec;
diff --git a/modules/database/src/std/rec/stringinRecord.c b/modules/database/src/std/rec/stringinRecord.c
index 0785a81..fdc1f26 100644
--- a/modules/database/src/std/rec/stringinRecord.c
+++ b/modules/database/src/std/rec/stringinRecord.c
@@ -219,9 +219,9 @@ static long readValue(stringinRecord *prec)
219 }219 }
220 prec->pact = FALSE;220 prec->pact = FALSE;
221 } else { /* !prec->pact && delay >= 0. */221 } else { /* !prec->pact && delay >= 0. */
222 CALLBACK *pvt = prec->simpvt;222 epicsCallback *pvt = prec->simpvt;
223 if (!pvt) {223 if (!pvt) {
224 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */224 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
225 prec->simpvt = pvt;225 prec->simpvt = pvt;
226 }226 }
227 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);227 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/stringinRecord.dbd b/modules/database/src/std/rec/stringinRecord.dbd
index ec7b2d5..d59ba9a 100644
--- a/modules/database/src/std/rec/stringinRecord.dbd
+++ b/modules/database/src/std/rec/stringinRecord.dbd
@@ -93,6 +93,6 @@ recordtype(stringin) {
93 prompt("Sim. Mode Private")93 prompt("Sim. Mode Private")
94 special(SPC_NOMOD)94 special(SPC_NOMOD)
95 interest(4)95 interest(4)
96 extra("CALLBACK *simpvt")96 extra("epicsCallback *simpvt")
97 }97 }
98}98}
diff --git a/modules/database/src/std/rec/stringoutRecord.c b/modules/database/src/std/rec/stringoutRecord.c
index 49f5aec..ddf3028 100644
--- a/modules/database/src/std/rec/stringoutRecord.c
+++ b/modules/database/src/std/rec/stringoutRecord.c
@@ -247,9 +247,9 @@ static long writeValue(stringoutRecord *prec)
247 status = dbPutLink(&prec->siol, DBR_STRING, &prec->val, 1);247 status = dbPutLink(&prec->siol, DBR_STRING, &prec->val, 1);
248 prec->pact = FALSE;248 prec->pact = FALSE;
249 } else { /* !prec->pact && delay >= 0. */249 } else { /* !prec->pact && delay >= 0. */
250 CALLBACK *pvt = prec->simpvt;250 epicsCallback *pvt = prec->simpvt;
251 if (!pvt) {251 if (!pvt) {
252 pvt = calloc(1, sizeof(CALLBACK)); /* very lazy allocation of callback structure */252 pvt = calloc(1, sizeof(epicsCallback)); /* very lazy allocation of callback structure */
253 prec->simpvt = pvt;253 prec->simpvt = pvt;
254 }254 }
255 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);255 if (pvt) callbackRequestProcessCallbackDelayed(pvt, prec->prio, prec, prec->sdly);
diff --git a/modules/database/src/std/rec/stringoutRecord.dbd b/modules/database/src/std/rec/stringoutRecord.dbd
index 358340c..962c2a8 100644
--- a/modules/database/src/std/rec/stringoutRecord.dbd
+++ b/modules/database/src/std/rec/stringoutRecord.dbd
@@ -99,7 +99,7 @@ recordtype(stringout) {
99 prompt("Sim. Mode Private")99 prompt("Sim. Mode Private")
100 special(SPC_NOMOD)100 special(SPC_NOMOD)
101 interest(4)101 interest(4)
102 extra("CALLBACK *simpvt")102 extra("epicsCallback *simpvt")
103 }103 }
104 field(IVOA,DBF_MENU) {104 field(IVOA,DBF_MENU) {
105 prompt("INVALID output action")105 prompt("INVALID output action")
diff --git a/modules/database/src/std/rec/waveformRecord.c b/modules/database/src/std/rec/waveformRecord.c
index 19f4fbf..8d21018 100644
--- a/modules/database/src/std/rec/waveformRecord.c
+++ b/modules/database/src/std/rec/waveformRecord.c
@@ -364,10 +364,10 @@ static long readValue(waveformRecord *prec)
364 prec->pact = FALSE;364 prec->pact = FALSE;
365 }365 }
366 else { /* !prec->pact && delay >= 0 */366 else { /* !prec->pact && delay >= 0 */
367 CALLBACK *pvt = prec->simpvt;367 epicsCallback *pvt = prec->simpvt;
368368
369 if (!pvt) { /* very lazy allocation of callback structure */369 if (!pvt) { /* very lazy allocation of callback structure */
370 pvt = calloc(1, sizeof(CALLBACK));370 pvt = calloc(1, sizeof(epicsCallback));
371 prec->simpvt = pvt;371 prec->simpvt = pvt;
372 }372 }
373 if (pvt)373 if (pvt)
diff --git a/modules/database/src/std/rec/waveformRecord.dbd.pod b/modules/database/src/std/rec/waveformRecord.dbd.pod
index 82561d0..b65a408 100644
--- a/modules/database/src/std/rec/waveformRecord.dbd.pod
+++ b/modules/database/src/std/rec/waveformRecord.dbd.pod
@@ -164,7 +164,7 @@ recordtype(waveform) {
164 prompt("Sim. Mode Private")164 prompt("Sim. Mode Private")
165 special(SPC_NOMOD)165 special(SPC_NOMOD)
166 interest(4)166 interest(4)
167 extra("CALLBACK *simpvt")167 extra("epicsCallback *simpvt")
168 }168 }
169 field(MPST,DBF_MENU) {169 field(MPST,DBF_MENU) {
170 prompt("Post Value Monitors")170 prompt("Post Value Monitors")
diff --git a/modules/database/test/ioc/db/callbackParallelTest.c b/modules/database/test/ioc/db/callbackParallelTest.c
index f8d0c39..a985cd2 100644
--- a/modules/database/test/ioc/db/callbackParallelTest.c
+++ b/modules/database/test/ioc/db/callbackParallelTest.c
@@ -44,8 +44,8 @@
44#define TEST_DELAY(i) ((i / NUM_CALLBACK_PRIORITIES) * DELAY_QUANTUM)44#define TEST_DELAY(i) ((i / NUM_CALLBACK_PRIORITIES) * DELAY_QUANTUM)
4545
46typedef struct myPvt {46typedef struct myPvt {
47 CALLBACK cb1;47 epicsCallback cb1;
48 CALLBACK cb2;48 epicsCallback cb2;
49 epicsTimeStamp pass1Time;49 epicsTimeStamp pass1Time;
50 epicsTimeStamp pass2Time;50 epicsTimeStamp pass2Time;
51 double delay;51 double delay;
@@ -55,7 +55,7 @@ typedef struct myPvt {
5555
56epicsEventId finished;56epicsEventId finished;
5757
58static void myCallback(CALLBACK *pCallback)58static void myCallback(epicsCallback *pCallback)
59{59{
60 myPvt *pmyPvt;60 myPvt *pmyPvt;
6161
@@ -74,7 +74,7 @@ static void myCallback(CALLBACK *pCallback)
74 }74 }
75}75}
7676
77static void finalCallback(CALLBACK *pCallback)77static void finalCallback(epicsCallback *pCallback)
78{78{
79 myCallback(pCallback);79 myCallback(pCallback);
80 epicsEventSignal(finished);80 epicsEventSignal(finished);
diff --git a/modules/database/test/ioc/db/callbackTest.c b/modules/database/test/ioc/db/callbackTest.c
index 3ccc2c2..4b7e24d 100644
--- a/modules/database/test/ioc/db/callbackTest.c
+++ b/modules/database/test/ioc/db/callbackTest.c
@@ -44,8 +44,8 @@
44#define TEST_DELAY(i) ((i / NUM_CALLBACK_PRIORITIES) * DELAY_QUANTUM)44#define TEST_DELAY(i) ((i / NUM_CALLBACK_PRIORITIES) * DELAY_QUANTUM)
4545
46typedef struct myPvt {46typedef struct myPvt {
47 CALLBACK cb1;47 epicsCallback cb1;
48 CALLBACK cb2;48 epicsCallback cb2;
49 epicsTimeStamp pass1Time;49 epicsTimeStamp pass1Time;
50 epicsTimeStamp pass2Time;50 epicsTimeStamp pass2Time;
51 double delay;51 double delay;
@@ -56,7 +56,7 @@ typedef struct myPvt {
56epicsEventId finished;56epicsEventId finished;
5757
5858
59static void myCallback(CALLBACK *pCallback)59static void myCallback(epicsCallback *pCallback)
60{60{
61 myPvt *pmyPvt;61 myPvt *pmyPvt;
6262
@@ -75,7 +75,7 @@ static void myCallback(CALLBACK *pCallback)
75 }75 }
76}76}
7777
78static void finalCallback(CALLBACK *pCallback)78static void finalCallback(epicsCallback *pCallback)
79{79{
80 myCallback(pCallback);80 myCallback(pCallback);
81 epicsEventSignal(finished);81 epicsEventSignal(finished);
diff --git a/modules/libcom/src/taskwd/taskwd.c b/modules/libcom/src/taskwd/taskwd.c
index 44ddc77..4f30a5a 100644
--- a/modules/libcom/src/taskwd/taskwd.c
+++ b/modules/libcom/src/taskwd/taskwd.c
@@ -376,7 +376,7 @@ epicsShareFunc void taskwdShow(int level)
376 mCount, tCount, fCount);376 mCount, tCount, fCount);
377 if (level) {377 if (level) {
378 printf("%16.16s %9s %12s %12s %12s\n",378 printf("%16.16s %9s %12s %12s %12s\n",
379 "THREAD NAME", "STATE", "EPICS TID", "CALLBACK", "USR ARG");379 "THREAD NAME", "STATE", "EPICS TID", "epicsCallback", "USR ARG");
380 pt = (struct tNode *)ellFirst(&tList);380 pt = (struct tNode *)ellFirst(&tList);
381 while (pt != NULL) {381 while (pt != NULL) {
382 epicsThreadGetName(pt->tid, tName, sizeof(tName));382 epicsThreadGetName(pt->tid, tName, sizeof(tName));

Subscribers

People subscribed via source and target branches