This is Unofficial EPICS BASE Doxygen Site
iocInit.h File Reference
#include "shareLib.h"
+ Include dependency graph for iocInit.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  iocStateEnum {
  iocVoid, iocBuilding, iocBuilt, iocRunning,
  iocPaused
}
 

Functions

epicsShareFunc enum iocStateEnum getIocState (void)
 
epicsShareFunc int iocInit (void)
 
epicsShareFunc int iocBuild (void)
 
epicsShareFunc int iocBuildIsolated (void)
 
epicsShareFunc int iocRun (void)
 
epicsShareFunc int iocPause (void)
 
epicsShareFunc int iocShutdown (void)
 

Enumeration Type Documentation

Enumerator
iocVoid 
iocBuilding 
iocBuilt 
iocRunning 
iocPaused 

Definition at line 16 of file iocInit.h.

Function Documentation

epicsShareFunc enum iocStateEnum getIocState ( void  )

Definition at line 100 of file iocInit.c.

101 {
102  return iocState;
103 }
epicsShareFunc int iocBuild ( void  )

Definition at line 196 of file iocInit.c.

197 {
198  int status;
199 
200  status = iocBuild_1();
201  if (status) return status;
202 
203  dbCaLinkInit();
204 
205  status = iocBuild_2();
206  if (status) return status;
207 
208  dbInitServers();
209 
210  status = iocBuild_3();
211 
214 
215  if (!status) iocBuildMode = buildServers;
216  return status;
217 }
pvd::Status status
LIBCOM_API void epicsThreadRealtimeLock(void)
Definition: osdThread.c:425
int dbThreadRealtimeLock
Definition: iocInit.c:97
epicsShareFunc int iocBuildIsolated ( void  )

Definition at line 219 of file iocInit.c.

220 {
221  int status;
222 
223  status = iocBuild_1();
224  if (status) return status;
225 
226  dbCaLinkInitIsolated();
227 
228  status = iocBuild_2();
229  if (status) return status;
230 
231  status = iocBuild_3();
232  if (!status) iocBuildMode = buildIsolated;
233  return status;
234 }
pvd::Status status
epicsShareFunc int iocInit ( void  )

Definition at line 108 of file iocInit.c.

109 {
110  return iocBuild() || iocRun();
111 }
int iocBuild(void)
Definition: iocInit.c:196
int iocRun(void)
Definition: iocInit.c:236
epicsShareFunc int iocPause ( void  )

Definition at line 267 of file iocInit.c.

268 {
269  if (iocState != iocRunning) {
270  errlogPrintf("iocPause: IOC not running\n");
271  return -1;
272  }
274 
275  if (iocBuildMode == buildServers) {
276  dbPauseServers();
278  }
279 
280  dbCaPause();
281  scanPause();
283 
284  iocState = iocPaused;
285  errlogPrintf("iocPause: IOC suspended\n");
287  return 0;
288 }
void initHookAnnounce(initHookState state)
Definition: initHooks.c:76
int errlogPrintf(const char *pFormat,...)
Definition: errlog.c:105
epicsShareFunc int iocRun ( void  )

Definition at line 236 of file iocInit.c.

237 {
238  if (iocState != iocPaused && iocState != iocBuilt) {
239  errlogPrintf("iocRun: IOC not paused\n");
240  return -1;
241  }
243 
244  /* Enable scan tasks and some driver support functions. */
245  scanRun();
246  dbCaRun();
248  if (iocState == iocBuilt)
250 
251  if (iocBuildMode == buildServers) {
252  dbRunServers();
254  }
255 
256  if (iocState == iocBuilt)
258 
259  errlogPrintf("iocRun: %s\n", iocState == iocBuilt ?
260  "All initialization complete" :
261  "IOC restarted");
262  iocState = iocRunning;
264  return 0;
265 }
void initHookAnnounce(initHookState state)
Definition: initHooks.c:76
int errlogPrintf(const char *pFormat,...)
Definition: errlog.c:105
epicsShareFunc int iocShutdown ( void  )

Definition at line 709 of file iocInit.c.

710 {
711  if (iocState == iocVoid) return 0;
712 
714 
715  iterateRecords(doCloseLinks, NULL);
717 
718  if (iocBuildMode == buildIsolated) {
719  /* stop and "join" threads */
720  scanStop();
722  callbackStop();
724  } else {
725  dbStopServers();
726  }
727 
728  dbCaShutdown(); /* must be before dbFreeRecord and dbChannelExit */
730 
731  if (iocBuildMode == buildIsolated) {
732  /* free resources */
734  scanCleanup();
735  callbackCleanup();
736 
737  iterateRecords(doFreeRecord, NULL);
738  dbLockCleanupRecords(pdbbase);
739 
740  asShutdown();
741  dbChannelExit();
742  dbProcessNotifyExit();
743  iocshFree();
744  }
745 
746  iocState = iocVoid;
747  iocBuildMode = buildServers;
748 
750  return 0;
751 }
void initHookAnnounce(initHookState state)
Definition: initHooks.c:76
#define NULL
Definition: catime.c:38
void epicsStdCall iocshFree(void)
Definition: iocsh.cpp:231
int asShutdown(void)
Definition: asDbLib.c:157