Merge changes from 3.15 branch into 7.0

This commit is contained in:
Andrew Johnson
2020-04-15 21:39:54 -05:00
57 changed files with 4118 additions and 1470 deletions
+9 -7
View File
@@ -70,9 +70,7 @@
#include "registryJLinks.h"
#include "registryRecordType.h"
static enum {
iocVirgin, iocBuilding, iocBuilt, iocRunning, iocPaused, iocStopped
} iocState = iocVirgin;
static enum iocStateEnum iocState = iocVoid;
static enum {
buildServers, buildIsolated
} iocBuildMode;
@@ -99,6 +97,11 @@ static void iterateRecords(recIterFunc func, void *user);
int dbThreadRealtimeLock = 1;
epicsExportAddress(int, dbThreadRealtimeLock);
enum iocStateEnum getIocState(void)
{
return iocState;
}
/*
* Initialize EPICS on the IOC.
*/
@@ -109,7 +112,7 @@ int iocInit(void)
static int iocBuild_1(void)
{
if (iocState != iocVirgin && iocState != iocStopped) {
if (iocState != iocVoid) {
errlogPrintf("iocBuild: IOC can only be initialized from uninitialized or stopped state\n");
return -1;
}
@@ -705,8 +708,7 @@ static void doFreeRecord(dbRecordType *pdbRecordType, dbCommon *precord,
int iocShutdown(void)
{
if (iocState == iocVirgin || iocState == iocStopped)
return 0;
if (iocState == iocVoid) return 0;
iterateRecords(doCloseLinks, NULL);
@@ -734,7 +736,7 @@ int iocShutdown(void)
iocshFree();
}
iocState = iocStopped;
iocState = iocVoid;
iocBuildMode = buildServers;
return 0;
}
+5
View File
@@ -13,10 +13,15 @@
#include "shareLib.h"
enum iocStateEnum {
iocVoid, iocBuilding, iocBuilt, iocRunning, iocPaused
};
#ifdef __cplusplus
extern "C" {
#endif
epicsShareFunc enum iocStateEnum getIocState(void);
epicsShareFunc int iocInit(void);
epicsShareFunc int iocBuild(void);
epicsShareFunc int iocBuildIsolated(void);