EPICS Base  7.0.8.1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
recSup.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 /* recSup.h
11  * Record Support
12  * Author: Marty Kraimer
13  * Date: 6-1-90
14  */
15 
16 #ifndef INCrecSuph
17 #define INCrecSuph 1
18 
19 #include "errMdef.h"
20 #include "compilerDependencies.h"
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 /* RSET definition */
27 
28 /* defined elsewhere */
29 struct dbAddr;
30 struct dbCommon;
31 struct dbr_enumStrs;
32 struct dbr_grDouble;
33 struct dbr_ctrlDouble;
34 struct dbr_alDouble;
35 
36 /* record support entry table */
37 struct typed_rset {
38  long number; /* number of support routines */
39  long (*report)(void *precord);
40  long (*init)();
41  long (*init_record)(struct dbCommon *precord, int pass);
42  long (*process)(struct dbCommon *precord);
43  long (*special)(struct dbAddr *paddr, int after);
44  long (*get_value)(void); /* DEPRECATED set to NULL */
45  long (*cvt_dbaddr)(struct dbAddr *paddr);
46  long (*get_array_info)(struct dbAddr *paddr, long *no_elements, long *offset);
47  long (*put_array_info)(struct dbAddr *paddr, long nNew);
48  long (*get_units)(struct dbAddr *paddr, char *units);
49  long (*get_precision)(const struct dbAddr *paddr, long *precision);
50  long (*get_enum_str)(const struct dbAddr *paddr, char *pbuffer);
51  long (*get_enum_strs)(const struct dbAddr *paddr, struct dbr_enumStrs *p);
52  long (*put_enum_str)(const struct dbAddr *paddr, const char *pbuffer);
53  long (*get_graphic_double)(struct dbAddr *paddr, struct dbr_grDouble *p);
54  long (*get_control_double)(struct dbAddr *paddr, struct dbr_ctrlDouble *p);
55  long (*get_alarm_double)(struct dbAddr *paddr, struct dbr_alDouble *p);
56 };
57 
58 #ifdef USE_TYPED_RSET
59 
60 typedef struct typed_rset rset;
61 
62 #else
63 
64 /* pre-3.16 old untyped RSET definition - DEPRECATED */
65 
66 typedef long (*RECSUPFUN) () EPICS_DEPRECATED; /* ptr to record support function*/
67 
68 struct rset { /* record support entry table */
69  long number; /*number of support routines*/
70  long (*report)(); /*print report */
71  long (*init)(); /*init support */
72  long (*init_record)(); /*init record */
73  long (*process)(); /*process record */
74  long (*special)(); /*special processing */
75  long (*get_value)(); /*no longer used */
76  long (*cvt_dbaddr)(); /*cvt dbAddr */
77  long (*get_array_info)();
78  long (*put_array_info)();
79  long (*get_units)();
80  long (*get_precision)();
81  long (*get_enum_str)(); /*get string from enum item */
82  long (*get_enum_strs)();/*get all enum strings */
83  long (*put_enum_str)(); /*put string from enum item */
84  long (*get_graphic_double)();
85  long (*get_control_double)();
86  long (*get_alarm_double)();
87 } EPICS_DEPRECATED;
88 
89 typedef struct rset rset EPICS_DEPRECATED;
90 
91 #endif
92 
93 #define RSETNUMBER 17
94 
95 #define S_rec_noRSET (M_recSup| 1) /*Missing record support entry table*/
96 #define S_rec_noSizeOffset (M_recSup| 2) /*Missing SizeOffset Routine*/
97 #define S_rec_outMem (M_recSup| 3) /*Out of Memory*/
98 
99 #ifdef __cplusplus
100 } /* extern "C" */
101 #endif
102 
103 #endif /*INCrecSuph*/
Declaration of dbCommon.
Definition: dbCommon.h:18
Definition: dbAddr.h:17
Compiler specific declarations.
Definition: recSup.h:68