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