EPICS Base  7.0.8.1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
initHooks.h
1 /*************************************************************************\
2 * Copyright (c) 2009 UChicago Argonne LLC, as Operator of Argonne
3 * National Laboratory.
4 * Copyright (c) 2002 The Regents of the University of California, as
5 * Operator of Los Alamos National Laboratory.
6 * SPDX-License-Identifier: EPICS
7 * EPICS BASE is distributed subject to a Software License Agreement found
8 * in file LICENSE that is included with this distribution.
9 \*************************************************************************/
10 
52 #ifndef INC_initHooks_H
53 #define INC_initHooks_H
54 
55 #include "libComAPI.h"
56 
57 #ifdef __cplusplus
58 extern "C" {
59 #endif
60 
73 typedef enum {
74 
75  // iocInit() begins
76  initHookAtIocBuild = 0,
77  initHookAtBeginning,
78  initHookAfterCallbackInit,
79  initHookAfterCaLinkInit,
80  initHookAfterInitDrvSup,
81  initHookAfterInitRecSup,
82  initHookAfterInitDevSup,
83  initHookAfterInitDatabase,
84  initHookAfterFinishDevSup,
85  initHookAfterScanInit,
86  initHookAfterInitialProcess,
87  initHookAfterCaServerInit,
88  initHookAfterIocBuilt,
90  // iocInit() continues, and iocRun() begins
91  initHookAtIocRun,
92  initHookAfterDatabaseRunning,
93  initHookAfterCaServerRunning,
94  initHookAfterIocRunning,
95  // iocInit() or iocRun() ends
96 
97  // iocPause() begins
98  initHookAtIocPause,
99  initHookAfterCaServerPaused,
100  initHookAfterDatabasePaused,
101  initHookAfterIocPaused,
102  // iocPause() ends
103 
104  // iocShutdown() begins
108  initHookAtShutdown,
112  initHookAfterCloseLinks,
117  initHookAfterStopScan,
121  initHookAfterStopCallback,
126  initHookAfterStopLinks,
130  initHookBeforeFree,
134  initHookAfterShutdown,
135  // iocShutdown() ends
136 
141  initHookAfterPrepareDatabase,
146  initHookBeforeCleanupDatabase,
147 
148  /* Deprecated states: */
150  initHookAfterInterruptAccept,
152  initHookAtEnd,
153 } initHookState;
154 
160 typedef void (*initHookFunction)(initHookState state);
161 
168 LIBCOM_API int initHookRegister(initHookFunction func);
169 
175 LIBCOM_API void initHookAnnounce(initHookState state);
176 
183 LIBCOM_API const char *initHookName(int state);
184 
189 LIBCOM_API void initHookFree(void);
190 
191 #ifdef __cplusplus
192 }
193 #endif
194 
195 #endif /* INC_initHooks_H */