EPICS Base  7.0.6.1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
recGbl.h
1 /*************************************************************************\
2 * Copyright (c) 2012 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 /* recGbl.h */
11 /* Record Global
12  * Author: Marty Kraimer
13  * Date: 13Jun95
14  */
15 #ifndef INCrecGblh
16 #define INCrecGblh 1
17 
18 #include <stdarg.h>
19 
20 #include "compilerDependencies.h"
21 #include "epicsTypes.h"
22 #include "dbCoreAPI.h"
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
34 #define HAS_ALARM_MESSAGE 1
35 
36 /*************************************************************************/
37 
38 /* Structures needed for args */
39 
40 struct link;
41 struct dbAddr;
42 struct dbr_alDouble;
43 struct dbr_ctrlDouble;
44 struct dbr_grDouble;
45 struct dbCommon;
46 
47 /* Hook Routine */
48 
49 typedef void (*RECGBL_ALARM_HOOK_ROUTINE)(struct dbCommon *prec,
50  epicsEnum16 prev_sevr, epicsEnum16 prev_stat);
51 DBCORE_API extern RECGBL_ALARM_HOOK_ROUTINE recGblAlarmHook;
52 
53 /* Global Record Support Routines */
54 
55 DBCORE_API void recGblDbaddrError(long status, const struct dbAddr *paddr,
56  const char *pcaller_name);
57 DBCORE_API void recGblRecordError(long status, void *precord,
58  const char *pcaller_name);
59 DBCORE_API void recGblRecSupError(long status, const struct dbAddr *paddr,
60  const char *pcaller_name, const char *psupport_name);
61 DBCORE_API void recGblGetGraphicDouble(const struct dbAddr *paddr,
62  struct dbr_grDouble *pgd);
63 DBCORE_API void recGblGetControlDouble(
64  const struct dbAddr *paddr, struct dbr_ctrlDouble *pcd);
65 DBCORE_API void recGblGetAlarmDouble(const struct dbAddr *paddr,
66  struct dbr_alDouble *pad);
67 DBCORE_API void recGblGetPrec(const struct dbAddr *paddr,
68  long *pprecision);
69 DBCORE_API int recGblInitConstantLink(struct link *plink,
70  short dbftype, void *pdest);
71 DBCORE_API unsigned short recGblResetAlarms(void *precord);
72 DBCORE_API int recGblSetSevr(void *precord, epicsEnum16 new_stat,
73  epicsEnum16 new_sevr);
74 DBCORE_API void recGblInheritSevr(int msMode, void *precord, epicsEnum16 stat,
75  epicsEnum16 sevr);
76 DBCORE_API int recGblSetSevrMsg(void *precord, epicsEnum16 new_stat,
77  epicsEnum16 new_sevr,
78  const char *msg, ...) EPICS_PRINTF_STYLE(4,5);
79 DBCORE_API int recGblSetSevrVMsg(void *precord, epicsEnum16 new_stat,
80  epicsEnum16 new_sevr,
81  const char *msg, va_list args);
82 DBCORE_API void recGblFwdLink(void *precord);
83 DBCORE_API void recGblGetTimeStamp(void *precord);
84 DBCORE_API void recGblGetTimeStampSimm(void *prec, const epicsEnum16 simm, struct link *siol);
85 DBCORE_API void recGblCheckDeadband(epicsFloat64 *poldval, const epicsFloat64 newval,
86  const epicsFloat64 deadband, unsigned *monitor_mask, const unsigned add_mask);
87 DBCORE_API void recGblSaveSimm(const epicsEnum16 sscn,
88  epicsEnum16 *poldsimm, const epicsEnum16 simm);
89 DBCORE_API void recGblCheckSimm(struct dbCommon *prec, epicsEnum16 *psscn,
90  const epicsEnum16 oldsimm, const epicsEnum16 simm);
91 DBCORE_API void recGblInitSimm(struct dbCommon *prec, epicsEnum16 *psscn,
92  epicsEnum16 *poldsimm, epicsEnum16 *psimm, struct link *psiml);
93 DBCORE_API long recGblGetSimm(struct dbCommon *prec, epicsEnum16 *psscn,
94  epicsEnum16 *poldsimm, epicsEnum16 *psimm, struct link *psiml);
95 
96 #ifdef __cplusplus
97 }
98 #endif
99 
100 #endif /*INCrecGblh*/
The core data types used by epics.
Declaration of dbCommon.
Definition: dbCommon.h:18
Definition: dbAddr.h:17
epicsEnum16 sevr
Alarm Severity.
Definition: dbCommon.h:38
Compiler specific declarations.
epicsEnum16 stat
Alarm Status.
Definition: dbCommon.h:37