Merge branch '3.15' into 7.0

* 3.15: (28 commits)
  update RELEASE_NOTES
  add option EPICS_NO_CALLBACK
  replace CALLBACK -> epicsCallback
  Update dbTest.c
  Remove links to wiki-ext
  Add POD annotations from Wiki to subArrayRecord and menuAlarmStat
  Rename subArrayRecord.dbd and menuAlarmStat.dbd to .pod
  Add POD annotations to longoutRecord from Wiki
  Rename longoutRecord.dbd longoutRecord.dbd.pod
  Add POD annotations to longinRecord from Wiki
  Rename longinRecord.dbd longinRecord.dbd.pod
  Add POD annotations to subRecord from Wiki
  Rename subRecord.dbd subRecord.dbd.pod
  Add POD annotations to selRecord from Wiki
  Rename selRecord.dbd selRecord.dbd.pod
  Add POD annotations to seqRecord from Wiki
  Rename seqRecord.dbd seqRecord.dbd.pod
  Fix menu declaration test too
  Add redefinition guard to menu-generated typedefs
  Updates to existing .dbd.pod texts, add event and fanout from wiki
  ...

# Conflicts:
#	documentation/README.1st
#	documentation/README.html
#	modules/database/src/ioc/db/callback.h
#	modules/database/src/ioc/db/dbNotify.c
#	modules/database/src/ioc/db/menuAlarmStat.dbd
#	modules/database/src/ioc/db/menuFtype.dbd
#	modules/database/src/std/rec/compressRecord.dbd.pod
#	modules/database/src/std/rec/eventRecord.dbd
#	modules/database/src/std/rec/fanoutRecord.dbd
#	modules/database/src/std/rec/longinRecord.dbd
#	modules/database/src/std/rec/longoutRecord.dbd
#	modules/database/src/std/rec/selRecord.dbd
#	modules/database/src/std/rec/seqRecord.dbd
#	modules/database/src/std/rec/subArrayRecord.dbd
#	modules/database/src/std/rec/subRecord.dbd
#	modules/libcom/src/iocsh/menuAlarmStat.dbd.pod
#	modules/libcom/src/iocsh/menuFtype.dbd.pod
#	src/ioc/db/menuAlarmStat.dbd
#	src/ioc/db/menuFtype.dbd

Manually fix some move+rename
Make additional CALLBACK -> epicsCallback
preserve INT64 in menuFtype
preserve OLDSIM et al
This commit is contained in:
Michael Davidsaver
2019-09-09 18:13:37 -07:00
88 changed files with 5812 additions and 2702 deletions

View File

@@ -16,7 +16,7 @@
#include "shareLib.h"
typedef struct {
CALLBACK callback;
epicsCallback callback;
long status;
} ASDBCALLBACK;

View File

@@ -216,7 +216,7 @@ static void callbackTask(void *arg)
epicsEventMustWait(mySet->semWakeUp);
while ((ptr = epicsRingPointerPop(mySet->queue))) {
CALLBACK *pcallback = (CALLBACK *)ptr;
epicsCallback *pcallback = (epicsCallback *)ptr;
if(!epicsRingPointerIsEmpty(mySet->queue))
epicsEventMustTrigger(mySet->semWakeUp);
mySet->queueOverflow = FALSE;
@@ -317,7 +317,7 @@ void callbackInit(void)
}
/* This routine can be called from interrupt context */
int callbackRequest(CALLBACK *pcallback)
int callbackRequest(epicsCallback *pcallback)
{
int priority;
int pushOK;
@@ -347,7 +347,7 @@ int callbackRequest(CALLBACK *pcallback)
return 0;
}
static void ProcessCallback(CALLBACK *pcallback)
static void ProcessCallback(epicsCallback *pcallback)
{
dbCommon *pRec;
@@ -358,14 +358,14 @@ static void ProcessCallback(CALLBACK *pcallback)
dbScanUnlock(pRec);
}
void callbackSetProcess(CALLBACK *pcallback, int Priority, void *pRec)
void callbackSetProcess(epicsCallback *pcallback, int Priority, void *pRec)
{
callbackSetCallback(ProcessCallback, pcallback);
callbackSetPriority(Priority, pcallback);
callbackSetUser(pRec, pcallback);
}
int callbackRequestProcessCallback(CALLBACK *pcallback,
int callbackRequestProcessCallback(epicsCallback *pcallback,
int Priority, void *pRec)
{
callbackSetProcess(pcallback, Priority, pRec);
@@ -374,11 +374,11 @@ int callbackRequestProcessCallback(CALLBACK *pcallback,
static void notify(void *pPrivate)
{
CALLBACK *pcallback = (CALLBACK *)pPrivate;
epicsCallback *pcallback = (epicsCallback *)pPrivate;
callbackRequest(pcallback);
}
void callbackRequestDelayed(CALLBACK *pcallback, double seconds)
void callbackRequestDelayed(epicsCallback *pcallback, double seconds)
{
epicsTimerId timer = (epicsTimerId)pcallback->timer;
@@ -389,7 +389,7 @@ void callbackRequestDelayed(CALLBACK *pcallback, double seconds)
epicsTimerStartDelay(timer, seconds);
}
void callbackCancelDelayed(CALLBACK *pcallback)
void callbackCancelDelayed(epicsCallback *pcallback)
{
epicsTimerId timer = (epicsTimerId)pcallback->timer;
@@ -398,7 +398,7 @@ void callbackCancelDelayed(CALLBACK *pcallback)
}
}
void callbackRequestProcessCallbackDelayed(CALLBACK *pcallback,
void callbackRequestProcessCallbackDelayed(epicsCallback *pcallback,
int Priority, void *pRec, double seconds)
{
callbackSetProcess(pcallback, Priority, pRec);

View File

@@ -26,7 +26,7 @@ extern "C" {
/*
* WINDOWS also has a "CALLBACK" type def
*/
#ifdef _WIN32
#if defined(_WIN32) && !defined(EPICS_NO_CALLBACK)
# ifdef CALLBACK
# undef CALLBACK
# endif /*CALLBACK*/
@@ -44,7 +44,9 @@ typedef struct callbackPvt {
void *timer; /*for use by callback itself*/
}epicsCallback;
#if !defined(EPICS_NO_CALLBACK)
typedef epicsCallback CALLBACK;
#endif
typedef void (*CALLBACKFUNC)(struct callbackPvt*);
@@ -69,16 +71,16 @@ typedef struct callbackQueueStats {
epicsShareFunc void callbackInit(void);
epicsShareFunc void callbackStop(void);
epicsShareFunc void callbackCleanup(void);
epicsShareFunc int callbackRequest(CALLBACK *pCallback);
epicsShareFunc int callbackRequest(epicsCallback *pCallback);
epicsShareFunc void callbackSetProcess(
CALLBACK *pcallback, int Priority, void *pRec);
epicsCallback *pcallback, int Priority, void *pRec);
epicsShareFunc int callbackRequestProcessCallback(
CALLBACK *pCallback,int Priority, void *pRec);
epicsCallback *pCallback,int Priority, void *pRec);
epicsShareFunc void callbackRequestDelayed(
CALLBACK *pCallback,double seconds);
epicsShareFunc void callbackCancelDelayed(CALLBACK *pcallback);
epicsCallback *pCallback,double seconds);
epicsShareFunc void callbackCancelDelayed(epicsCallback *pcallback);
epicsShareFunc void callbackRequestProcessCallbackDelayed(
CALLBACK *pCallback, int Priority, void *pRec, double seconds);
epicsCallback *pCallback, int Priority, void *pRec, double seconds);
epicsShareFunc int callbackSetQueueSize(int size);
epicsShareFunc int callbackQueueStatus(const int reset, callbackQueueStats *result);
epicsShareFunc void callbackQueueShow(const int reset);

View File

@@ -69,7 +69,7 @@ typedef struct notifyPvt {
ELLNODE node; /*For free list*/
long magic;
short state;
CALLBACK callback;
epicsCallback callback;
ELLLIST waitList; /*list of records for current processNotify*/
short cancelWait;
short userCallbackWait;
@@ -86,7 +86,7 @@ typedef struct notifyGlobal {
static notifyGlobal *pnotifyGlobal = 0;
static void notifyCallback(CALLBACK *pcallback);
static void notifyCallback(epicsCallback *pcallback);
#define ellSafeAdd(list,listnode) \
{ \
@@ -270,7 +270,7 @@ static void processNotifyCommon(processNotify *ppn, dbCommon *precord, int first
callDone(precord, ppn);
}
static void notifyCallback(CALLBACK *pcallback)
static void notifyCallback(epicsCallback *pcallback)
{
processNotify *ppn = NULL;
dbCommon *precord;

View File

@@ -109,7 +109,7 @@ static char *priorityName[NUM_CALLBACK_PRIORITIES] = {
/* EVENT */
typedef struct event_list {
CALLBACK callback[NUM_CALLBACK_PRIORITIES];
epicsCallback callback[NUM_CALLBACK_PRIORITIES];
scan_list scan_list[NUM_CALLBACK_PRIORITIES];
struct event_list *next;
char eventname[1]; /* actually arbitrary size */
@@ -120,7 +120,7 @@ static epicsMutexId event_lock;
/* IO_EVENT*/
typedef struct io_scan_list {
CALLBACK callback;
epicsCallback callback;
scan_list scan_list;
} io_scan_list;
@@ -141,9 +141,9 @@ static void periodicTask(void *arg);
static void initPeriodic(void);
static void deletePeriodic(void);
static void spawnPeriodic(int ind);
static void eventCallback(CALLBACK *pcallback);
static void eventCallback(epicsCallback *pcallback);
static void ioscanInit(void);
static void ioscanCallback(CALLBACK *pcallback);
static void ioscanCallback(epicsCallback *pcallback);
static void ioscanDestroy(void);
static void printList(scan_list *psl, char *message);
static void scanList(scan_list *psl);
@@ -448,7 +448,7 @@ int scanpiol(void) /* print pioscan_list */
return 0;
}
static void eventCallback(CALLBACK *pcallback)
static void eventCallback(epicsCallback *pcallback)
{
scan_list *psl;
@@ -944,7 +944,7 @@ static void spawnPeriodic(int ind)
epicsEventWait(startStopEvent);
}
static void ioscanCallback(CALLBACK *pcallback)
static void ioscanCallback(epicsCallback *pcallback)
{
ioscan_head *piosh;
int prio;

View File

@@ -56,7 +56,7 @@ typedef struct msgBuff TAB_BUFFER;
# define MIN(x,y) (((x) < (y)) ? (x) : (y))
#endif
#ifndef MAX
# define MAX(x,y) (((x) < (y)) ? (x) : (y))
# define MAX(x,y) (((x) > (y)) ? (x) : (y))
#endif
/* Local Routines */

View File

@@ -7,6 +7,17 @@
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
=head1 Menu menuAlarmStat
This menu defines the possible alarm statuses that EPICS records can exhibit
which is used for C<STAT> and C<NSTA> fields of all record types.
See L<Alarm Status> for more information.
=menu menuAlarmStat
=cut
menu(menuAlarmStat) {
choice(menuAlarmStatNO_ALARM,"NO_ALARM")
choice(menuAlarmStatREAD,"READ")

View File

@@ -6,6 +6,15 @@
# EPICS BASE is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
=head1 Menu menuFtype
This menu is used for the C<FTVL> and similar fields of many record types.
=menu menuFtype
=cut
menu(menuFtype) {
choice(menuFtypeSTRING,"STRING")
choice(menuFtypeCHAR,"CHAR")