Merge ~gabadinho/epics-base/+git/typed-dsets:typed-dsets-gabadinho into ~anj/epics-base/+git/base-7.0:typed-dsets
- Git
- lp:~gabadinho/epics-base/+git/typed-dsets
- typed-dsets-gabadinho
- Merge into typed-dsets
Proposed by
José Gabadinho
Status: | Merged |
---|---|
Approved by: | Andrew Johnson |
Approved revision: | c54237e34a0c2b01b26a2d163c3786ffa6fc9de3 |
Merged at revision: | c54237e34a0c2b01b26a2d163c3786ffa6fc9de3 |
Proposed branch: | ~gabadinho/epics-base/+git/typed-dsets:typed-dsets-gabadinho |
Merge into: | ~anj/epics-base/+git/base-7.0:typed-dsets |
Diff against target: |
3332 lines (+567/-841) 85 files modified
modules/database/src/std/dev/Makefile (+37/-0) modules/database/src/std/dev/devAaiSoft.c (+8/-18) modules/database/src/std/dev/devAaoSoft.c (+8/-17) modules/database/src/std/dev/devAoSoft.c (+8/-22) modules/database/src/std/dev/devAoSoftCallback.c (+6/-17) modules/database/src/std/dev/devAoSoftRaw.c (+6/-18) modules/database/src/std/dev/devBiDbState.c (+4/-15) modules/database/src/std/dev/devBiSoft.c (+6/-15) modules/database/src/std/dev/devBiSoftCallback.c (+4/-5) modules/database/src/std/dev/devBiSoftRaw.c (+6/-15) modules/database/src/std/dev/devBoDbState.c (+4/-15) modules/database/src/std/dev/devBoSoft.c (+8/-20) modules/database/src/std/dev/devBoSoftCallback.c (+4/-16) modules/database/src/std/dev/devBoSoftRaw.c (+7/-20) modules/database/src/std/dev/devCalcoutSoft.c (+3/-9) modules/database/src/std/dev/devCalcoutSoftCallback.c (+3/-9) modules/database/src/std/dev/devEnviron.c (+3/-5) modules/database/src/std/dev/devEventSoft.c (+6/-15) modules/database/src/std/dev/devGeneralTime.c (+10/-15) modules/database/src/std/dev/devHistogramSoft.c (+10/-20) modules/database/src/std/dev/devLiSoft.c (+6/-15) modules/database/src/std/dev/devLiSoftCallback.c (+4/-5) modules/database/src/std/dev/devLoSoft.c (+8/-18) modules/database/src/std/dev/devLoSoftCallback.c (+5/-16) modules/database/src/std/dev/devMbbiDirectSoft.c (+6/-15) modules/database/src/std/dev/devMbbiDirectSoftCallback.c (+4/-5) modules/database/src/std/dev/devMbbiDirectSoftRaw.c (+6/-15) modules/database/src/std/dev/devMbbiSoft.c (+6/-15) modules/database/src/std/dev/devMbbiSoftCallback.c (+5/-6) modules/database/src/std/dev/devMbbiSoftRaw.c (+6/-15) modules/database/src/std/dev/devMbboDirectSoft.c (+1/-4) modules/database/src/std/dev/devMbboDirectSoftCallback.c (+2/-5) modules/database/src/std/dev/devMbboDirectSoftRaw.c (+4/-5) modules/database/src/std/dev/devMbboSoft.c (+8/-18) modules/database/src/std/dev/devMbboSoftCallback.c (+5/-15) modules/database/src/std/dev/devMbboSoftRaw.c (+4/-5) modules/database/src/std/dev/devSASoft.c (+5/-15) modules/database/src/std/dev/devSiSoft.c (+6/-15) modules/database/src/std/dev/devSiSoftCallback.c (+5/-6) modules/database/src/std/dev/devSoSoft.c (+3/-13) modules/database/src/std/dev/devSoSoftCallback.c (+3/-14) modules/database/src/std/dev/devStdio.c (+3/-5) modules/database/src/std/dev/devTimestamp.c (+1/-4) modules/database/src/std/dev/devWfSoft.c (+5/-15) modules/database/src/std/rec/Makefile (+17/-0) modules/database/src/std/rec/aaiRecord.c (+6/-15) modules/database/src/std/rec/aaiRecord.dbd (+9/-0) modules/database/src/std/rec/aaoRecord.c (+6/-15) modules/database/src/std/rec/aaoRecord.dbd (+9/-0) modules/database/src/std/rec/aoRecord.c (+10/-20) modules/database/src/std/rec/aoRecord.dbd.pod (+10/-0) modules/database/src/std/rec/biRecord.c (+9/-16) modules/database/src/std/rec/biRecord.dbd.pod (+9/-0) modules/database/src/std/rec/boRecord.c (+6/-16) modules/database/src/std/rec/boRecord.dbd.pod (+9/-0) modules/database/src/std/rec/calcRecord.c (+1/-1) modules/database/src/std/rec/calcoutRecord.c (+5/-15) modules/database/src/std/rec/calcoutRecord.dbd.pod (+8/-0) modules/database/src/std/rec/eventRecord.c (+6/-14) modules/database/src/std/rec/eventRecord.dbd.pod (+10/-0) modules/database/src/std/rec/histogramRecord.c (+7/-18) modules/database/src/std/rec/histogramRecord.dbd (+10/-0) modules/database/src/std/rec/int64inRecord.c (+4/-4) modules/database/src/std/rec/int64outRecord.c (+4/-4) modules/database/src/std/rec/longinRecord.c (+6/-15) modules/database/src/std/rec/longinRecord.dbd.pod (+9/-0) modules/database/src/std/rec/longoutRecord.c (+6/-15) modules/database/src/std/rec/longoutRecord.dbd.pod (+9/-0) modules/database/src/std/rec/lsiRecord.c (+1/-1) modules/database/src/std/rec/mbbiDirectRecord.c (+6/-15) modules/database/src/std/rec/mbbiDirectRecord.dbd.pod (+8/-0) modules/database/src/std/rec/mbbiRecord.c (+6/-16) modules/database/src/std/rec/mbbiRecord.dbd.pod (+8/-0) modules/database/src/std/rec/mbboDirectRecord.c (+6/-16) modules/database/src/std/rec/mbboDirectRecord.dbd.pod (+8/-0) modules/database/src/std/rec/mbboRecord.c (+7/-16) modules/database/src/std/rec/mbboRecord.dbd.pod (+8/-0) modules/database/src/std/rec/stringinRecord.c (+6/-14) modules/database/src/std/rec/stringinRecord.dbd.pod (+9/-0) modules/database/src/std/rec/stringoutRecord.c (+6/-14) modules/database/src/std/rec/stringoutRecord.dbd.pod (+9/-0) modules/database/src/std/rec/subArrayRecord.c (+7/-16) modules/database/src/std/rec/subArrayRecord.dbd.pod (+9/-0) modules/database/src/std/rec/waveformRecord.c (+7/-15) modules/database/src/std/rec/waveformRecord.dbd.pod (+9/-0) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Andrew Johnson | Approve | ||
Review via email: mp+378961@code.launchpad.net |
Commit message
initial dset support for ao record
Description of the change
To post a comment you must log in.
Revision history for this message
Andrew Johnson (anj) wrote : | # |
Revision history for this message
Andrew Johnson (anj) wrote : | # |
José this is great, thank-you for all your hard work on it.
I'm about to merge your changes into my branch, which will then get merged into the main 7.0 branch sometime before the next EPICS 7 release (hopefully sooner rather than later).
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | diff --git a/modules/database/src/std/dev/Makefile b/modules/database/src/std/dev/Makefile |
2 | index bd1add3..b582f0b 100644 |
3 | --- a/modules/database/src/std/dev/Makefile |
4 | +++ b/modules/database/src/std/dev/Makefile |
5 | @@ -13,70 +13,107 @@ SRC_DIRS += $(STDDIR)/dev |
6 | |
7 | DBD += devSoft.dbd |
8 | |
9 | +devAaiSoft_CFLAGS += -DUSE_TYPED_DSET |
10 | dbRecStd_SRCS += devAaiSoft.c |
11 | +devAaoSoft_CFLAGS += -DUSE_TYPED_DSET |
12 | dbRecStd_SRCS += devAaoSoft.c |
13 | devAiSoft_CFLAGS += -DUSE_TYPED_DSET |
14 | dbRecStd_SRCS += devAiSoft.c |
15 | devAiSoftRaw_CFLAGS += -DUSE_TYPED_DSET |
16 | dbRecStd_SRCS += devAiSoftRaw.c |
17 | +devAoSoft_CFLAGS += -DUSE_TYPED_DSET |
18 | dbRecStd_SRCS += devAoSoft.c |
19 | +devAoSoftRaw_CFLAGS += -DUSE_TYPED_DSET |
20 | dbRecStd_SRCS += devAoSoftRaw.c |
21 | +devBiSoft_CFLAGS += -DUSE_TYPED_DSET |
22 | dbRecStd_SRCS += devBiSoft.c |
23 | dbRecStd_SRCS += devBiSoftRaw.c |
24 | +devBiDbState_CFLAGS += -DUSE_TYPED_DSET |
25 | dbRecStd_SRCS += devBiDbState.c |
26 | +devBoSoft_CFLAGS += -DUSE_TYPED_DSET |
27 | dbRecStd_SRCS += devBoSoft.c |
28 | +devBoSoftRaw_CFLAGS += -DUSE_TYPED_DSET |
29 | dbRecStd_SRCS += devBoSoftRaw.c |
30 | dbRecStd_SRCS += devBoDbState.c |
31 | +devCalcoutSoft_CFLAGS += -DUSE_TYPED_DSET |
32 | dbRecStd_SRCS += devCalcoutSoft.c |
33 | +devEventSoft_CFLAGS += -DUSE_TYPED_DSET |
34 | dbRecStd_SRCS += devEventSoft.c |
35 | +devHistogramSoft_CFLAGS += -DUSE_TYPED_DSET |
36 | dbRecStd_SRCS += devHistogramSoft.c |
37 | devI64inSoft_CFLAGS += -DUSE_TYPED_DSET |
38 | dbRecStd_SRCS += devI64inSoft.c |
39 | devI64outSoft_CFLAGS += -DUSE_TYPED_DSET |
40 | dbRecStd_SRCS += devI64outSoft.c |
41 | +devLiSoft_CFLAGS += -DUSE_TYPED_DSET |
42 | dbRecStd_SRCS += devLiSoft.c |
43 | +devLoSoft_CFLAGS += -DUSE_TYPED_DSET |
44 | dbRecStd_SRCS += devLoSoft.c |
45 | devLsiSoft_CFLAGS += -DUSE_TYPED_DSET |
46 | dbRecStd_SRCS += devLsiSoft.c |
47 | devLsoSoft_CFLAGS += -DUSE_TYPED_DSET |
48 | dbRecStd_SRCS += devLsoSoft.c |
49 | +devMbbiDirectSoft_CFLAGS += -DUSE_TYPED_DSET |
50 | dbRecStd_SRCS += devMbbiDirectSoft.c |
51 | +devMbbiDirectSoftRaw_CFLAGS += -DUSE_TYPED_DSET |
52 | dbRecStd_SRCS += devMbbiDirectSoftRaw.c |
53 | +devMbbiSoft_CFLAGS += -DUSE_TYPED_DSET |
54 | dbRecStd_SRCS += devMbbiSoft.c |
55 | +devMbbiSoftRaw_CFLAGS += -DUSE_TYPED_DSET |
56 | dbRecStd_SRCS += devMbbiSoftRaw.c |
57 | +devMbboDirectSoft_CFLAGS += -DUSE_TYPED_DSET |
58 | dbRecStd_SRCS += devMbboDirectSoft.c |
59 | +devMbboDirectSoftRaw_CFLAGS += -DUSE_TYPED_DSET |
60 | dbRecStd_SRCS += devMbboDirectSoftRaw.c |
61 | +devMbboSoft_CFLAGS += -DUSE_TYPED_DSET |
62 | dbRecStd_SRCS += devMbboSoft.c |
63 | +devMbboSoftRaw_CFLAGS += -DUSE_TYPED_DSET |
64 | dbRecStd_SRCS += devMbboSoftRaw.c |
65 | devPrintfSoft_CFLAGS += -DUSE_TYPED_DSET |
66 | dbRecStd_SRCS += devPrintfSoft.c |
67 | +devSASoft_CFLAGS += -DUSE_TYPED_DSET |
68 | dbRecStd_SRCS += devSASoft.c |
69 | +devSiSoft_CFLAGS += -DUSE_TYPED_DSET |
70 | dbRecStd_SRCS += devSiSoft.c |
71 | +devSoSoft_CFLAGS += -DUSE_TYPED_DSET |
72 | dbRecStd_SRCS += devSoSoft.c |
73 | +devWfSoft_CFLAGS += -DUSE_TYPED_DSET |
74 | dbRecStd_SRCS += devWfSoft.c |
75 | |
76 | devAiSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
77 | dbRecStd_SRCS += devAiSoftCallback.c |
78 | +devBiSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
79 | dbRecStd_SRCS += devBiSoftCallback.c |
80 | devI64inSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
81 | dbRecStd_SRCS += devI64inSoftCallback.c |
82 | +devLiSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
83 | dbRecStd_SRCS += devLiSoftCallback.c |
84 | +devMbbiDirectSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
85 | dbRecStd_SRCS += devMbbiDirectSoftCallback.c |
86 | +devMbbiCallbackSoft_CFLAGS += -DUSE_TYPED_DSET |
87 | dbRecStd_SRCS += devMbbiSoftCallback.c |
88 | +devSiSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
89 | dbRecStd_SRCS += devSiSoftCallback.c |
90 | |
91 | +devAoSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
92 | dbRecStd_SRCS += devAoSoftCallback.c |
93 | +devBoSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
94 | dbRecStd_SRCS += devBoSoftCallback.c |
95 | +devCalcoutSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
96 | dbRecStd_SRCS += devCalcoutSoftCallback.c |
97 | devI64outSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
98 | dbRecStd_SRCS += devI64outSoftCallback.c |
99 | +devLoSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
100 | dbRecStd_SRCS += devLoSoftCallback.c |
101 | devLsoSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
102 | dbRecStd_SRCS += devLsoSoftCallback.c |
103 | +devMbboSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
104 | dbRecStd_SRCS += devMbboSoftCallback.c |
105 | +devMbboDirectSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
106 | dbRecStd_SRCS += devMbboDirectSoftCallback.c |
107 | devPrintfSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
108 | dbRecStd_SRCS += devPrintfSoftCallback.c |
109 | +devSoSoftCallback_CFLAGS += -DUSE_TYPED_DSET |
110 | dbRecStd_SRCS += devSoSoftCallback.c |
111 | |
112 | devGeneralTime_CFLAGS += -DUSE_TYPED_DSET |
113 | diff --git a/modules/database/src/std/dev/devAaiSoft.c b/modules/database/src/std/dev/devAaiSoft.c |
114 | index cb4aa02..1f57656 100644 |
115 | --- a/modules/database/src/std/dev/devAaiSoft.c |
116 | +++ b/modules/database/src/std/dev/devAaiSoft.c |
117 | @@ -32,28 +32,18 @@ |
118 | #include "epicsExport.h" |
119 | |
120 | /* Create the dset for devAaiSoft */ |
121 | -static long init_record(); |
122 | -static long read_aai(); |
123 | - |
124 | -struct { |
125 | - long number; |
126 | - DEVSUPFUN report; |
127 | - DEVSUPFUN init; |
128 | - DEVSUPFUN init_record; |
129 | - DEVSUPFUN get_ioint_info; |
130 | - DEVSUPFUN read_aai; |
131 | -} devAaiSoft = { |
132 | - 5, |
133 | - NULL, |
134 | - NULL, |
135 | - init_record, |
136 | - NULL, |
137 | +static long init_record(dbCommon *pcommon); |
138 | +static long read_aai(aaiRecord *prec); |
139 | + |
140 | +aaidset devAaiSoft = { |
141 | + {5, NULL, NULL, init_record, NULL}, |
142 | read_aai |
143 | }; |
144 | -epicsExportAddress(dset,devAaiSoft); |
145 | +epicsExportAddress(dset, devAaiSoft); |
146 | |
147 | -static long init_record(aaiRecord *prec) |
148 | +static long init_record(dbCommon *pcommon) |
149 | { |
150 | + aaiRecord *prec = (aaiRecord *)pcommon; |
151 | DBLINK *plink = &prec->inp; |
152 | |
153 | /* This is pass 0, link hasn't been initialized yet */ |
154 | diff --git a/modules/database/src/std/dev/devAaoSoft.c b/modules/database/src/std/dev/devAaoSoft.c |
155 | index 3331ec1..98a84cd 100644 |
156 | --- a/modules/database/src/std/dev/devAaoSoft.c |
157 | +++ b/modules/database/src/std/dev/devAaoSoft.c |
158 | @@ -30,28 +30,19 @@ |
159 | #include "epicsExport.h" |
160 | |
161 | /* Create the dset for devAaoSoft */ |
162 | -static long init_record(); |
163 | -static long write_aao(); |
164 | +static long init_record(dbCommon *pcommon); |
165 | +static long write_aao(aaoRecord *prec); |
166 | |
167 | -struct { |
168 | - long number; |
169 | - DEVSUPFUN report; |
170 | - DEVSUPFUN init; |
171 | - DEVSUPFUN init_record; |
172 | - DEVSUPFUN get_ioint_info; |
173 | - DEVSUPFUN read_aao; |
174 | -} devAaoSoft = { |
175 | - 5, |
176 | - NULL, |
177 | - NULL, |
178 | - init_record, |
179 | - NULL, |
180 | +aaodset devAaoSoft = { |
181 | + {5, NULL, NULL, init_record, NULL}, |
182 | write_aao |
183 | }; |
184 | -epicsExportAddress(dset,devAaoSoft); |
185 | +epicsExportAddress(dset, devAaoSoft); |
186 | |
187 | -static long init_record(aaoRecord *prec) |
188 | +static long init_record(dbCommon *pcommon) |
189 | { |
190 | + aaoRecord *prec = (aaoRecord *)pcommon; |
191 | + |
192 | if (dbLinkIsConstant(&prec->out)) { |
193 | prec->nord = 0; |
194 | } |
195 | diff --git a/modules/database/src/std/dev/devAoSoft.c b/modules/database/src/std/dev/devAoSoft.c |
196 | index 56bd056..8772cde 100644 |
197 | --- a/modules/database/src/std/dev/devAoSoft.c |
198 | +++ b/modules/database/src/std/dev/devAoSoft.c |
199 | @@ -31,31 +31,17 @@ |
200 | #include "aoRecord.h" |
201 | #include "epicsExport.h" |
202 | |
203 | -/* added for Channel Access Links */ |
204 | -static long init_record(aoRecord *prec); |
205 | - |
206 | /* Create the dset for devAoSoft */ |
207 | +static long init_record(dbCommon *pcommon); |
208 | static long write_ao(aoRecord *prec); |
209 | -struct { |
210 | - long number; |
211 | - DEVSUPFUN report; |
212 | - DEVSUPFUN init; |
213 | - DEVSUPFUN init_record; |
214 | - DEVSUPFUN get_ioint_info; |
215 | - DEVSUPFUN write_ao; |
216 | - DEVSUPFUN special_linconv; |
217 | -}devAoSoft={ |
218 | - 6, |
219 | - NULL, |
220 | - NULL, |
221 | - init_record, |
222 | - NULL, |
223 | - write_ao, |
224 | - NULL}; |
225 | -epicsExportAddress(dset,devAoSoft); |
226 | - |
227 | |
228 | |
229 | -static long init_record(aoRecord *prec) |
230 | +aodset devAoSoft = { |
231 | + {6, NULL, NULL, init_record, NULL}, |
232 | + write_ao, NULL |
233 | +}; |
234 | +epicsExportAddress(dset, devAoSoft); |
235 | + |
236 | +static long init_record(dbCommon *pcommon) |
237 | { |
238 | |
239 | long status=0; |
240 | diff --git a/modules/database/src/std/dev/devAoSoftCallback.c b/modules/database/src/std/dev/devAoSoftCallback.c |
241 | index c1fb72f..5144c77 100644 |
242 | --- a/modules/database/src/std/dev/devAoSoftCallback.c |
243 | +++ b/modules/database/src/std/dev/devAoSoftCallback.c |
244 | @@ -31,23 +31,12 @@ |
245 | |
246 | /* Create the dset for devAoSoftCallback */ |
247 | static long write_ao(aoRecord *prec); |
248 | -struct { |
249 | - long number; |
250 | - DEVSUPFUN report; |
251 | - DEVSUPFUN init; |
252 | - DEVSUPFUN init_record; |
253 | - DEVSUPFUN get_ioint_info; |
254 | - DEVSUPFUN write_ao; |
255 | - DEVSUPFUN special_linconv; |
256 | -}devAoSoftCallback={ |
257 | - 6, |
258 | - NULL, |
259 | - NULL, |
260 | - NULL, |
261 | - NULL, |
262 | - write_ao, |
263 | - NULL}; |
264 | -epicsExportAddress(dset,devAoSoftCallback); |
265 | + |
266 | +aodset devAoSoftCallback = { |
267 | + {6, NULL, NULL, NULL, NULL}, |
268 | + write_ao, NULL |
269 | +}; |
270 | +epicsExportAddress(dset, devAoSoftCallback); |
271 | |
272 | static long write_ao(aoRecord *prec) |
273 | { |
274 | diff --git a/modules/database/src/std/dev/devAoSoftRaw.c b/modules/database/src/std/dev/devAoSoftRaw.c |
275 | index 05aed03..bb2ae7d 100644 |
276 | --- a/modules/database/src/std/dev/devAoSoftRaw.c |
277 | +++ b/modules/database/src/std/dev/devAoSoftRaw.c |
278 | @@ -33,25 +33,13 @@ |
279 | |
280 | /* Create the dset for devAoSoftRaw */ |
281 | static long write_ao(aoRecord *prec); |
282 | -struct { |
283 | - long number; |
284 | - DEVSUPFUN report; |
285 | - DEVSUPFUN init; |
286 | - DEVSUPFUN init_record; |
287 | - DEVSUPFUN get_ioint_info; |
288 | - DEVSUPFUN write_ao; |
289 | - DEVSUPFUN special_linconv; |
290 | -}devAoSoftRaw={ |
291 | - 6, |
292 | - NULL, |
293 | - NULL, |
294 | - NULL, |
295 | - NULL, |
296 | - write_ao, |
297 | - NULL |
298 | + |
299 | +aodset devAoSoftRaw = { |
300 | + {6, NULL, NULL, NULL, NULL}, |
301 | + write_ao, NULL |
302 | }; |
303 | -epicsExportAddress(dset,devAoSoftRaw); |
304 | - |
305 | |
306 | +epicsExportAddress(dset, devAoSoftRaw); |
307 | + |
308 | static long write_ao(aoRecord *prec) |
309 | { |
310 | long status; |
311 | diff --git a/modules/database/src/std/dev/devBiDbState.c b/modules/database/src/std/dev/devBiDbState.c |
312 | index fcb6c8f..373270a 100644 |
313 | --- a/modules/database/src/std/dev/devBiDbState.c |
314 | +++ b/modules/database/src/std/dev/devBiDbState.c |
315 | @@ -69,20 +69,9 @@ static long read_bi(biRecord *prec) |
316 | return 2; |
317 | } |
318 | |
319 | -static struct { |
320 | - long number; |
321 | - DEVSUPFUN report; |
322 | - DEVSUPFUN init; |
323 | - DEVSUPFUN init_record; |
324 | - DEVSUPFUN get_ioint_info; |
325 | - DEVSUPFUN read_bi; |
326 | -} devBiDbState = { |
327 | - 5, |
328 | - NULL, |
329 | - init, |
330 | - NULL, |
331 | - NULL, |
332 | - read_bi |
333 | +/* Create the dset for devBiDbState */ |
334 | +bidset devBiDbState = { |
335 | + {5, NULL, init, NULL, NULL}, |
336 | + read_bi |
337 | }; |
338 | - |
339 | epicsExportAddress(dset, devBiDbState); |
340 | diff --git a/modules/database/src/std/dev/devBiSoft.c b/modules/database/src/std/dev/devBiSoft.c |
341 | index 12640ad..41a308a 100644 |
342 | --- a/modules/database/src/std/dev/devBiSoft.c |
343 | +++ b/modules/database/src/std/dev/devBiSoft.c |
344 | @@ -25,28 +25,19 @@ |
345 | #include "epicsExport.h" |
346 | |
347 | /* Create the dset for devBiSoft */ |
348 | -static long init_record(biRecord *prec); |
349 | +static long init_record(dbCommon *pcommon); |
350 | static long read_bi(biRecord *prec); |
351 | |
352 | -struct { |
353 | - long number; |
354 | - DEVSUPFUN report; |
355 | - DEVSUPFUN init; |
356 | - DEVSUPFUN init_record; |
357 | - DEVSUPFUN get_ioint_info; |
358 | - DEVSUPFUN read_bi; |
359 | -} devBiSoft = { |
360 | - 5, |
361 | - NULL, |
362 | - NULL, |
363 | - init_record, |
364 | - NULL, |
365 | +bidset devBiSoft = { |
366 | + {5, NULL, NULL, init_record, NULL}, |
367 | read_bi |
368 | }; |
369 | epicsExportAddress(dset, devBiSoft); |
370 | |
371 | -static long init_record(biRecord *prec) |
372 | +static long init_record(dbCommon *pcommon) |
373 | { |
374 | + biRecord *prec = (biRecord *)pcommon; |
375 | + |
376 | if (recGblInitConstantLink(&prec->inp, DBF_ENUM, &prec->val)) |
377 | prec->udf = FALSE; |
378 | return 0; |
379 | diff --git a/modules/database/src/std/dev/devBiSoftCallback.c b/modules/database/src/std/dev/devBiSoftCallback.c |
380 | index 607b1af..0610071 100644 |
381 | --- a/modules/database/src/std/dev/devBiSoftCallback.c |
382 | +++ b/modules/database/src/std/dev/devBiSoftCallback.c |
383 | @@ -151,8 +151,10 @@ static long init(int pass) |
384 | return 0; |
385 | } |
386 | |
387 | -static long init_record(biRecord *prec) |
388 | +static long init_record(dbCommon *pcommon) |
389 | { |
390 | + biRecord *prec = (biRecord *)pcommon; |
391 | + |
392 | if (recGblInitConstantLink(&prec->inp, DBR_ENUM, &prec->val)) |
393 | prec->udf = FALSE; |
394 | |
395 | @@ -204,10 +206,7 @@ static long read_bi(biRecord *prec) |
396 | } |
397 | |
398 | /* Create the dset for devBiSoftCallback */ |
399 | -struct { |
400 | - dset common; |
401 | - DEVSUPFUN read_bi; |
402 | -} devBiSoftCallback = { |
403 | +bidset devBiSoftCallback = { |
404 | {5, NULL, init, init_record, NULL}, |
405 | read_bi |
406 | }; |
407 | diff --git a/modules/database/src/std/dev/devBiSoftRaw.c b/modules/database/src/std/dev/devBiSoftRaw.c |
408 | index a71bf89..90fbcbb 100644 |
409 | --- a/modules/database/src/std/dev/devBiSoftRaw.c |
410 | +++ b/modules/database/src/std/dev/devBiSoftRaw.c |
411 | @@ -25,28 +25,19 @@ |
412 | #include "epicsExport.h" |
413 | |
414 | /* Create the dset for devBiSoftRaw */ |
415 | -static long init_record(biRecord *prec); |
416 | +static long init_record(dbCommon *pcommon); |
417 | static long read_bi(biRecord *prec); |
418 | |
419 | -struct { |
420 | - long number; |
421 | - DEVSUPFUN report; |
422 | - DEVSUPFUN init; |
423 | - DEVSUPFUN init_record; |
424 | - DEVSUPFUN get_ioint_info; |
425 | - DEVSUPFUN read_bi; |
426 | -} devBiSoftRaw = { |
427 | - 5, |
428 | - NULL, |
429 | - NULL, |
430 | - init_record, |
431 | - NULL, |
432 | +bidset devBiSoftRaw = { |
433 | + {5, NULL, NULL, init_record, NULL}, |
434 | read_bi |
435 | }; |
436 | epicsExportAddress(dset, devBiSoftRaw); |
437 | |
438 | -static long init_record(biRecord *prec) |
439 | +static long init_record(dbCommon *pcommon) |
440 | { |
441 | + biRecord *prec = (biRecord *)pcommon; |
442 | + |
443 | recGblInitConstantLink(&prec->inp, DBF_ULONG, &prec->rval); |
444 | |
445 | return 0; |
446 | diff --git a/modules/database/src/std/dev/devBoDbState.c b/modules/database/src/std/dev/devBoDbState.c |
447 | index 26e97ae..f9a7606 100644 |
448 | --- a/modules/database/src/std/dev/devBoDbState.c |
449 | +++ b/modules/database/src/std/dev/devBoDbState.c |
450 | @@ -67,20 +67,9 @@ static long write_bo(boRecord *prec) |
451 | return 0; |
452 | } |
453 | |
454 | -static struct { |
455 | - long number; |
456 | - DEVSUPFUN report; |
457 | - DEVSUPFUN init; |
458 | - DEVSUPFUN init_record; |
459 | - DEVSUPFUN get_ioint_info; |
460 | - DEVSUPFUN write_bo; |
461 | -} devBoDbState = { |
462 | - 5, |
463 | - NULL, |
464 | - init, |
465 | - NULL, |
466 | - NULL, |
467 | - write_bo |
468 | +/* Create the dset for devBoDbState */ |
469 | +bodset devBoDbState = { |
470 | + {5, NULL, init, NULL, NULL}, |
471 | + write_bo |
472 | }; |
473 | - |
474 | epicsExportAddress(dset, devBoDbState); |
475 | diff --git a/modules/database/src/std/dev/devBoSoft.c b/modules/database/src/std/dev/devBoSoft.c |
476 | index ba6ff14..80ca61b 100644 |
477 | --- a/modules/database/src/std/dev/devBoSoft.c |
478 | +++ b/modules/database/src/std/dev/devBoSoft.c |
479 | @@ -29,31 +29,19 @@ |
480 | #include "boRecord.h" |
481 | #include "epicsExport.h" |
482 | |
483 | -static long init_record(boRecord *prec); |
484 | - |
485 | /* Create the dset for devBoSoft */ |
486 | +static long init_record(dbCommon *pcommon); |
487 | static long write_bo(boRecord *prec); |
488 | |
489 | -struct { |
490 | - long number; |
491 | - DEVSUPFUN report; |
492 | - DEVSUPFUN init; |
493 | - DEVSUPFUN init_record; |
494 | - DEVSUPFUN get_ioint_info; |
495 | - DEVSUPFUN write_bo; |
496 | -}devBoSoft={ |
497 | - 5, |
498 | - NULL, |
499 | - NULL, |
500 | - init_record, |
501 | - NULL, |
502 | - write_bo |
503 | +bodset devBoSoft = { |
504 | + {5, NULL, NULL, init_record, NULL}, |
505 | + write_bo |
506 | }; |
507 | -epicsExportAddress(dset,devBoSoft); |
508 | - |
509 | |
510 | -static long init_record(boRecord *prec) |
511 | +epicsExportAddress(dset, devBoSoft); |
512 | + |
513 | +static long init_record(dbCommon *pcommon) |
514 | { |
515 | - |
516 | + boRecord *prec = (boRecord *)pcommon; |
517 | long status=0; |
518 | |
519 | /* dont convert */ |
520 | diff --git a/modules/database/src/std/dev/devBoSoftCallback.c b/modules/database/src/std/dev/devBoSoftCallback.c |
521 | index ffb68e5..9373558 100644 |
522 | --- a/modules/database/src/std/dev/devBoSoftCallback.c |
523 | +++ b/modules/database/src/std/dev/devBoSoftCallback.c |
524 | @@ -31,22 +31,11 @@ |
525 | /* Create the dset for devBoCallbackSoft */ |
526 | static long write_bo(boRecord *prec); |
527 | |
528 | -struct { |
529 | - long number; |
530 | - DEVSUPFUN report; |
531 | - DEVSUPFUN init; |
532 | - DEVSUPFUN init_record; |
533 | - DEVSUPFUN get_ioint_info; |
534 | - DEVSUPFUN write_bo; |
535 | -}devBoSoftCallback={ |
536 | - 5, |
537 | - NULL, |
538 | - NULL, |
539 | - NULL, |
540 | - NULL, |
541 | - write_bo |
542 | +bodset devBoSoftCallback = { |
543 | + {5, NULL, NULL, NULL, NULL}, |
544 | + write_bo |
545 | }; |
546 | -epicsExportAddress(dset,devBoSoftCallback); |
547 | +epicsExportAddress(dset, devBoSoftCallback); |
548 | |
549 | static long write_bo(boRecord *prec) |
550 | { |
551 | @@ -64,4 +53,3 @@ static long write_bo(boRecord *prec) |
552 | |
553 | return status; |
554 | } |
555 | - |
556 | diff --git a/modules/database/src/std/dev/devBoSoftRaw.c b/modules/database/src/std/dev/devBoSoftRaw.c |
557 | index df1ba5b..b0bd854 100644 |
558 | --- a/modules/database/src/std/dev/devBoSoftRaw.c |
559 | +++ b/modules/database/src/std/dev/devBoSoftRaw.c |
560 | @@ -28,30 +28,17 @@ |
561 | #include "boRecord.h" |
562 | #include "epicsExport.h" |
563 | |
564 | -/* added for Channel Access Links */ |
565 | -static long init_record(boRecord *prec); |
566 | - |
567 | /* Create the dset for devBoSoftRaw */ |
568 | +static long init_record(dbCommon *pcommon); |
569 | static long write_bo(boRecord *prec); |
570 | |
571 | -struct { |
572 | - long number; |
573 | - DEVSUPFUN report; |
574 | - DEVSUPFUN init; |
575 | - DEVSUPFUN init_record; |
576 | - DEVSUPFUN get_ioint_info; |
577 | - DEVSUPFUN write_bo; |
578 | -}devBoSoftRaw={ |
579 | - 5, |
580 | - NULL, |
581 | - NULL, |
582 | - init_record, |
583 | - NULL, |
584 | - write_bo |
585 | +bodset devBoSoftRaw = { |
586 | + {5, NULL, NULL, init_record, NULL}, |
587 | + write_bo |
588 | }; |
589 | -epicsExportAddress(dset,devBoSoftRaw); |
590 | - |
591 | |
592 | -static long init_record(boRecord *prec) |
593 | +epicsExportAddress(dset, devBoSoftRaw); |
594 | + |
595 | +static long init_record(dbCommon *pcommon) |
596 | { |
597 | long status; |
598 | |
599 | diff --git a/modules/database/src/std/dev/devCalcoutSoft.c b/modules/database/src/std/dev/devCalcoutSoft.c |
600 | index f931e6a..52ee11b 100644 |
601 | --- a/modules/database/src/std/dev/devCalcoutSoft.c |
602 | +++ b/modules/database/src/std/dev/devCalcoutSoft.c |
603 | @@ -31,15 +31,9 @@ |
604 | |
605 | static long write_calcout(calcoutRecord *prec); |
606 | |
607 | -struct { |
608 | - long number; |
609 | - DEVSUPFUN report; |
610 | - DEVSUPFUN init; |
611 | - DEVSUPFUN init_record; |
612 | - DEVSUPFUN get_ioint_info; |
613 | - DEVSUPFUN write; |
614 | -} devCalcoutSoft = { |
615 | - 5, NULL, NULL, NULL, NULL, write_calcout |
616 | +calcoutdset devCalcoutSoft = { |
617 | + {5, NULL, NULL, NULL, NULL}, |
618 | + write_calcout |
619 | }; |
620 | epicsExportAddress(dset, devCalcoutSoft); |
621 | |
622 | diff --git a/modules/database/src/std/dev/devCalcoutSoftCallback.c b/modules/database/src/std/dev/devCalcoutSoftCallback.c |
623 | index 94f9d4f..3d357b8 100644 |
624 | --- a/modules/database/src/std/dev/devCalcoutSoftCallback.c |
625 | +++ b/modules/database/src/std/dev/devCalcoutSoftCallback.c |
626 | @@ -31,15 +31,9 @@ |
627 | |
628 | static long write_calcout(calcoutRecord *prec); |
629 | |
630 | -struct { |
631 | - long number; |
632 | - DEVSUPFUN report; |
633 | - DEVSUPFUN init; |
634 | - DEVSUPFUN init_record; |
635 | - DEVSUPFUN get_ioint_info; |
636 | - DEVSUPFUN write; |
637 | -} devCalcoutSoftCallback = { |
638 | - 5, NULL, NULL, NULL, NULL, write_calcout |
639 | +calcoutdset devCalcoutSoftCallback = { |
640 | + {5, NULL, NULL, NULL, NULL}, |
641 | + write_calcout |
642 | }; |
643 | epicsExportAddress(dset, devCalcoutSoftCallback); |
644 | |
645 | diff --git a/modules/database/src/std/dev/devEnviron.c b/modules/database/src/std/dev/devEnviron.c |
646 | index 69c9a3d..8e4bd79 100644 |
647 | --- a/modules/database/src/std/dev/devEnviron.c |
648 | +++ b/modules/database/src/std/dev/devEnviron.c |
649 | @@ -119,10 +119,8 @@ static long read_stringin(stringinRecord *prec) |
650 | return 0; |
651 | } |
652 | |
653 | -static struct { |
654 | - dset common; |
655 | - DEVSUPFUN read; |
656 | -} devSiEnviron = { |
657 | - {5, NULL, init_stringin, NULL, NULL}, read_stringin |
658 | +stringindset devSiEnviron = { |
659 | + {5, NULL, init_stringin, NULL, NULL}, |
660 | + read_stringin |
661 | }; |
662 | epicsExportAddress(dset, devSiEnviron); |
663 | diff --git a/modules/database/src/std/dev/devEventSoft.c b/modules/database/src/std/dev/devEventSoft.c |
664 | index a748dda..4020c91 100644 |
665 | --- a/modules/database/src/std/dev/devEventSoft.c |
666 | +++ b/modules/database/src/std/dev/devEventSoft.c |
667 | @@ -25,28 +25,19 @@ |
668 | #include "epicsExport.h" |
669 | |
670 | /* Create the dset for devEventSoft */ |
671 | -static long init_record(eventRecord *prec); |
672 | +static long init_record(dbCommon *pcommon); |
673 | static long read_event(eventRecord *prec); |
674 | |
675 | -struct { |
676 | - long number; |
677 | - DEVSUPFUN report; |
678 | - DEVSUPFUN init; |
679 | - DEVSUPFUN init_record; |
680 | - DEVSUPFUN get_ioint_info; |
681 | - DEVSUPFUN read_event; |
682 | -} devEventSoft = { |
683 | - 5, |
684 | - NULL, |
685 | - NULL, |
686 | - init_record, |
687 | - NULL, |
688 | +eventdset devEventSoft = { |
689 | + {5, NULL, NULL, init_record, NULL}, |
690 | read_event |
691 | }; |
692 | epicsExportAddress(dset, devEventSoft); |
693 | |
694 | -static long init_record(eventRecord *prec) |
695 | +static long init_record(dbCommon *pcommon) |
696 | { |
697 | + eventRecord *prec = (eventRecord *)pcommon; |
698 | + |
699 | if (recGblInitConstantLink(&prec->inp, DBF_STRING, prec->val)) |
700 | prec->udf = FALSE; |
701 | |
702 | diff --git a/modules/database/src/std/dev/devGeneralTime.c b/modules/database/src/std/dev/devGeneralTime.c |
703 | index c424fb7..f032751 100644 |
704 | --- a/modules/database/src/std/dev/devGeneralTime.c |
705 | +++ b/modules/database/src/std/dev/devGeneralTime.c |
706 | @@ -150,15 +150,14 @@ static long write_bo(boRecord *prec) |
707 | return 0; |
708 | } |
709 | |
710 | -struct { |
711 | - dset common; |
712 | - DEVSUPFUN read_write; |
713 | -} devBoGeneralTime = { |
714 | - {5, NULL, NULL, init_bo, NULL}, write_bo |
715 | +bodset devBoGeneralTime = { |
716 | + {5, NULL, NULL, init_bo, NULL}, |
717 | + write_bo |
718 | }; |
719 | epicsExportAddress(dset, devBoGeneralTime); |
720 | |
721 | |
722 | + |
723 | /******* longin record *************/ |
724 | static int errorCount(void) |
725 | { |
726 | @@ -209,11 +208,9 @@ static long read_li(longinRecord *prec) |
727 | return 0; |
728 | } |
729 | |
730 | -struct { |
731 | - dset common; |
732 | - DEVSUPFUN read_write; |
733 | -} devLiGeneralTime = { |
734 | - {5, NULL, NULL, init_li, NULL}, read_li |
735 | +longindset devLiGeneralTime = { |
736 | + {5, NULL, NULL, init_li, NULL}, |
737 | + read_li |
738 | }; |
739 | epicsExportAddress(dset, devLiGeneralTime); |
740 | |
741 | @@ -289,10 +286,8 @@ static long read_si(stringinRecord *prec) |
742 | return 0; |
743 | } |
744 | |
745 | -struct { |
746 | - dset common; |
747 | - DEVSUPFUN read_write; |
748 | -} devSiGeneralTime = { |
749 | - {5, NULL, NULL, init_si, NULL}, read_si |
750 | +stringindset devSiGeneralTime = { |
751 | + {5, NULL, NULL, init_si, NULL}, |
752 | + read_si |
753 | }; |
754 | epicsExportAddress(dset, devSiGeneralTime); |
755 | diff --git a/modules/database/src/std/dev/devHistogramSoft.c b/modules/database/src/std/dev/devHistogramSoft.c |
756 | index 3b46b5d..a410fef 100644 |
757 | --- a/modules/database/src/std/dev/devHistogramSoft.c |
758 | +++ b/modules/database/src/std/dev/devHistogramSoft.c |
759 | @@ -28,29 +28,19 @@ |
760 | #include "epicsExport.h" |
761 | |
762 | /* Create the dset for devHistogramSoft */ |
763 | -static long init_record(histogramRecord *prec); |
764 | +static long init_record(dbCommon *pcommon); |
765 | static long read_histogram(histogramRecord *prec); |
766 | -struct { |
767 | - long number; |
768 | - DEVSUPFUN report; |
769 | - DEVSUPFUN init; |
770 | - DEVSUPFUN init_record; |
771 | - DEVSUPFUN get_ioint_info; |
772 | - DEVSUPFUN read_histogram; |
773 | - DEVSUPFUN special_linconv; |
774 | -}devHistogramSoft={ |
775 | - 6, |
776 | - NULL, |
777 | - NULL, |
778 | - init_record, |
779 | - NULL, |
780 | - read_histogram, |
781 | - NULL |
782 | + |
783 | +histogramdset devHistogramSoft = { |
784 | + {6, NULL, NULL, init_record, NULL}, |
785 | + read_histogram, NULL |
786 | }; |
787 | -epicsExportAddress(dset,devHistogramSoft); |
788 | - |
789 | |
790 | -static long init_record(histogramRecord *prec) |
791 | +epicsExportAddress(dset, devHistogramSoft); |
792 | + |
793 | +static long init_record(dbCommon *pcommon) |
794 | { |
795 | + histogramRecord *prec = (histogramRecord *)pcommon; |
796 | + |
797 | if (recGblInitConstantLink(&prec->svl,DBF_DOUBLE,&prec->sgnl)) |
798 | prec->udf = FALSE; |
799 | |
800 | diff --git a/modules/database/src/std/dev/devLiSoft.c b/modules/database/src/std/dev/devLiSoft.c |
801 | index 6d7b7fd..4c9912b 100644 |
802 | --- a/modules/database/src/std/dev/devLiSoft.c |
803 | +++ b/modules/database/src/std/dev/devLiSoft.c |
804 | @@ -25,28 +25,19 @@ |
805 | #include "epicsExport.h" |
806 | |
807 | /* Create the dset for devLiSoft */ |
808 | -static long init_record(longinRecord *prec); |
809 | +static long init_record(dbCommon *pcommon); |
810 | static long read_longin(longinRecord *prec); |
811 | |
812 | -struct { |
813 | - long number; |
814 | - DEVSUPFUN report; |
815 | - DEVSUPFUN init; |
816 | - DEVSUPFUN init_record; |
817 | - DEVSUPFUN get_ioint_info; |
818 | - DEVSUPFUN read_longin; |
819 | -} devLiSoft = { |
820 | - 5, |
821 | - NULL, |
822 | - NULL, |
823 | - init_record, |
824 | - NULL, |
825 | +longindset devLiSoft = { |
826 | + {5, NULL, NULL, init_record, NULL}, |
827 | read_longin |
828 | }; |
829 | epicsExportAddress(dset, devLiSoft); |
830 | |
831 | -static long init_record(longinRecord *prec) |
832 | +static long init_record(dbCommon *pcommon) |
833 | { |
834 | + longinRecord *prec = (longinRecord *)pcommon; |
835 | + |
836 | if (recGblInitConstantLink(&prec->inp, DBF_LONG, &prec->val)) |
837 | prec->udf = FALSE; |
838 | |
839 | diff --git a/modules/database/src/std/dev/devLiSoftCallback.c b/modules/database/src/std/dev/devLiSoftCallback.c |
840 | index d833939..b7f7cee 100644 |
841 | --- a/modules/database/src/std/dev/devLiSoftCallback.c |
842 | +++ b/modules/database/src/std/dev/devLiSoftCallback.c |
843 | @@ -151,8 +151,10 @@ static long init(int pass) |
844 | return 0; |
845 | } |
846 | |
847 | -static long init_record(longinRecord *prec) |
848 | +static long init_record(dbCommon *pcommon) |
849 | { |
850 | + longinRecord *prec = (longinRecord *)pcommon; |
851 | + |
852 | if (recGblInitConstantLink(&prec->inp, DBR_LONG, &prec->val)) |
853 | prec->udf = FALSE; |
854 | |
855 | @@ -204,10 +206,7 @@ static long read_li(longinRecord *prec) |
856 | } |
857 | |
858 | /* Create the dset for devLiSoftCallback */ |
859 | -struct { |
860 | - dset common; |
861 | - DEVSUPFUN read_li; |
862 | -} devLiSoftCallback = { |
863 | +longindset devLiSoftCallback = { |
864 | {5, NULL, init, init_record, NULL}, |
865 | read_li |
866 | }; |
867 | diff --git a/modules/database/src/std/dev/devLoSoft.c b/modules/database/src/std/dev/devLoSoft.c |
868 | index af49c60..c9b8fe3 100644 |
869 | --- a/modules/database/src/std/dev/devLoSoft.c |
870 | +++ b/modules/database/src/std/dev/devLoSoft.c |
871 | @@ -26,26 +26,16 @@ |
872 | #include "epicsExport.h" |
873 | |
874 | /* Create the dset for devLoSoft */ |
875 | -static long init_record(longoutRecord *prec); |
876 | +static long init_record(dbCommon *pcommon); |
877 | static long write_longout(longoutRecord *prec); |
878 | -struct { |
879 | - long number; |
880 | - DEVSUPFUN report; |
881 | - DEVSUPFUN init; |
882 | - DEVSUPFUN init_record; |
883 | - DEVSUPFUN get_ioint_info; |
884 | - DEVSUPFUN write_longout; |
885 | -}devLoSoft={ |
886 | - 5, |
887 | - NULL, |
888 | - NULL, |
889 | - init_record, |
890 | - NULL, |
891 | - write_longout |
892 | + |
893 | +longoutdset devLoSoft = { |
894 | + {5, NULL, NULL, init_record, NULL}, |
895 | + write_longout |
896 | }; |
897 | -epicsExportAddress(dset,devLoSoft); |
898 | - |
899 | |
900 | -static long init_record(longoutRecord *prec) |
901 | +epicsExportAddress(dset, devLoSoft); |
902 | + |
903 | +static long init_record(dbCommon *pcommon) |
904 | { |
905 | return 0; |
906 | } /* end init_record() */ |
907 | diff --git a/modules/database/src/std/dev/devLoSoftCallback.c b/modules/database/src/std/dev/devLoSoftCallback.c |
908 | index f211957..3883e19 100644 |
909 | --- a/modules/database/src/std/dev/devLoSoftCallback.c |
910 | +++ b/modules/database/src/std/dev/devLoSoftCallback.c |
911 | @@ -29,22 +29,12 @@ |
912 | |
913 | /* Create the dset for devLoSoftCallback */ |
914 | static long write_longout(longoutRecord *prec); |
915 | -struct { |
916 | - long number; |
917 | - DEVSUPFUN report; |
918 | - DEVSUPFUN init; |
919 | - DEVSUPFUN init_record; |
920 | - DEVSUPFUN get_ioint_info; |
921 | - DEVSUPFUN write_longout; |
922 | -}devLoSoftCallback={ |
923 | - 5, |
924 | - NULL, |
925 | - NULL, |
926 | - NULL, |
927 | - NULL, |
928 | - write_longout |
929 | + |
930 | +longoutdset devLoSoftCallback = { |
931 | + {5, NULL, NULL, NULL, NULL}, |
932 | + write_longout |
933 | }; |
934 | -epicsExportAddress(dset,devLoSoftCallback); |
935 | +epicsExportAddress(dset, devLoSoftCallback); |
936 | |
937 | static long write_longout(longoutRecord *prec) |
938 | { |
939 | @@ -62,4 +52,3 @@ static long write_longout(longoutRecord *prec) |
940 | |
941 | return status; |
942 | } |
943 | - |
944 | diff --git a/modules/database/src/std/dev/devMbbiDirectSoft.c b/modules/database/src/std/dev/devMbbiDirectSoft.c |
945 | index 861952f..2138500 100644 |
946 | --- a/modules/database/src/std/dev/devMbbiDirectSoft.c |
947 | +++ b/modules/database/src/std/dev/devMbbiDirectSoft.c |
948 | @@ -25,28 +25,19 @@ |
949 | #include "epicsExport.h" |
950 | |
951 | /* Create the dset for devMbbiDirectSoft */ |
952 | -static long init_record(mbbiDirectRecord *prec); |
953 | +static long init_record(dbCommon *pcommon); |
954 | static long read_mbbi(mbbiDirectRecord *prec); |
955 | |
956 | -struct { |
957 | - long number; |
958 | - DEVSUPFUN report; |
959 | - DEVSUPFUN init; |
960 | - DEVSUPFUN init_record; |
961 | - DEVSUPFUN get_ioint_info; |
962 | - DEVSUPFUN read_mbbi; |
963 | -} devMbbiDirectSoft = { |
964 | - 5, |
965 | - NULL, |
966 | - NULL, |
967 | - init_record, |
968 | - NULL, |
969 | +mbbidirectdset devMbbiDirectSoft = { |
970 | + {5, NULL, NULL, init_record, NULL}, |
971 | read_mbbi |
972 | }; |
973 | epicsExportAddress(dset, devMbbiDirectSoft); |
974 | |
975 | -static long init_record(mbbiDirectRecord *prec) |
976 | +static long init_record(dbCommon *pcommon) |
977 | { |
978 | + mbbiDirectRecord *prec = (mbbiDirectRecord *)pcommon; |
979 | + |
980 | if (recGblInitConstantLink(&prec->inp, DBR_ULONG, &prec->val)) |
981 | prec->udf = FALSE; |
982 | |
983 | diff --git a/modules/database/src/std/dev/devMbbiDirectSoftCallback.c b/modules/database/src/std/dev/devMbbiDirectSoftCallback.c |
984 | index e40a6b0..7c9850b 100644 |
985 | --- a/modules/database/src/std/dev/devMbbiDirectSoftCallback.c |
986 | +++ b/modules/database/src/std/dev/devMbbiDirectSoftCallback.c |
987 | @@ -151,8 +151,10 @@ static long init(int pass) |
988 | return 0; |
989 | } |
990 | |
991 | -static long init_record(mbbiDirectRecord *prec) |
992 | +static long init_record(dbCommon *pcommon) |
993 | { |
994 | + mbbiDirectRecord *prec = (mbbiDirectRecord *)pcommon; |
995 | + |
996 | if (recGblInitConstantLink(&prec->inp, DBR_ULONG, &prec->val)) |
997 | prec->udf = FALSE; |
998 | |
999 | @@ -204,10 +206,7 @@ static long read_mbbiDirect(mbbiDirectRecord *prec) |
1000 | } |
1001 | |
1002 | /* Create the dset for devMbbiDirectSoftCallback */ |
1003 | -struct { |
1004 | - dset common; |
1005 | - DEVSUPFUN read_mbbiDirect; |
1006 | -} devMbbiDirectSoftCallback = { |
1007 | +mbbidirectdset devMbbiDirectSoftCallback = { |
1008 | {5, NULL, init, init_record, NULL}, |
1009 | read_mbbiDirect |
1010 | }; |
1011 | diff --git a/modules/database/src/std/dev/devMbbiDirectSoftRaw.c b/modules/database/src/std/dev/devMbbiDirectSoftRaw.c |
1012 | index 98b4673..0075686 100644 |
1013 | --- a/modules/database/src/std/dev/devMbbiDirectSoftRaw.c |
1014 | +++ b/modules/database/src/std/dev/devMbbiDirectSoftRaw.c |
1015 | @@ -25,28 +25,19 @@ |
1016 | #include "epicsExport.h" |
1017 | |
1018 | /* Create the dset for devMbbiDirectSoftRaw */ |
1019 | -static long init_record(mbbiDirectRecord *prec); |
1020 | +static long init_record(dbCommon *pcommon); |
1021 | static long read_mbbi(mbbiDirectRecord *prec); |
1022 | |
1023 | -struct { |
1024 | - long number; |
1025 | - DEVSUPFUN report; |
1026 | - DEVSUPFUN init; |
1027 | - DEVSUPFUN init_record; |
1028 | - DEVSUPFUN get_ioint_info; |
1029 | - DEVSUPFUN read_mbbi; |
1030 | -} devMbbiDirectSoftRaw = { |
1031 | - 5, |
1032 | - NULL, |
1033 | - NULL, |
1034 | - init_record, |
1035 | - NULL, |
1036 | +mbbidirectdset devMbbiDirectSoftRaw = { |
1037 | + {5, NULL, NULL, init_record, NULL}, |
1038 | read_mbbi |
1039 | }; |
1040 | epicsExportAddress(dset, devMbbiDirectSoftRaw); |
1041 | |
1042 | -static long init_record(mbbiDirectRecord *prec) |
1043 | +static long init_record(dbCommon *pcommon) |
1044 | { |
1045 | + mbbiDirectRecord *prec = (mbbiDirectRecord *)pcommon; |
1046 | + |
1047 | recGblInitConstantLink(&prec->inp, DBF_ULONG, &prec->rval); |
1048 | |
1049 | /* Preserve old functionality */ |
1050 | diff --git a/modules/database/src/std/dev/devMbbiSoft.c b/modules/database/src/std/dev/devMbbiSoft.c |
1051 | index b0b5714..d1e0716 100644 |
1052 | --- a/modules/database/src/std/dev/devMbbiSoft.c |
1053 | +++ b/modules/database/src/std/dev/devMbbiSoft.c |
1054 | @@ -25,28 +25,19 @@ |
1055 | #include "epicsExport.h" |
1056 | |
1057 | /* Create the dset for devMbbiSoft */ |
1058 | -static long init_record(mbbiRecord *prec); |
1059 | +static long init_record(dbCommon *pcommon); |
1060 | static long read_mbbi(mbbiRecord *prec); |
1061 | |
1062 | -struct { |
1063 | - long number; |
1064 | - DEVSUPFUN report; |
1065 | - DEVSUPFUN init; |
1066 | - DEVSUPFUN init_record; |
1067 | - DEVSUPFUN get_ioint_info; |
1068 | - DEVSUPFUN read_mbbi; |
1069 | -} devMbbiSoft = { |
1070 | - 5, |
1071 | - NULL, |
1072 | - NULL, |
1073 | - init_record, |
1074 | - NULL, |
1075 | +mbbidset devMbbiSoft = { |
1076 | + {5, NULL, NULL, init_record, NULL}, |
1077 | read_mbbi |
1078 | }; |
1079 | epicsExportAddress(dset, devMbbiSoft); |
1080 | |
1081 | -static long init_record(mbbiRecord *prec) |
1082 | +static long init_record(dbCommon *pcommon) |
1083 | { |
1084 | + mbbiRecord *prec = (mbbiRecord *)pcommon; |
1085 | + |
1086 | if (recGblInitConstantLink(&prec->inp, DBF_ENUM, &prec->val)) |
1087 | prec->udf = FALSE; |
1088 | |
1089 | diff --git a/modules/database/src/std/dev/devMbbiSoftCallback.c b/modules/database/src/std/dev/devMbbiSoftCallback.c |
1090 | index fee81b5..6466b4c 100644 |
1091 | --- a/modules/database/src/std/dev/devMbbiSoftCallback.c |
1092 | +++ b/modules/database/src/std/dev/devMbbiSoftCallback.c |
1093 | @@ -151,8 +151,10 @@ static long init(int pass) |
1094 | return 0; |
1095 | } |
1096 | |
1097 | -static long init_record(mbbiRecord *prec) |
1098 | +static long init_record(dbCommon *pcommon) |
1099 | { |
1100 | + mbbiRecord *prec = (mbbiRecord *)pcommon; |
1101 | + |
1102 | if (recGblInitConstantLink(&prec->inp, DBR_ENUM, &prec->val)) |
1103 | prec->udf = FALSE; |
1104 | |
1105 | @@ -204,11 +206,8 @@ static long read_mbbi(mbbiRecord *prec) |
1106 | } |
1107 | |
1108 | /* Create the dset for devMbbiSoftCallback */ |
1109 | -struct { |
1110 | - dset common; |
1111 | - DEVSUPFUN read_mbbi; |
1112 | -} devMbbiSoftCallback = { |
1113 | +mbbidset devMbbiSoftCallback = { |
1114 | {5, NULL, init, init_record, NULL}, |
1115 | read_mbbi |
1116 | }; |
1117 | -epicsExportAddress(dset,devMbbiSoftCallback); |
1118 | +epicsExportAddress(dset, devMbbiSoftCallback); |
1119 | diff --git a/modules/database/src/std/dev/devMbbiSoftRaw.c b/modules/database/src/std/dev/devMbbiSoftRaw.c |
1120 | index 3bd6b21..40617ab 100644 |
1121 | --- a/modules/database/src/std/dev/devMbbiSoftRaw.c |
1122 | +++ b/modules/database/src/std/dev/devMbbiSoftRaw.c |
1123 | @@ -25,28 +25,19 @@ |
1124 | #include "epicsExport.h" |
1125 | |
1126 | /* Create the dset for devMbbiSoftRaw */ |
1127 | -static long init_record(mbbiRecord *prec); |
1128 | +static long init_record(dbCommon *pcommon); |
1129 | static long read_mbbi(mbbiRecord *prec); |
1130 | |
1131 | -struct { |
1132 | - long number; |
1133 | - DEVSUPFUN report; |
1134 | - DEVSUPFUN init; |
1135 | - DEVSUPFUN init_record; |
1136 | - DEVSUPFUN get_ioint_info; |
1137 | - DEVSUPFUN read_mbbi; |
1138 | -} devMbbiSoftRaw = { |
1139 | - 5, |
1140 | - NULL, |
1141 | - NULL, |
1142 | - init_record, |
1143 | - NULL, |
1144 | +mbbidset devMbbiSoftRaw = { |
1145 | + {5, NULL, NULL, init_record, NULL}, |
1146 | read_mbbi |
1147 | }; |
1148 | epicsExportAddress(dset, devMbbiSoftRaw); |
1149 | |
1150 | -static long init_record(mbbiRecord *prec) |
1151 | +static long init_record(dbCommon *pcommon) |
1152 | { |
1153 | + mbbiRecord *prec = (mbbiRecord *)pcommon; |
1154 | + |
1155 | recGblInitConstantLink(&prec->inp, DBF_ULONG, &prec->rval); |
1156 | |
1157 | /* Preserve old functionality*/ |
1158 | diff --git a/modules/database/src/std/dev/devMbboDirectSoft.c b/modules/database/src/std/dev/devMbboDirectSoft.c |
1159 | index 75359f2..dc769b2 100644 |
1160 | --- a/modules/database/src/std/dev/devMbboDirectSoft.c |
1161 | +++ b/modules/database/src/std/dev/devMbboDirectSoft.c |
1162 | @@ -26,10 +26,7 @@ static long write_mbbo(mbboDirectRecord *prec) |
1163 | } |
1164 | |
1165 | /* Create the dset for devMbboDirectSoft */ |
1166 | -struct { |
1167 | - dset common; |
1168 | - DEVSUPFUN write; |
1169 | -} devMbboDirectSoft = { |
1170 | +mbbodirectdset devMbboDirectSoft = { |
1171 | {5, NULL, NULL, NULL, NULL}, |
1172 | write_mbbo |
1173 | }; |
1174 | diff --git a/modules/database/src/std/dev/devMbboDirectSoftCallback.c b/modules/database/src/std/dev/devMbboDirectSoftCallback.c |
1175 | index 6d86507..18d9b9c 100644 |
1176 | --- a/modules/database/src/std/dev/devMbboDirectSoftCallback.c |
1177 | +++ b/modules/database/src/std/dev/devMbboDirectSoftCallback.c |
1178 | @@ -38,11 +38,8 @@ static long write_mbbo(mbboDirectRecord *prec) |
1179 | return status; |
1180 | } |
1181 | |
1182 | -/* Create the dset for devMbboSoft */ |
1183 | -struct { |
1184 | - dset common; |
1185 | - DEVSUPFUN write; |
1186 | -} devMbboDirectSoftCallback = { |
1187 | +/* Create the dset for devMbboDirectSoftCallback */ |
1188 | +mbbodirectdset devMbboDirectSoftCallback = { |
1189 | {5, NULL, NULL, NULL, NULL}, |
1190 | write_mbbo |
1191 | }; |
1192 | diff --git a/modules/database/src/std/dev/devMbboDirectSoftRaw.c b/modules/database/src/std/dev/devMbboDirectSoftRaw.c |
1193 | index c3bbdc8..f3d45a7 100644 |
1194 | --- a/modules/database/src/std/dev/devMbboDirectSoftRaw.c |
1195 | +++ b/modules/database/src/std/dev/devMbboDirectSoftRaw.c |
1196 | @@ -20,8 +20,10 @@ |
1197 | #include "mbboDirectRecord.h" |
1198 | #include "epicsExport.h" |
1199 | |
1200 | -static long init_record(mbboDirectRecord *prec) |
1201 | +static long init_record(dbCommon *pcommon) |
1202 | { |
1203 | + mbboDirectRecord *prec = (mbboDirectRecord *)pcommon; |
1204 | + |
1205 | if (prec->nobt == 0) |
1206 | prec->mask = 0xffffffff; |
1207 | |
1208 | @@ -40,10 +42,7 @@ static long write_mbbo(mbboDirectRecord *prec) |
1209 | } |
1210 | |
1211 | /* Create the dset for devMbboDirectSoftRaw */ |
1212 | -struct { |
1213 | - dset common; |
1214 | - DEVSUPFUN write; |
1215 | -} devMbboDirectSoftRaw = { |
1216 | +mbbodirectdset devMbboDirectSoftRaw = { |
1217 | {5, NULL, NULL, init_record, NULL}, |
1218 | write_mbbo |
1219 | }; |
1220 | diff --git a/modules/database/src/std/dev/devMbboSoft.c b/modules/database/src/std/dev/devMbboSoft.c |
1221 | index b2fe6b0..dfe8569 100644 |
1222 | --- a/modules/database/src/std/dev/devMbboSoft.c |
1223 | +++ b/modules/database/src/std/dev/devMbboSoft.c |
1224 | @@ -27,26 +27,16 @@ |
1225 | #include "epicsExport.h" |
1226 | |
1227 | /* Create the dset for devMbboSoft */ |
1228 | -static long init_record(mbboRecord *prec); |
1229 | +static long init_record(dbCommon *pcommon); |
1230 | static long write_mbbo(mbboRecord *prec); |
1231 | -struct { |
1232 | - long number; |
1233 | - DEVSUPFUN report; |
1234 | - DEVSUPFUN init; |
1235 | - DEVSUPFUN init_record; |
1236 | - DEVSUPFUN get_ioint_info; |
1237 | - DEVSUPFUN write_mbbo; |
1238 | -}devMbboSoft={ |
1239 | - 5, |
1240 | - NULL, |
1241 | - NULL, |
1242 | - init_record, |
1243 | - NULL, |
1244 | - write_mbbo |
1245 | + |
1246 | +mbbodset devMbboSoft = { |
1247 | + {5, NULL, NULL, init_record, NULL}, |
1248 | + write_mbbo |
1249 | }; |
1250 | -epicsExportAddress(dset,devMbboSoft); |
1251 | - |
1252 | |
1253 | -static long init_record(mbboRecord *prec) |
1254 | +epicsExportAddress(dset, devMbboSoft); |
1255 | + |
1256 | +static long init_record(dbCommon *pcommon) |
1257 | { |
1258 | /*dont convert*/ |
1259 | return 2; |
1260 | diff --git a/modules/database/src/std/dev/devMbboSoftCallback.c b/modules/database/src/std/dev/devMbboSoftCallback.c |
1261 | index fd5fe40..d5f2f1c 100644 |
1262 | --- a/modules/database/src/std/dev/devMbboSoftCallback.c |
1263 | +++ b/modules/database/src/std/dev/devMbboSoftCallback.c |
1264 | @@ -28,22 +28,12 @@ |
1265 | |
1266 | /* Create the dset for devMbboSoftCallback */ |
1267 | static long write_mbbo(mbboRecord *prec); |
1268 | -struct { |
1269 | - long number; |
1270 | - DEVSUPFUN report; |
1271 | - DEVSUPFUN init; |
1272 | - DEVSUPFUN init_record; |
1273 | - DEVSUPFUN get_ioint_info; |
1274 | - DEVSUPFUN write_mbbo; |
1275 | -}devMbboSoftCallback={ |
1276 | - 5, |
1277 | - NULL, |
1278 | - NULL, |
1279 | - NULL, |
1280 | - NULL, |
1281 | - write_mbbo |
1282 | + |
1283 | +mbbodset devMbboSoftCallback = { |
1284 | + {5, NULL, NULL, NULL, NULL}, |
1285 | + write_mbbo |
1286 | }; |
1287 | -epicsExportAddress(dset,devMbboSoftCallback); |
1288 | +epicsExportAddress(dset, devMbboSoftCallback); |
1289 | |
1290 | static long write_mbbo(mbboRecord *prec) |
1291 | { |
1292 | diff --git a/modules/database/src/std/dev/devMbboSoftRaw.c b/modules/database/src/std/dev/devMbboSoftRaw.c |
1293 | index 092b6a8..2813ca9 100644 |
1294 | --- a/modules/database/src/std/dev/devMbboSoftRaw.c |
1295 | +++ b/modules/database/src/std/dev/devMbboSoftRaw.c |
1296 | @@ -20,8 +20,10 @@ |
1297 | #include "mbboRecord.h" |
1298 | #include "epicsExport.h" |
1299 | |
1300 | -static long init_record(mbboRecord *prec) |
1301 | +static long init_record(dbCommon *pcommon) |
1302 | { |
1303 | + mbboRecord *prec = (mbboRecord *)pcommon; |
1304 | + |
1305 | if (prec->nobt == 0) |
1306 | prec->mask = 0xffffffff; |
1307 | |
1308 | @@ -40,10 +42,7 @@ static long write_mbbo(mbboRecord *prec) |
1309 | } |
1310 | |
1311 | /* Create the dset for devMbboSoftRaw */ |
1312 | -struct { |
1313 | - dset common; |
1314 | - DEVSUPFUN write; |
1315 | -} devMbboSoftRaw = { |
1316 | +mbbodset devMbboSoftRaw = { |
1317 | {5, NULL, NULL, init_record, NULL}, |
1318 | write_mbbo |
1319 | }; |
1320 | diff --git a/modules/database/src/std/dev/devSASoft.c b/modules/database/src/std/dev/devSASoft.c |
1321 | index 69894dd..be32af4 100644 |
1322 | --- a/modules/database/src/std/dev/devSASoft.c |
1323 | +++ b/modules/database/src/std/dev/devSASoft.c |
1324 | @@ -26,22 +26,11 @@ |
1325 | #include "epicsExport.h" |
1326 | |
1327 | /* Create the dset for devSASoft */ |
1328 | -static long init_record(subArrayRecord *prec); |
1329 | +static long init_record(dbCommon *pcommon); |
1330 | static long read_sa(subArrayRecord *prec); |
1331 | |
1332 | -struct { |
1333 | - long number; |
1334 | - DEVSUPFUN report; |
1335 | - DEVSUPFUN init; |
1336 | - DEVSUPFUN init_record; |
1337 | - DEVSUPFUN get_ioint_info; |
1338 | - DEVSUPFUN read_sa; |
1339 | -} devSASoft = { |
1340 | - 5, |
1341 | - NULL, |
1342 | - NULL, |
1343 | - init_record, |
1344 | - NULL, |
1345 | +sadset devSASoft = { |
1346 | + {5, NULL, NULL, init_record, NULL}, |
1347 | read_sa |
1348 | }; |
1349 | epicsExportAddress(dset, devSASoft); |
1350 | @@ -65,8 +54,9 @@ static void subset(subArrayRecord *prec, long nRequest) |
1351 | prec->udf = FALSE; |
1352 | } |
1353 | |
1354 | -static long init_record(subArrayRecord *prec) |
1355 | +static long init_record(dbCommon *pcommon) |
1356 | { |
1357 | + subArrayRecord *prec = (subArrayRecord *)pcommon; |
1358 | long nRequest = prec->indx + prec->nelm; |
1359 | long status; |
1360 | |
1361 | diff --git a/modules/database/src/std/dev/devSiSoft.c b/modules/database/src/std/dev/devSiSoft.c |
1362 | index 5141c10..7b97803 100644 |
1363 | --- a/modules/database/src/std/dev/devSiSoft.c |
1364 | +++ b/modules/database/src/std/dev/devSiSoft.c |
1365 | @@ -27,28 +27,19 @@ |
1366 | #include "epicsExport.h" |
1367 | |
1368 | /* Create the dset for devSiSoft */ |
1369 | -static long init_record(stringinRecord *prec); |
1370 | +static long init_record(dbCommon *pcommon); |
1371 | static long read_stringin(stringinRecord *prec); |
1372 | |
1373 | -struct { |
1374 | - long number; |
1375 | - DEVSUPFUN report; |
1376 | - DEVSUPFUN init; |
1377 | - DEVSUPFUN init_record; |
1378 | - DEVSUPFUN get_ioint_info; |
1379 | - DEVSUPFUN read_stringin; |
1380 | -} devSiSoft = { |
1381 | - 5, |
1382 | - NULL, |
1383 | - NULL, |
1384 | - init_record, |
1385 | - NULL, |
1386 | +stringindset devSiSoft = { |
1387 | + {5, NULL, NULL, init_record, NULL}, |
1388 | read_stringin |
1389 | }; |
1390 | epicsExportAddress(dset, devSiSoft); |
1391 | |
1392 | -static long init_record(stringinRecord *prec) |
1393 | +static long init_record(dbCommon *pcommon) |
1394 | { |
1395 | + stringinRecord *prec = (stringinRecord *)pcommon; |
1396 | + |
1397 | if (recGblInitConstantLink(&prec->inp, DBF_STRING, prec->val)) |
1398 | prec->udf = FALSE; |
1399 | |
1400 | diff --git a/modules/database/src/std/dev/devSiSoftCallback.c b/modules/database/src/std/dev/devSiSoftCallback.c |
1401 | index fd0e376..303e1be 100644 |
1402 | --- a/modules/database/src/std/dev/devSiSoftCallback.c |
1403 | +++ b/modules/database/src/std/dev/devSiSoftCallback.c |
1404 | @@ -153,8 +153,10 @@ static long init(int pass) |
1405 | return 0; |
1406 | } |
1407 | |
1408 | -static long init_record(stringinRecord *prec) |
1409 | +static long init_record(dbCommon *pcommon) |
1410 | { |
1411 | + stringinRecord *prec = (stringinRecord *)pcommon; |
1412 | + |
1413 | if (recGblInitConstantLink(&prec->inp, DBR_STRING, &prec->val)) |
1414 | prec->udf = FALSE; |
1415 | |
1416 | @@ -207,11 +209,8 @@ static long read_si(stringinRecord *prec) |
1417 | } |
1418 | |
1419 | /* Create the dset for devSiSoftCallback */ |
1420 | -struct { |
1421 | - dset common; |
1422 | - DEVSUPFUN read_li; |
1423 | -} devSiSoftCallback = { |
1424 | +stringindset devSiSoftCallback = { |
1425 | {5, NULL, init, init_record, NULL}, |
1426 | read_si |
1427 | }; |
1428 | -epicsExportAddress(dset,devSiSoftCallback); |
1429 | +epicsExportAddress(dset, devSiSoftCallback); |
1430 | diff --git a/modules/database/src/std/dev/devSoSoft.c b/modules/database/src/std/dev/devSoSoft.c |
1431 | index 6dda4a7..5af5a52 100644 |
1432 | --- a/modules/database/src/std/dev/devSoSoft.c |
1433 | +++ b/modules/database/src/std/dev/devSoSoft.c |
1434 | @@ -27,19 +27,9 @@ |
1435 | |
1436 | /* Create the dset for devSoSoft */ |
1437 | static long write_stringout(stringoutRecord *prec); |
1438 | -struct { |
1439 | - long number; |
1440 | - DEVSUPFUN report; |
1441 | - DEVSUPFUN init; |
1442 | - DEVSUPFUN init_record; |
1443 | - DEVSUPFUN get_ioint_info; |
1444 | - DEVSUPFUN write_stringout; |
1445 | -} devSoSoft = { |
1446 | - 5, |
1447 | - NULL, |
1448 | - NULL, |
1449 | - NULL, |
1450 | - NULL, |
1451 | + |
1452 | +stringoutdset devSoSoft = { |
1453 | + {5, NULL, NULL, NULL, NULL}, |
1454 | write_stringout |
1455 | }; |
1456 | epicsExportAddress(dset, devSoSoft); |
1457 | diff --git a/modules/database/src/std/dev/devSoSoftCallback.c b/modules/database/src/std/dev/devSoSoftCallback.c |
1458 | index df8c5d8..ceae801 100644 |
1459 | --- a/modules/database/src/std/dev/devSoSoftCallback.c |
1460 | +++ b/modules/database/src/std/dev/devSoSoftCallback.c |
1461 | @@ -27,19 +27,9 @@ |
1462 | |
1463 | /* Create the dset for devSoSoftCallback */ |
1464 | static long write_stringout(stringoutRecord *prec); |
1465 | -struct { |
1466 | - long number; |
1467 | - DEVSUPFUN report; |
1468 | - DEVSUPFUN init; |
1469 | - DEVSUPFUN init_record; |
1470 | - DEVSUPFUN get_ioint_info; |
1471 | - DEVSUPFUN write_stringout; |
1472 | -} devSoSoftCallback = { |
1473 | - 5, |
1474 | - NULL, |
1475 | - NULL, |
1476 | - NULL, |
1477 | - NULL, |
1478 | + |
1479 | +stringoutdset devSoSoftCallback = { |
1480 | + {5, NULL, NULL, NULL, NULL}, |
1481 | write_stringout |
1482 | }; |
1483 | epicsExportAddress(dset, devSoSoftCallback); |
1484 | @@ -60,4 +50,3 @@ static long write_stringout(stringoutRecord *prec) |
1485 | |
1486 | return status; |
1487 | } |
1488 | - |
1489 | diff --git a/modules/database/src/std/dev/devStdio.c b/modules/database/src/std/dev/devStdio.c |
1490 | index 928c8a4..d8646d9 100644 |
1491 | --- a/modules/database/src/std/dev/devStdio.c |
1492 | +++ b/modules/database/src/std/dev/devStdio.c |
1493 | @@ -202,10 +202,8 @@ static long write_stringout(stringoutRecord *prec) |
1494 | return 0; |
1495 | } |
1496 | |
1497 | -static struct { |
1498 | - dset common; |
1499 | - DEVSUPFUN write; |
1500 | -} devSoStdio = { |
1501 | - {5, NULL, init_stringout, NULL, NULL}, write_stringout |
1502 | +stringoutdset devSoStdio = { |
1503 | + {5, NULL, init_stringout, NULL, NULL}, |
1504 | + write_stringout |
1505 | }; |
1506 | epicsExportAddress(dset, devSoStdio); |
1507 | diff --git a/modules/database/src/std/dev/devTimestamp.c b/modules/database/src/std/dev/devTimestamp.c |
1508 | index bcab266..06f694e 100644 |
1509 | --- a/modules/database/src/std/dev/devTimestamp.c |
1510 | +++ b/modules/database/src/std/dev/devTimestamp.c |
1511 | @@ -65,10 +65,7 @@ static long read_stringin (stringinRecord *prec) |
1512 | return 0; |
1513 | } |
1514 | |
1515 | -struct { |
1516 | - dset common; |
1517 | - DEVSUPFUN read_stringin; |
1518 | -} devTimestampSI = { |
1519 | +stringindset devTimestampSI = { |
1520 | {5, NULL, initAllow, NULL, NULL}, |
1521 | read_stringin |
1522 | }; |
1523 | diff --git a/modules/database/src/std/dev/devWfSoft.c b/modules/database/src/std/dev/devWfSoft.c |
1524 | index 5b52151..0a089b8 100644 |
1525 | --- a/modules/database/src/std/dev/devWfSoft.c |
1526 | +++ b/modules/database/src/std/dev/devWfSoft.c |
1527 | @@ -26,28 +26,18 @@ |
1528 | #include "epicsExport.h" |
1529 | |
1530 | /* Create the dset for devWfSoft */ |
1531 | -static long init_record(waveformRecord *prec); |
1532 | +static long init_record(dbCommon *pcommon); |
1533 | static long read_wf(waveformRecord *prec); |
1534 | |
1535 | -struct { |
1536 | - long number; |
1537 | - DEVSUPFUN report; |
1538 | - DEVSUPFUN init; |
1539 | - DEVSUPFUN init_record; |
1540 | - DEVSUPFUN get_ioint_info; |
1541 | - DEVSUPFUN read_wf; |
1542 | -} devWfSoft = { |
1543 | - 5, |
1544 | - NULL, |
1545 | - NULL, |
1546 | - init_record, |
1547 | - NULL, |
1548 | +wfdset devWfSoft = { |
1549 | + {5, NULL, NULL, init_record, NULL}, |
1550 | read_wf |
1551 | }; |
1552 | epicsExportAddress(dset, devWfSoft); |
1553 | |
1554 | -static long init_record(waveformRecord *prec) |
1555 | +static long init_record(dbCommon *pcommon) |
1556 | { |
1557 | + waveformRecord *prec = (waveformRecord *)pcommon; |
1558 | long nelm = prec->nelm; |
1559 | long status = dbLoadLinkArray(&prec->inp, prec->ftvl, prec->bptr, &nelm); |
1560 | |
1561 | diff --git a/modules/database/src/std/rec/Makefile b/modules/database/src/std/rec/Makefile |
1562 | index e6277fb..51f54db 100644 |
1563 | --- a/modules/database/src/std/rec/Makefile |
1564 | +++ b/modules/database/src/std/rec/Makefile |
1565 | @@ -11,34 +11,48 @@ |
1566 | |
1567 | SRC_DIRS += $(STDDIR)/rec |
1568 | |
1569 | +aaiRecord_CFLAGS += -DUSE_TYPED_DSET |
1570 | stdRecords += aaiRecord |
1571 | +aaoRecord_CFLAGS += -DUSE_TYPED_DSET |
1572 | stdRecords += aaoRecord |
1573 | aiRecord_CFLAGS += -DUSE_TYPED_DSET |
1574 | stdRecords += aiRecord |
1575 | +aoRecord_CFLAGS += -DUSE_TYPED_DSET |
1576 | stdRecords += aoRecord |
1577 | stdRecords += aSubRecord |
1578 | +biRecord_CFLAGS += -DUSE_TYPED_DSET |
1579 | stdRecords += biRecord |
1580 | +boRecord_CFLAGS += -DUSE_TYPED_DSET |
1581 | stdRecords += boRecord |
1582 | stdRecords += calcRecord |
1583 | +calcoutRecord_CFLAGS += -DUSE_TYPED_DSET |
1584 | stdRecords += calcoutRecord |
1585 | stdRecords += compressRecord |
1586 | stdRecords += dfanoutRecord |
1587 | +eventRecord_CFLAGS += -DUSE_TYPED_DSET |
1588 | stdRecords += eventRecord |
1589 | stdRecords += fanoutRecord |
1590 | +histogramRecord_CFLAGS += -DUSE_TYPED_DSET |
1591 | stdRecords += histogramRecord |
1592 | int64inRecord_CFLAGS += -DUSE_TYPED_DSET |
1593 | stdRecords += int64inRecord |
1594 | int64outRecord_CFLAGS += -DUSE_TYPED_DSET |
1595 | stdRecords += int64outRecord |
1596 | +longinRecord_CFLAGS += -DUSE_TYPED_DSET |
1597 | stdRecords += longinRecord |
1598 | +longoutRecord_CFLAGS += -DUSE_TYPED_DSET |
1599 | stdRecords += longoutRecord |
1600 | lsiRecord_CFLAGS += -DUSE_TYPED_DSET |
1601 | stdRecords += lsiRecord |
1602 | lsoRecord_CFLAGS += -DUSE_TYPED_DSET |
1603 | stdRecords += lsoRecord |
1604 | +mbbiRecord_CFLAGS += -DUSE_TYPED_DSET |
1605 | stdRecords += mbbiRecord |
1606 | +mbbiDirectRecord_CFLAGS += -DUSE_TYPED_DSET |
1607 | stdRecords += mbbiDirectRecord |
1608 | +mbboRecord_CFLAGS += -DUSE_TYPED_DSET |
1609 | stdRecords += mbboRecord |
1610 | +mbboDirectRecord_CFLAGS += -DUSE_TYPED_DSET |
1611 | stdRecords += mbboDirectRecord |
1612 | stdRecords += permissiveRecord |
1613 | printfRecord_CFLAGS += -DUSE_TYPED_DSET |
1614 | @@ -47,9 +61,12 @@ stdRecords += selRecord |
1615 | stdRecords += seqRecord |
1616 | stdRecords += stateRecord |
1617 | stdRecords += stringinRecord |
1618 | +stringoutRecord_CFLAGS += -DUSE_TYPED_DSET |
1619 | stdRecords += stringoutRecord |
1620 | stdRecords += subRecord |
1621 | +subArrayRecord_CFLAGS += -DUSE_TYPED_DSET |
1622 | stdRecords += subArrayRecord |
1623 | +waveformRecord_CFLAGS += -DUSE_TYPED_DSET |
1624 | stdRecords += waveformRecord |
1625 | |
1626 | DBDINC += $(stdRecords) |
1627 | diff --git a/modules/database/src/std/rec/aaiRecord.c b/modules/database/src/std/rec/aaiRecord.c |
1628 | index 51af45f..e8143ae 100644 |
1629 | --- a/modules/database/src/std/rec/aaiRecord.c |
1630 | +++ b/modules/database/src/std/rec/aaiRecord.c |
1631 | @@ -90,22 +90,13 @@ rset aaiRSET={ |
1632 | }; |
1633 | epicsExportAddress(rset,aaiRSET); |
1634 | |
1635 | -struct aaidset { /* aai dset */ |
1636 | - long number; |
1637 | - DEVSUPFUN dev_report; |
1638 | - DEVSUPFUN init; |
1639 | - DEVSUPFUN init_record; /*returns: (-1,0)=>(failure,success)*/ |
1640 | - DEVSUPFUN get_ioint_info; |
1641 | - DEVSUPFUN read_aai; /*returns: (-1,0)=>(failure,success)*/ |
1642 | -}; |
1643 | - |
1644 | static void monitor(aaiRecord *); |
1645 | static long readValue(aaiRecord *); |
1646 | |
1647 | static long init_record(struct dbCommon *pcommon, int pass) |
1648 | { |
1649 | struct aaiRecord *prec = (struct aaiRecord *)pcommon; |
1650 | - struct aaidset *pdset = (struct aaidset *)(prec->dset); |
1651 | + aaidset *pdset = (aaidset *)(prec->dset); |
1652 | |
1653 | /* must have dset defined */ |
1654 | if (!pdset) { |
1655 | @@ -125,8 +116,8 @@ static long init_record(struct dbCommon *pcommon, int pass) |
1656 | not change after links are established before pass 1 |
1657 | */ |
1658 | |
1659 | - if (pdset->init_record) { |
1660 | - long status = pdset->init_record(prec); |
1661 | + if (pdset->common.init_record) { |
1662 | + long status = pdset->common.init_record(pcommon); |
1663 | |
1664 | /* init_record may set the bptr to point to the data */ |
1665 | if (status) |
1666 | @@ -143,7 +134,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
1667 | recGblInitSimm(pcommon, &prec->sscn, &prec->oldsimm, &prec->simm, &prec->siml); |
1668 | |
1669 | /* must have read_aai function defined */ |
1670 | - if (pdset->number < 5 || pdset->read_aai == NULL) { |
1671 | + if (pdset->common.number < 5 || pdset->read_aai == NULL) { |
1672 | recGblRecordError(S_dev_missingSup, prec, "aai: init_record"); |
1673 | return S_dev_missingSup; |
1674 | } |
1675 | @@ -153,7 +144,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
1676 | static long process(struct dbCommon *pcommon) |
1677 | { |
1678 | struct aaiRecord *prec = (struct aaiRecord *)pcommon; |
1679 | - struct aaidset *pdset = (struct aaidset *)(prec->dset); |
1680 | + aaidset *pdset = (aaidset *)(prec->dset); |
1681 | long status; |
1682 | unsigned char pact = prec->pact; |
1683 | |
1684 | @@ -339,7 +330,7 @@ static void monitor(aaiRecord *prec) |
1685 | |
1686 | static long readValue(aaiRecord *prec) |
1687 | { |
1688 | - struct aaidset *pdset = (struct aaidset *) prec->dset; |
1689 | + aaidset *pdset = (aaidset *) prec->dset; |
1690 | long status; |
1691 | |
1692 | /* NB: Device support must post updates to NORD */ |
1693 | diff --git a/modules/database/src/std/rec/aaiRecord.dbd b/modules/database/src/std/rec/aaiRecord.dbd |
1694 | index b4675b3..bc29209 100644 |
1695 | --- a/modules/database/src/std/rec/aaiRecord.dbd |
1696 | +++ b/modules/database/src/std/rec/aaiRecord.dbd |
1697 | @@ -12,6 +12,15 @@ menu(aaiPOST) { |
1698 | } |
1699 | recordtype(aai) { |
1700 | include "dbCommon.dbd" |
1701 | + % |
1702 | + %/* Declare Device Support Entry Table */ |
1703 | + %struct aaiRecord; |
1704 | + %typedef struct aaidset { |
1705 | + % dset common; /*init_record returns: (-1,0)=>(failure,success)*/ |
1706 | + % long (*read_aai)(struct aaiRecord *prec); /*returns: (-1,0)=>(failure,success)*/ |
1707 | + %} aaidset; |
1708 | + %#define HAS_aaidset |
1709 | + % |
1710 | field(VAL,DBF_NOACCESS) { |
1711 | prompt("Value") |
1712 | asl(ASL0) |
1713 | diff --git a/modules/database/src/std/rec/aaoRecord.c b/modules/database/src/std/rec/aaoRecord.c |
1714 | index ccf0517..feb4e34 100644 |
1715 | --- a/modules/database/src/std/rec/aaoRecord.c |
1716 | +++ b/modules/database/src/std/rec/aaoRecord.c |
1717 | @@ -90,22 +90,13 @@ rset aaoRSET={ |
1718 | }; |
1719 | epicsExportAddress(rset,aaoRSET); |
1720 | |
1721 | -struct aaodset { /* aao dset */ |
1722 | - long number; |
1723 | - DEVSUPFUN dev_report; |
1724 | - DEVSUPFUN init; |
1725 | - DEVSUPFUN init_record; /*returns: (-1,0)=>(failure,success)*/ |
1726 | - DEVSUPFUN get_ioint_info; |
1727 | - DEVSUPFUN write_aao; /*returns: (-1,0)=>(failure,success)*/ |
1728 | -}; |
1729 | - |
1730 | static void monitor(aaoRecord *); |
1731 | static long writeValue(aaoRecord *); |
1732 | |
1733 | static long init_record(struct dbCommon *pcommon, int pass) |
1734 | { |
1735 | struct aaoRecord *prec = (struct aaoRecord *)pcommon; |
1736 | - struct aaodset *pdset = (struct aaodset *)(prec->dset); |
1737 | + aaodset *pdset = (aaodset *)(prec->dset); |
1738 | long status; |
1739 | |
1740 | /* must have dset defined */ |
1741 | @@ -130,9 +121,9 @@ static long init_record(struct dbCommon *pcommon, int pass) |
1742 | not change after links are established before pass 1 |
1743 | */ |
1744 | |
1745 | - if (pdset->init_record) { |
1746 | + if (pdset->common.init_record) { |
1747 | /* init_record may set the bptr to point to the data */ |
1748 | - if ((status = pdset->init_record(prec))) |
1749 | + if ((status = pdset->common.init_record(pcommon))) |
1750 | return status; |
1751 | } |
1752 | if (!prec->bptr) { |
1753 | @@ -146,7 +137,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
1754 | recGblInitSimm(pcommon, &prec->sscn, &prec->oldsimm, &prec->simm, &prec->siml); |
1755 | |
1756 | /* must have write_aao function defined */ |
1757 | - if (pdset->number < 5 || pdset->write_aao == NULL) { |
1758 | + if (pdset->common.number < 5 || pdset->write_aao == NULL) { |
1759 | recGblRecordError(S_dev_missingSup, prec, "aao: init_record"); |
1760 | return S_dev_missingSup; |
1761 | } |
1762 | @@ -156,7 +147,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
1763 | static long process(struct dbCommon *pcommon) |
1764 | { |
1765 | struct aaoRecord *prec = (struct aaoRecord *)pcommon; |
1766 | - struct aaodset *pdset = (struct aaodset *)(prec->dset); |
1767 | + aaodset *pdset = (aaodset *)(prec->dset); |
1768 | long status; |
1769 | unsigned char pact = prec->pact; |
1770 | |
1771 | @@ -339,7 +330,7 @@ static void monitor(aaoRecord *prec) |
1772 | |
1773 | static long writeValue(aaoRecord *prec) |
1774 | { |
1775 | - struct aaodset *pdset = (struct aaodset *) prec->dset; |
1776 | + aaodset *pdset = (aaodset *) prec->dset; |
1777 | long status = 0; |
1778 | |
1779 | if (!prec->pact) { |
1780 | diff --git a/modules/database/src/std/rec/aaoRecord.dbd b/modules/database/src/std/rec/aaoRecord.dbd |
1781 | index 20e957f..aebb769 100644 |
1782 | --- a/modules/database/src/std/rec/aaoRecord.dbd |
1783 | +++ b/modules/database/src/std/rec/aaoRecord.dbd |
1784 | @@ -12,6 +12,15 @@ menu(aaoPOST) { |
1785 | } |
1786 | recordtype(aao) { |
1787 | include "dbCommon.dbd" |
1788 | + % |
1789 | + %/* Declare Device Support Entry Table */ |
1790 | + %struct aaoRecord; |
1791 | + %typedef struct aaodset { |
1792 | + % dset common; /*init_record returns: (-1,0)=>(failure,success)*/ |
1793 | + % long (*write_aao)(struct aaoRecord *prec); /*returns: (-1,0)=>(failure,success)*/ |
1794 | + %} aaodset; |
1795 | + %#define HAS_aaodset |
1796 | + % |
1797 | field(VAL,DBF_NOACCESS) { |
1798 | prompt("Value") |
1799 | asl(ASL0) |
1800 | diff --git a/modules/database/src/std/rec/aoRecord.c b/modules/database/src/std/rec/aoRecord.c |
1801 | index 6fa6585..3f9a84e 100644 |
1802 | --- a/modules/database/src/std/rec/aoRecord.c |
1803 | +++ b/modules/database/src/std/rec/aoRecord.c |
1804 | @@ -81,20 +81,10 @@ rset aoRSET={ |
1805 | put_enum_str, |
1806 | get_graphic_double, |
1807 | get_control_double, |
1808 | - get_alarm_double }; |
1809 | - |
1810 | -struct aodset { /* analog input dset */ |
1811 | - long number; |
1812 | - DEVSUPFUN dev_report; |
1813 | - DEVSUPFUN init; |
1814 | - DEVSUPFUN init_record; /*returns: (0,2)=>(success,success no convert)*/ |
1815 | - DEVSUPFUN get_ioint_info; |
1816 | - DEVSUPFUN write_ao;/*(0)=>(success ) */ |
1817 | - DEVSUPFUN special_linconv; |
1818 | + get_alarm_double |
1819 | }; |
1820 | epicsExportAddress(rset,aoRSET); |
1821 | |
1822 | - |
1823 | static void checkAlarms(aoRecord *); |
1824 | static long fetch_value(aoRecord *, double *); |
1825 | static void convert(aoRecord *, double); |
1826 | @@ -104,7 +94,7 @@ static long writeValue(aoRecord *); |
1827 | static long init_record(struct dbCommon *pcommon, int pass) |
1828 | { |
1829 | struct aoRecord *prec = (struct aoRecord *)pcommon; |
1830 | - struct aodset *pdset; |
1831 | + aodset *pdset; |
1832 | double eoff = prec->eoff, eslo = prec->eslo; |
1833 | double value; |
1834 | long status = 0; |
1835 | @@ -113,7 +103,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
1836 | |
1837 | recGblInitSimm(pcommon, &prec->sscn, &prec->oldsimm, &prec->simm, &prec->siml); |
1838 | |
1839 | - if(!(pdset = (struct aodset *)(prec->dset))) { |
1840 | + if(!(pdset = (aodset *)(prec->dset))) { |
1841 | recGblRecordError(S_dev_noDSET,(void *)prec,"ao: init_record"); |
1842 | return(S_dev_noDSET); |
1843 | } |
1844 | @@ -122,7 +112,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
1845 | prec->udf = isnan(prec->val); |
1846 | |
1847 | /* must have write_ao function defined */ |
1848 | - if ((pdset->number < 6) || (pdset->write_ao ==NULL)) { |
1849 | + if ((pdset->common.number < 6) || (pdset->write_ao ==NULL)) { |
1850 | recGblRecordError(S_dev_missingSup,(void *)prec,"ao: init_record"); |
1851 | return(S_dev_missingSup); |
1852 | } |
1853 | @@ -132,8 +122,8 @@ static long init_record(struct dbCommon *pcommon, int pass) |
1854 | prec->eoff = prec->egul; |
1855 | } |
1856 | |
1857 | - if (pdset->init_record) { |
1858 | - status = (*pdset->init_record)(prec); |
1859 | + if (pdset->common.init_record) { |
1860 | + status = pdset->common.init_record(pcommon); |
1861 | if (prec->linr == menuConvertSLOPE) { |
1862 | prec->eoff = eoff; |
1863 | prec->eslo = eslo; |
1864 | @@ -174,7 +164,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
1865 | static long process(struct dbCommon *pcommon) |
1866 | { |
1867 | struct aoRecord *prec = (struct aoRecord *)pcommon; |
1868 | - struct aodset *pdset = (struct aodset *)(prec->dset); |
1869 | + aodset *pdset = (aodset *)(prec->dset); |
1870 | long status=0; |
1871 | unsigned char pact=prec->pact; |
1872 | double value; |
1873 | @@ -245,12 +235,12 @@ static long process(struct dbCommon *pcommon) |
1874 | static long special(DBADDR *paddr, int after) |
1875 | { |
1876 | aoRecord *prec = (aoRecord *)(paddr->precord); |
1877 | - struct aodset *pdset = (struct aodset *) (prec->dset); |
1878 | + aodset *pdset = (aodset *) (prec->dset); |
1879 | int special_type = paddr->special; |
1880 | |
1881 | switch(special_type) { |
1882 | case(SPC_LINCONV): |
1883 | - if(pdset->number<6 ) { |
1884 | + if(pdset->common.number<6 ) { |
1885 | recGblDbaddrError(S_db_noMod,paddr,"ao: special"); |
1886 | return(S_db_noMod); |
1887 | } |
1888 | @@ -555,7 +545,7 @@ static void monitor(aoRecord *prec) |
1889 | |
1890 | |
1891 | static long writeValue(aoRecord *prec) |
1892 | { |
1893 | - struct aodset *pdset = (struct aodset *) prec->dset; |
1894 | + aodset *pdset = (aodset *) prec->dset; |
1895 | long status = 0; |
1896 | |
1897 | if (!prec->pact) { |
1898 | diff --git a/modules/database/src/std/rec/aoRecord.dbd.pod b/modules/database/src/std/rec/aoRecord.dbd.pod |
1899 | index c54cb2c..672329e 100644 |
1900 | --- a/modules/database/src/std/rec/aoRecord.dbd.pod |
1901 | +++ b/modules/database/src/std/rec/aoRecord.dbd.pod |
1902 | @@ -269,6 +269,16 @@ information on these fields. |
1903 | =cut |
1904 | |
1905 | include "dbCommon.dbd" |
1906 | + % |
1907 | + %/* Declare Device Support Entry Table */ |
1908 | + %struct aoRecord; |
1909 | + %typedef struct aodset { |
1910 | + % dset common; /*init_record returns: (0,2)=>(success,success no convert)*/ |
1911 | + % long (*write_ao)(struct aoRecord *prec); /*(0)=>(success ) */ |
1912 | + % long (*special_linconv)(struct aoRecord *prec, int after); |
1913 | + %} aodset; |
1914 | + %#define HAS_aodset |
1915 | + % |
1916 | field(VAL,DBF_DOUBLE) { |
1917 | prompt("Desired Output") |
1918 | promptgroup("50 - Output") |
1919 | diff --git a/modules/database/src/std/rec/biRecord.c b/modules/database/src/std/rec/biRecord.c |
1920 | index 9c0ddb3..c26ed79 100644 |
1921 | --- a/modules/database/src/std/rec/biRecord.c |
1922 | +++ b/modules/database/src/std/rec/biRecord.c |
1923 | @@ -75,17 +75,10 @@ rset biRSET={ |
1924 | put_enum_str, |
1925 | get_graphic_double, |
1926 | get_control_double, |
1927 | - get_alarm_double }; |
1928 | -struct bidset { /* binary input dset */ |
1929 | - long number; |
1930 | - DEVSUPFUN dev_report; |
1931 | - DEVSUPFUN init; |
1932 | - DEVSUPFUN init_record; /*returns: (-1,0)=>(failure,success)*/ |
1933 | - DEVSUPFUN get_ioint_info; |
1934 | - DEVSUPFUN read_bi;/*(0,2)=> success and convert, don't convert)*/ |
1935 | - /* if convert then raw value stored in rval */ |
1936 | + get_alarm_double |
1937 | }; |
1938 | epicsExportAddress(rset,biRSET); |
1939 | + |
1940 | static void checkAlarms(biRecord *); |
1941 | static void monitor(biRecord *); |
1942 | static long readValue(biRecord *); |
1943 | @@ -93,7 +86,7 @@ static long readValue(biRecord *); |
1944 | static long init_record(struct dbCommon *pcommon, int pass) |
1945 | { |
1946 | struct biRecord *prec = (struct biRecord *)pcommon; |
1947 | - struct bidset *pdset; |
1948 | + bidset *pdset; |
1949 | long status; |
1950 | |
1951 | if (pass == 0) return 0; |
1952 | @@ -101,17 +94,17 @@ static long init_record(struct dbCommon *pcommon, int pass) |
1953 | recGblInitSimm(pcommon, &prec->sscn, &prec->oldsimm, &prec->simm, &prec->siml); |
1954 | recGblInitConstantLink(&prec->siol, DBF_USHORT, &prec->sval); |
1955 | |
1956 | - if(!(pdset = (struct bidset *)(prec->dset))) { |
1957 | + if(!(pdset = (bidset *)(prec->dset))) { |
1958 | recGblRecordError(S_dev_noDSET,(void *)prec,"bi: init_record"); |
1959 | return(S_dev_noDSET); |
1960 | } |
1961 | /* must have read_bi function defined */ |
1962 | - if( (pdset->number < 5) || (pdset->read_bi == NULL) ) { |
1963 | + if( (pdset->common.number < 5) || (pdset->read_bi == NULL) ) { |
1964 | recGblRecordError(S_dev_missingSup,(void *)prec,"bi: init_record"); |
1965 | return(S_dev_missingSup); |
1966 | } |
1967 | - if( pdset->init_record ) { |
1968 | - if((status=(*pdset->init_record)(prec))) return(status); |
1969 | + if( pdset->common.init_record ) { |
1970 | + if((status=(*pdset->common.init_record)(pcommon))) return(status); |
1971 | } |
1972 | prec->mlst = prec->val; |
1973 | prec->lalm = prec->val; |
1974 | @@ -122,7 +115,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
1975 | static long process(struct dbCommon *pcommon) |
1976 | { |
1977 | struct biRecord *prec = (struct biRecord *)pcommon; |
1978 | - struct bidset *pdset = (struct bidset *)(prec->dset); |
1979 | + bidset *pdset = (bidset *)(prec->dset); |
1980 | long status; |
1981 | unsigned char pact=prec->pact; |
1982 | |
1983 | @@ -275,7 +268,7 @@ static void monitor(biRecord *prec) |
1984 | |
1985 | |
1986 | static long readValue(biRecord *prec) |
1987 | { |
1988 | - struct bidset *pdset = (struct bidset *)prec->dset; |
1989 | + bidset *pdset = (bidset *)prec->dset; |
1990 | long status = 0; |
1991 | |
1992 | if (!prec->pact) { |
1993 | diff --git a/modules/database/src/std/rec/biRecord.dbd.pod b/modules/database/src/std/rec/biRecord.dbd.pod |
1994 | index 62bcf3b..a3b5ed3 100644 |
1995 | --- a/modules/database/src/std/rec/biRecord.dbd.pod |
1996 | +++ b/modules/database/src/std/rec/biRecord.dbd.pod |
1997 | @@ -163,6 +163,15 @@ these fields. |
1998 | =cut |
1999 | |
2000 | include "dbCommon.dbd" |
2001 | + % |
2002 | + %/* Declare Device Support Entry Table */ |
2003 | + %struct biRecord; |
2004 | + %typedef struct bidset { |
2005 | + % dset common; /*init_record returns: (-1,0)=>(failure,success)*/ |
2006 | + % long (*read_bi)(struct biRecord *prec);/*(0,2)=> success and convert, don't convert); if convert then raw value stored in rval */ |
2007 | + %} bidset; |
2008 | + %#define HAS_bidset |
2009 | + % |
2010 | field(INP,DBF_INLINK) { |
2011 | prompt("Input Specification") |
2012 | promptgroup("40 - Input") |
2013 | diff --git a/modules/database/src/std/rec/boRecord.c b/modules/database/src/std/rec/boRecord.c |
2014 | index 4cfe62d..94aa587 100644 |
2015 | --- a/modules/database/src/std/rec/boRecord.c |
2016 | +++ b/modules/database/src/std/rec/boRecord.c |
2017 | @@ -86,16 +86,6 @@ epicsExportAddress(int, boHIGHprecision); |
2018 | double boHIGHlimit = 100000; |
2019 | epicsExportAddress(double, boHIGHlimit); |
2020 | |
2021 | -struct bodset { /* binary output dset */ |
2022 | - long number; |
2023 | - DEVSUPFUN dev_report; |
2024 | - DEVSUPFUN init; |
2025 | - DEVSUPFUN init_record; /*returns:(0,2)=>(success,success no convert*/ |
2026 | - DEVSUPFUN get_ioint_info; |
2027 | - DEVSUPFUN write_bo;/*returns: (-1,0)=>(failure,success)*/ |
2028 | -}; |
2029 | - |
2030 | - |
2031 | /* control block for callback*/ |
2032 | typedef struct myCallback { |
2033 | epicsCallback callback; |
2034 | @@ -131,7 +121,7 @@ static void myCallbackFunc(epicsCallback *arg) |
2035 | static long init_record(struct dbCommon *pcommon,int pass) |
2036 | { |
2037 | struct boRecord *prec = (struct boRecord *)pcommon; |
2038 | - struct bodset *pdset = (struct bodset *) prec->dset; |
2039 | + bodset *pdset = (bodset *) prec->dset; |
2040 | unsigned short ival = 0; |
2041 | long status = 0; |
2042 | myCallback *pcallback; |
2043 | @@ -146,7 +136,7 @@ static long init_record(struct dbCommon *pcommon,int pass) |
2044 | } |
2045 | |
2046 | /* must have write_bo functions defined */ |
2047 | - if ((pdset->number < 5) || (pdset->write_bo == NULL)) { |
2048 | + if ((pdset->common.number < 5) || (pdset->write_bo == NULL)) { |
2049 | recGblRecordError(S_dev_missingSup, prec, "bo: init_record"); |
2050 | return S_dev_missingSup; |
2051 | } |
2052 | @@ -163,8 +153,8 @@ static long init_record(struct dbCommon *pcommon,int pass) |
2053 | callbackSetUser(pcallback, &pcallback->callback); |
2054 | pcallback->precord = (struct dbCommon *) prec; |
2055 | |
2056 | - if (pdset->init_record) { |
2057 | - status=(*pdset->init_record)(prec); |
2058 | + if (pdset->common.init_record) { |
2059 | + status=(*pdset->common.init_record)(pcommon); |
2060 | if(status==0) { |
2061 | if(prec->rval==0) prec->val = 0; |
2062 | else prec->val = 1; |
2063 | @@ -188,7 +178,7 @@ static long init_record(struct dbCommon *pcommon,int pass) |
2064 | static long process(struct dbCommon *pcommon) |
2065 | { |
2066 | struct boRecord *prec = (struct boRecord *)pcommon; |
2067 | - struct bodset *pdset = (struct bodset *)(prec->dset); |
2068 | + bodset *pdset = (bodset *)(prec->dset); |
2069 | long status=0; |
2070 | unsigned char pact=prec->pact; |
2071 | |
2072 | @@ -420,7 +410,7 @@ static void monitor(boRecord *prec) |
2073 | |
2074 | |
2075 | static long writeValue(boRecord *prec) |
2076 | { |
2077 | - struct bodset *pdset = (struct bodset *) prec->dset; |
2078 | + bodset *pdset = (bodset *) prec->dset; |
2079 | long status = 0; |
2080 | |
2081 | if (!prec->pact) { |
2082 | diff --git a/modules/database/src/std/rec/boRecord.dbd.pod b/modules/database/src/std/rec/boRecord.dbd.pod |
2083 | index 6b6d180..ad48070 100644 |
2084 | --- a/modules/database/src/std/rec/boRecord.dbd.pod |
2085 | +++ b/modules/database/src/std/rec/boRecord.dbd.pod |
2086 | @@ -210,6 +210,15 @@ information on these fields. |
2087 | =cut |
2088 | |
2089 | include "dbCommon.dbd" |
2090 | + % |
2091 | + %/* Declare Device Support Entry Table */ |
2092 | + %struct boRecord; |
2093 | + %typedef struct bodset { |
2094 | + % dset common; /*init_record returns:(0,2)=>(success,success no convert*/ |
2095 | + % long (*write_bo)(struct boRecord *prec); /*returns: (-1,0)=>(failure,success)*/ |
2096 | + %} bodset; |
2097 | + %#define HAS_bodset |
2098 | + % |
2099 | field(VAL,DBF_ENUM) { |
2100 | prompt("Current Value") |
2101 | promptgroup("50 - Output") |
2102 | diff --git a/modules/database/src/std/rec/calcRecord.c b/modules/database/src/std/rec/calcRecord.c |
2103 | index 12a58d1..d72792a 100644 |
2104 | --- a/modules/database/src/std/rec/calcRecord.c |
2105 | +++ b/modules/database/src/std/rec/calcRecord.c |
2106 | @@ -43,7 +43,7 @@ |
2107 | |
2108 | #define report NULL |
2109 | #define initialize NULL |
2110 | -static long init_record(struct dbCommon *prec, int pass); |
2111 | +static long init_record(struct dbCommon *pcommon, int pass); |
2112 | static long process(struct dbCommon *prec); |
2113 | static long special(DBADDR *paddr, int after); |
2114 | #define get_value NULL |
2115 | diff --git a/modules/database/src/std/rec/calcoutRecord.c b/modules/database/src/std/rec/calcoutRecord.c |
2116 | index d9f66af..75edcce 100644 |
2117 | --- a/modules/database/src/std/rec/calcoutRecord.c |
2118 | +++ b/modules/database/src/std/rec/calcoutRecord.c |
2119 | @@ -90,16 +90,6 @@ epicsExportAddress(int, calcoutODLYprecision); |
2120 | double calcoutODLYlimit = 100000; |
2121 | epicsExportAddress(double, calcoutODLYlimit); |
2122 | |
2123 | -typedef struct calcoutDSET { |
2124 | - long number; |
2125 | - DEVSUPFUN dev_report; |
2126 | - DEVSUPFUN init; |
2127 | - DEVSUPFUN init_record; |
2128 | - DEVSUPFUN get_ioint_info; |
2129 | - DEVSUPFUN write; |
2130 | -}calcoutDSET; |
2131 | - |
2132 | - |
2133 | /* To provide feedback to the user as to the connection status of the |
2134 | * links (.INxV and .OUTV), the following algorithm has been implemented ... |
2135 | * |
2136 | @@ -142,7 +132,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2137 | double *pvalue; |
2138 | epicsEnum16 *plinkValid; |
2139 | short error_number; |
2140 | - calcoutDSET *pcalcoutDSET; |
2141 | + calcoutdset *pcalcoutDSET; |
2142 | rpvtStruct *prpvt; |
2143 | |
2144 | if (pass == 0) { |
2145 | @@ -150,13 +140,13 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2146 | return 0; |
2147 | } |
2148 | |
2149 | - if (!(pcalcoutDSET = (calcoutDSET *)prec->dset)) { |
2150 | + if (!(pcalcoutDSET = (calcoutdset *)prec->dset)) { |
2151 | recGblRecordError(S_dev_noDSET, (void *)prec, "calcout:init_record"); |
2152 | return S_dev_noDSET; |
2153 | } |
2154 | |
2155 | /* must have write defined */ |
2156 | - if ((pcalcoutDSET->number < 5) || (pcalcoutDSET->write ==NULL)) { |
2157 | + if ((pcalcoutDSET->common.number < 5) || (pcalcoutDSET->write ==NULL)) { |
2158 | recGblRecordError(S_dev_missingSup, (void *)prec, "calcout:init_record"); |
2159 | return S_dev_missingSup; |
2160 | } |
2161 | @@ -221,7 +211,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2162 | |
2163 | prec->epvt = eventNameToHandle(prec->oevt); |
2164 | |
2165 | - if (pcalcoutDSET->init_record) pcalcoutDSET->init_record(prec); |
2166 | + if (pcalcoutDSET->common.init_record) pcalcoutDSET->common.init_record(pcommon); |
2167 | prec->pval = prec->val; |
2168 | prec->mlst = prec->val; |
2169 | prec->alst = prec->val; |
2170 | @@ -768,7 +758,7 @@ static void checkLinks(calcoutRecord *prec) |
2171 | |
2172 | |
2173 | static long writeValue(calcoutRecord *prec) |
2174 | { |
2175 | - calcoutDSET *pcalcoutDSET = (calcoutDSET *)prec->dset; |
2176 | + calcoutdset *pcalcoutDSET = (calcoutdset *)prec->dset; |
2177 | |
2178 | |
2179 | if (!pcalcoutDSET || !pcalcoutDSET->write) { |
2180 | diff --git a/modules/database/src/std/rec/calcoutRecord.dbd.pod b/modules/database/src/std/rec/calcoutRecord.dbd.pod |
2181 | index 176f1d2..ef329f5 100644 |
2182 | --- a/modules/database/src/std/rec/calcoutRecord.dbd.pod |
2183 | +++ b/modules/database/src/std/rec/calcoutRecord.dbd.pod |
2184 | @@ -659,6 +659,14 @@ manner for the VAL field. |
2185 | =cut |
2186 | |
2187 | include "dbCommon.dbd" |
2188 | + %/* Declare Device Support Entry Table */ |
2189 | + %struct calcoutRecord; |
2190 | + %typedef struct calcoutdset { |
2191 | + % dset common; |
2192 | + % long (*write)(struct calcoutRecord *prec); |
2193 | + %} calcoutdset; |
2194 | + %#define HAS_calcoutdset |
2195 | + % |
2196 | field(RPVT,DBF_NOACCESS) { |
2197 | prompt("Record Private") |
2198 | special(SPC_NOMOD) |
2199 | diff --git a/modules/database/src/std/rec/eventRecord.c b/modules/database/src/std/rec/eventRecord.c |
2200 | index c10c902..0d03cf3 100644 |
2201 | --- a/modules/database/src/std/rec/eventRecord.c |
2202 | +++ b/modules/database/src/std/rec/eventRecord.c |
2203 | @@ -80,14 +80,6 @@ rset eventRSET={ |
2204 | }; |
2205 | epicsExportAddress(rset,eventRSET); |
2206 | |
2207 | -struct eventdset { /* event input dset */ |
2208 | - long number; |
2209 | - DEVSUPFUN dev_report; |
2210 | - DEVSUPFUN init; |
2211 | - DEVSUPFUN init_record; /*returns: (-1,0)=>(failure,success)*/ |
2212 | - DEVSUPFUN get_ioint_info; |
2213 | - DEVSUPFUN read_event;/*(0)=> success */ |
2214 | -}; |
2215 | static void monitor(eventRecord *); |
2216 | static long readValue(eventRecord *); |
2217 | |
2218 | @@ -95,7 +87,7 @@ static long readValue(eventRecord *); |
2219 | static long init_record(struct dbCommon *pcommon, int pass) |
2220 | { |
2221 | struct eventRecord *prec = (struct eventRecord *)pcommon; |
2222 | - struct eventdset *pdset; |
2223 | + eventdset *pdset; |
2224 | long status=0; |
2225 | |
2226 | if (pass == 0) return 0; |
2227 | @@ -103,8 +95,8 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2228 | recGblInitSimm(pcommon, &prec->sscn, &prec->oldsimm, &prec->simm, &prec->siml); |
2229 | recGblInitConstantLink(&prec->siol, DBF_STRING, &prec->sval); |
2230 | |
2231 | - if( (pdset=(struct eventdset *)(prec->dset)) && (pdset->init_record) ) |
2232 | - status=(*pdset->init_record)(prec); |
2233 | + if( (pdset=(eventdset *)(prec->dset)) && (pdset->common.init_record) ) |
2234 | + status=(*pdset->common.init_record)(pcommon); |
2235 | |
2236 | prec->epvt = eventNameToHandle(prec->val); |
2237 | |
2238 | @@ -114,11 +106,11 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2239 | static long process(struct dbCommon *pcommon) |
2240 | { |
2241 | struct eventRecord *prec = (struct eventRecord *)pcommon; |
2242 | - struct eventdset *pdset = (struct eventdset *)(prec->dset); |
2243 | + eventdset *pdset = (eventdset *)(prec->dset); |
2244 | long status=0; |
2245 | unsigned char pact=prec->pact; |
2246 | |
2247 | - if((pdset!=NULL) && (pdset->number >= 5) && pdset->read_event ) |
2248 | + if((pdset!=NULL) && (pdset->common.number >= 5) && pdset->read_event ) |
2249 | status=readValue(prec); /* read the new value */ |
2250 | /* check if device support set pact */ |
2251 | if ( !pact && prec->pact ) return(0); |
2252 | @@ -173,7 +165,7 @@ static void monitor(eventRecord *prec) |
2253 | |
2254 | |
2255 | static long readValue(eventRecord *prec) |
2256 | { |
2257 | - struct eventdset *pdset = (struct eventdset *) prec->dset; |
2258 | + eventdset *pdset = (eventdset *) prec->dset; |
2259 | long status = 0; |
2260 | |
2261 | if (!prec->pact) { |
2262 | diff --git a/modules/database/src/std/rec/eventRecord.dbd.pod b/modules/database/src/std/rec/eventRecord.dbd.pod |
2263 | index c783e98..4004056 100644 |
2264 | --- a/modules/database/src/std/rec/eventRecord.dbd.pod |
2265 | +++ b/modules/database/src/std/rec/eventRecord.dbd.pod |
2266 | @@ -44,6 +44,16 @@ simulation mode parameters |
2267 | recordtype(event) { |
2268 | include "dbCommon.dbd" |
2269 | |
2270 | + % |
2271 | + %/* Declare Device Support Entry Table */ |
2272 | + %struct eventRecord; |
2273 | + %typedef struct eventdset { |
2274 | + % dset common; /*init_record returns: (-1,0)=>(failure,success)*/ |
2275 | + % long (*read_event)(struct eventRecord *prec); /*(0)=> success */ |
2276 | + %} eventdset; |
2277 | + %#define HAS_eventdset |
2278 | + % |
2279 | + |
2280 | =head3 Scan Parameters |
2281 | |
2282 | The event record has the standard fields for specifying under what circumstances |
2283 | diff --git a/modules/database/src/std/rec/histogramRecord.c b/modules/database/src/std/rec/histogramRecord.c |
2284 | index 82fc91a..1a42636 100644 |
2285 | --- a/modules/database/src/std/rec/histogramRecord.c |
2286 | +++ b/modules/database/src/std/rec/histogramRecord.c |
2287 | @@ -87,17 +87,6 @@ epicsExportAddress(rset,histogramRSET); |
2288 | int histogramSDELprecision = 2; |
2289 | epicsExportAddress(int, histogramSDELprecision); |
2290 | |
2291 | -struct histogramdset { /* histogram input dset */ |
2292 | - long number; |
2293 | - DEVSUPFUN dev_report; |
2294 | - DEVSUPFUN init; |
2295 | - DEVSUPFUN init_record; /*returns: (-1,0)=>(failure,success)*/ |
2296 | - DEVSUPFUN get_ioint_info; |
2297 | - DEVSUPFUN read_histogram;/*(0,2)=> success and add_count, don't add_count)*/ |
2298 | - /* if add_count then sgnl added to array */ |
2299 | - DEVSUPFUN special_linconv; |
2300 | -}; |
2301 | - |
2302 | /* control block for callback*/ |
2303 | typedef struct myCallback { |
2304 | epicsCallback callback; |
2305 | @@ -165,7 +154,7 @@ static long wdogInit(histogramRecord *prec) |
2306 | static long init_record(struct dbCommon *pcommon, int pass) |
2307 | { |
2308 | struct histogramRecord *prec = (struct histogramRecord *)pcommon; |
2309 | - struct histogramdset *pdset; |
2310 | + histogramdset *pdset; |
2311 | |
2312 | if (pass == 0) { |
2313 | /* allocate space for histogram array */ |
2314 | @@ -186,21 +175,21 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2315 | recGblInitConstantLink(&prec->siol, DBF_DOUBLE, &prec->sval); |
2316 | |
2317 | /* must have device support defined */ |
2318 | - pdset = (struct histogramdset *) prec->dset; |
2319 | + pdset = (histogramdset *) prec->dset; |
2320 | if (!pdset) { |
2321 | recGblRecordError(S_dev_noDSET, prec, "histogram: init_record"); |
2322 | return S_dev_noDSET; |
2323 | } |
2324 | |
2325 | /* must have read_histogram function defined */ |
2326 | - if (pdset->number < 6 || !pdset->read_histogram) { |
2327 | + if (pdset->common.number < 6 || !pdset->read_histogram) { |
2328 | recGblRecordError(S_dev_missingSup, prec, "histogram: init_record"); |
2329 | return S_dev_missingSup; |
2330 | } |
2331 | |
2332 | /* call device support init_record */ |
2333 | - if (pdset->init_record) { |
2334 | - long status = pdset->init_record(prec); |
2335 | + if (pdset->common.init_record) { |
2336 | + long status = pdset->common.init_record(pcommon); |
2337 | |
2338 | if (status) |
2339 | return status; |
2340 | @@ -211,7 +200,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2341 | static long process(struct dbCommon *pcommon) |
2342 | { |
2343 | struct histogramRecord *prec = (struct histogramRecord *)pcommon; |
2344 | - struct histogramdset *pdset = (struct histogramdset *) prec->dset; |
2345 | + histogramdset *pdset = (histogramdset *) prec->dset; |
2346 | int pact = prec->pact; |
2347 | long status; |
2348 | |
2349 | @@ -380,7 +369,7 @@ static long clear_histogram(histogramRecord *prec) |
2350 | |
2351 | static long readValue(histogramRecord *prec) |
2352 | { |
2353 | - struct histogramdset *pdset = (struct histogramdset *) prec->dset; |
2354 | + histogramdset *pdset = (histogramdset *) prec->dset; |
2355 | long status = 0; |
2356 | |
2357 | if (!prec->pact) { |
2358 | diff --git a/modules/database/src/std/rec/histogramRecord.dbd b/modules/database/src/std/rec/histogramRecord.dbd |
2359 | index 304038b..e615d29 100644 |
2360 | --- a/modules/database/src/std/rec/histogramRecord.dbd |
2361 | +++ b/modules/database/src/std/rec/histogramRecord.dbd |
2362 | @@ -14,6 +14,16 @@ menu(histogramCMD) { |
2363 | } |
2364 | recordtype(histogram) { |
2365 | include "dbCommon.dbd" |
2366 | + % |
2367 | + %/* Declare Device Support Entry Table */ |
2368 | + %struct histogramRecord; |
2369 | + %typedef struct histogramdset { |
2370 | + % dset common; /*init_record returns: (-1,0)=>(failure,success)*/ |
2371 | + % long (*read_histogram)(struct histogramRecord *prec); /*(0,2)=> success and add_count, don't add_count); if add_count then sgnl added to array*/ |
2372 | + % long (*special_linconv)(struct histogramRecord *prec, int after); |
2373 | + %} histogramdset; |
2374 | + %#define HAS_histogramdset |
2375 | + % |
2376 | field(VAL,DBF_NOACCESS) { |
2377 | prompt("Value") |
2378 | asl(ASL0) |
2379 | diff --git a/modules/database/src/std/rec/int64inRecord.c b/modules/database/src/std/rec/int64inRecord.c |
2380 | index b802f12..cb4d853 100644 |
2381 | --- a/modules/database/src/std/rec/int64inRecord.c |
2382 | +++ b/modules/database/src/std/rec/int64inRecord.c |
2383 | @@ -91,7 +91,7 @@ static long readValue(int64inRecord *prec); |
2384 | static long init_record(dbCommon *pcommon, int pass) |
2385 | { |
2386 | int64inRecord *prec = (int64inRecord*)pcommon; |
2387 | - struct int64indset *pdset; |
2388 | + int64indset *pdset; |
2389 | long status; |
2390 | |
2391 | if (pass == 0) return 0; |
2392 | @@ -100,7 +100,7 @@ static long init_record(dbCommon *pcommon, int pass) |
2393 | recGblInitSimm(pcommon, &prec->sscn, &prec->oldsimm, &prec->simm, &prec->siml); |
2394 | recGblInitConstantLink(&prec->siol, DBF_INT64, &prec->sval); |
2395 | |
2396 | - if(!(pdset = (struct int64indset *)(prec->dset))) { |
2397 | + if(!(pdset = (int64indset *)(prec->dset))) { |
2398 | recGblRecordError(S_dev_noDSET,(void *)prec,"int64in: init_record"); |
2399 | return(S_dev_noDSET); |
2400 | } |
2401 | @@ -121,7 +121,7 @@ static long init_record(dbCommon *pcommon, int pass) |
2402 | static long process(dbCommon *pcommon) |
2403 | { |
2404 | int64inRecord *prec = (int64inRecord*)pcommon; |
2405 | - struct int64indset *pdset = (struct int64indset *)(prec->dset); |
2406 | + int64indset *pdset = (int64indset *)(prec->dset); |
2407 | long status; |
2408 | unsigned char pact=prec->pact; |
2409 | epicsTimeStamp timeLast; |
2410 | @@ -389,7 +389,7 @@ static void monitor(int64inRecord *prec) |
2411 | |
2412 | |
2413 | static long readValue(int64inRecord *prec) |
2414 | { |
2415 | - struct int64indset *pdset = (struct int64indset *) prec->dset; |
2416 | + int64indset *pdset = (int64indset *) prec->dset; |
2417 | long status = 0; |
2418 | |
2419 | if (!prec->pact) { |
2420 | diff --git a/modules/database/src/std/rec/int64outRecord.c b/modules/database/src/std/rec/int64outRecord.c |
2421 | index cbacb27..c90518e 100644 |
2422 | --- a/modules/database/src/std/rec/int64outRecord.c |
2423 | +++ b/modules/database/src/std/rec/int64outRecord.c |
2424 | @@ -89,14 +89,14 @@ static void convert(int64outRecord *prec, epicsInt64 value); |
2425 | static long init_record(dbCommon *pcommon, int pass) |
2426 | { |
2427 | int64outRecord *prec = (int64outRecord*)pcommon; |
2428 | - struct int64outdset *pdset; |
2429 | + int64outdset *pdset; |
2430 | long status=0; |
2431 | |
2432 | if (pass == 0) return 0; |
2433 | |
2434 | recGblInitSimm(pcommon, &prec->sscn, &prec->oldsimm, &prec->simm, &prec->siml); |
2435 | |
2436 | - if(!(pdset = (struct int64outdset *)(prec->dset))) { |
2437 | + if(!(pdset = (int64outdset *)(prec->dset))) { |
2438 | recGblRecordError(S_dev_noDSET,(void *)prec,"int64out: init_record"); |
2439 | return(S_dev_noDSET); |
2440 | } |
2441 | @@ -121,7 +121,7 @@ static long init_record(dbCommon *pcommon, int pass) |
2442 | static long process(dbCommon *pcommon) |
2443 | { |
2444 | int64outRecord *prec = (int64outRecord*)pcommon; |
2445 | - struct int64outdset *pdset = (struct int64outdset *)(prec->dset); |
2446 | + int64outdset *pdset = (int64outdset *)(prec->dset); |
2447 | long status=0; |
2448 | epicsInt64 value; |
2449 | unsigned char pact=prec->pact; |
2450 | @@ -369,7 +369,7 @@ static void monitor(int64outRecord *prec) |
2451 | |
2452 | static long writeValue(int64outRecord *prec) |
2453 | { |
2454 | - struct int64outdset *pdset = (struct int64outdset *) prec->dset; |
2455 | + int64outdset *pdset = (int64outdset *) prec->dset; |
2456 | long status = 0; |
2457 | |
2458 | if (!prec->pact) { |
2459 | diff --git a/modules/database/src/std/rec/longinRecord.c b/modules/database/src/std/rec/longinRecord.c |
2460 | index d524641..299cfb8 100644 |
2461 | --- a/modules/database/src/std/rec/longinRecord.c |
2462 | +++ b/modules/database/src/std/rec/longinRecord.c |
2463 | @@ -83,15 +83,6 @@ rset longinRSET={ |
2464 | }; |
2465 | epicsExportAddress(rset,longinRSET); |
2466 | |
2467 | - |
2468 | -struct longindset { /* longin input dset */ |
2469 | - long number; |
2470 | - DEVSUPFUN dev_report; |
2471 | - DEVSUPFUN init; |
2472 | - DEVSUPFUN init_record; /*returns: (-1,0)=>(failure,success)*/ |
2473 | - DEVSUPFUN get_ioint_info; |
2474 | - DEVSUPFUN read_longin; /*returns: (-1,0)=>(failure,success)*/ |
2475 | -}; |
2476 | static void checkAlarms(longinRecord *prec, epicsTimeStamp *timeLast); |
2477 | static void monitor(longinRecord *prec); |
2478 | static long readValue(longinRecord *prec); |
2479 | @@ -100,7 +91,7 @@ static long readValue(longinRecord *prec); |
2480 | static long init_record(struct dbCommon *pcommon, int pass) |
2481 | { |
2482 | struct longinRecord *prec = (struct longinRecord *)pcommon; |
2483 | - struct longindset *pdset = (struct longindset *) prec->dset; |
2484 | + longindset *pdset = (longindset *) prec->dset; |
2485 | |
2486 | if (pass == 0) return 0; |
2487 | |
2488 | @@ -113,13 +104,13 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2489 | } |
2490 | |
2491 | /* must have read_longin function defined */ |
2492 | - if ((pdset->number < 5) || (pdset->read_longin == NULL)) { |
2493 | + if ((pdset->common.number < 5) || (pdset->read_longin == NULL)) { |
2494 | recGblRecordError(S_dev_missingSup, prec, "longin: init_record"); |
2495 | return S_dev_missingSup; |
2496 | } |
2497 | |
2498 | - if (pdset->init_record) { |
2499 | - long status = pdset->init_record(prec); |
2500 | + if (pdset->common.init_record) { |
2501 | + long status = pdset->common.init_record(pcommon); |
2502 | |
2503 | if (status) |
2504 | return status; |
2505 | @@ -134,7 +125,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2506 | static long process(struct dbCommon *pcommon) |
2507 | { |
2508 | struct longinRecord *prec = (struct longinRecord *)pcommon; |
2509 | - struct longindset *pdset = (struct longindset *)(prec->dset); |
2510 | + longindset *pdset = (longindset *)(prec->dset); |
2511 | long status; |
2512 | unsigned char pact=prec->pact; |
2513 | epicsTimeStamp timeLast; |
2514 | @@ -405,7 +396,7 @@ static void monitor(longinRecord *prec) |
2515 | |
2516 | |
2517 | static long readValue(longinRecord *prec) |
2518 | { |
2519 | - struct longindset *pdset = (struct longindset *) prec->dset; |
2520 | + longindset *pdset = (longindset *) prec->dset; |
2521 | long status = 0; |
2522 | |
2523 | if (!prec->pact) { |
2524 | diff --git a/modules/database/src/std/rec/longinRecord.dbd.pod b/modules/database/src/std/rec/longinRecord.dbd.pod |
2525 | index cf2a3a3..51f74bc 100644 |
2526 | --- a/modules/database/src/std/rec/longinRecord.dbd.pod |
2527 | +++ b/modules/database/src/std/rec/longinRecord.dbd.pod |
2528 | @@ -305,6 +305,15 @@ sets UDF to FALSE. read_longin returns the status of C<recGblGetLinkValue>. |
2529 | =cut |
2530 | |
2531 | include "dbCommon.dbd" |
2532 | + % |
2533 | + %/* Declare Device Support Entry Table */ |
2534 | + %struct longinRecord; |
2535 | + %typedef struct longindset { |
2536 | + % dset common; /*init_record returns: (-1,0)=>(failure,success)*/ |
2537 | + % long (*read_longin)(struct longinRecord *prec); /*returns: (-1,0)=>(failure,success)*/ |
2538 | + %} longindset; |
2539 | + %#define HAS_longindset |
2540 | + % |
2541 | field(VAL,DBF_LONG) { |
2542 | prompt("Current value") |
2543 | promptgroup("40 - Input") |
2544 | diff --git a/modules/database/src/std/rec/longoutRecord.c b/modules/database/src/std/rec/longoutRecord.c |
2545 | index 06e3b6e..238fb69 100644 |
2546 | --- a/modules/database/src/std/rec/longoutRecord.c |
2547 | +++ b/modules/database/src/std/rec/longoutRecord.c |
2548 | @@ -80,15 +80,6 @@ rset longoutRSET={ |
2549 | }; |
2550 | epicsExportAddress(rset,longoutRSET); |
2551 | |
2552 | - |
2553 | -struct longoutdset { /* longout input dset */ |
2554 | - long number; |
2555 | - DEVSUPFUN dev_report; |
2556 | - DEVSUPFUN init; |
2557 | - DEVSUPFUN init_record; /*returns: (-1,0)=>(failure,success)*/ |
2558 | - DEVSUPFUN get_ioint_info; |
2559 | - DEVSUPFUN write_longout;/*(-1,0)=>(failure,success*/ |
2560 | -}; |
2561 | static void checkAlarms(longoutRecord *prec); |
2562 | static void monitor(longoutRecord *prec); |
2563 | static long writeValue(longoutRecord *prec); |
2564 | @@ -97,7 +88,7 @@ static void convert(longoutRecord *prec, epicsInt32 value); |
2565 | static long init_record(struct dbCommon *pcommon, int pass) |
2566 | { |
2567 | struct longoutRecord *prec = (struct longoutRecord *)pcommon; |
2568 | - struct longoutdset *pdset = (struct longoutdset *) prec->dset; |
2569 | + longoutdset *pdset = (longoutdset *) prec->dset; |
2570 | |
2571 | if (pass == 0) return 0; |
2572 | |
2573 | @@ -109,7 +100,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2574 | } |
2575 | |
2576 | /* must have write_longout functions defined */ |
2577 | - if ((pdset->number < 5) || (pdset->write_longout == NULL)) { |
2578 | + if ((pdset->common.number < 5) || (pdset->write_longout == NULL)) { |
2579 | recGblRecordError(S_dev_missingSup, prec, "longout: init_record"); |
2580 | return S_dev_missingSup; |
2581 | } |
2582 | @@ -117,8 +108,8 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2583 | if (recGblInitConstantLink(&prec->dol, DBF_LONG, &prec->val)) |
2584 | prec->udf=FALSE; |
2585 | |
2586 | - if (pdset->init_record) { |
2587 | - long status = pdset->init_record(prec); |
2588 | + if (pdset->common.init_record) { |
2589 | + long status = pdset->common.init_record(pcommon); |
2590 | |
2591 | if (status) |
2592 | return status; |
2593 | @@ -133,7 +124,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2594 | static long process(struct dbCommon *pcommon) |
2595 | { |
2596 | struct longoutRecord *prec = (struct longoutRecord *)pcommon; |
2597 | - struct longoutdset *pdset = (struct longoutdset *)(prec->dset); |
2598 | + longoutdset *pdset = (longoutdset *)(prec->dset); |
2599 | long status=0; |
2600 | epicsInt32 value; |
2601 | unsigned char pact=prec->pact; |
2602 | @@ -382,7 +373,7 @@ static void monitor(longoutRecord *prec) |
2603 | |
2604 | |
2605 | static long writeValue(longoutRecord *prec) |
2606 | { |
2607 | - struct longoutdset *pdset = (struct longoutdset *) prec->dset; |
2608 | + longoutdset *pdset = (longoutdset *) prec->dset; |
2609 | long status = 0; |
2610 | |
2611 | if (!prec->pact) { |
2612 | diff --git a/modules/database/src/std/rec/longoutRecord.dbd.pod b/modules/database/src/std/rec/longoutRecord.dbd.pod |
2613 | index 276f304..f5e8b75 100644 |
2614 | --- a/modules/database/src/std/rec/longoutRecord.dbd.pod |
2615 | +++ b/modules/database/src/std/rec/longoutRecord.dbd.pod |
2616 | @@ -96,6 +96,15 @@ and database links. |
2617 | =cut |
2618 | |
2619 | include "dbCommon.dbd" |
2620 | + % |
2621 | + %/* Declare Device Support Entry Table */ |
2622 | + %struct longoutRecord; |
2623 | + %typedef struct longoutdset { |
2624 | + % dset common; /*init_record returns: (-1,0)=>(failure,success)*/ |
2625 | + % long (*write_longout)(struct longoutRecord *prec); /*(-1,0)=>(failure,success*/ |
2626 | + %} longoutdset; |
2627 | + %#define HAS_longoutdset |
2628 | + % |
2629 | field(VAL,DBF_LONG) { |
2630 | prompt("Desired Output") |
2631 | promptgroup("50 - Output") |
2632 | diff --git a/modules/database/src/std/rec/lsiRecord.c b/modules/database/src/std/rec/lsiRecord.c |
2633 | index 96e870b..6d5b9db 100644 |
2634 | --- a/modules/database/src/std/rec/lsiRecord.c |
2635 | +++ b/modules/database/src/std/rec/lsiRecord.c |
2636 | @@ -221,7 +221,7 @@ static void monitor(lsiRecord *prec) |
2637 | |
2638 | static long readValue(lsiRecord *prec) |
2639 | { |
2640 | - struct lsidset *pdset = (struct lsidset *) prec->dset; |
2641 | + lsidset *pdset = (lsidset *) prec->dset; |
2642 | long status = 0; |
2643 | |
2644 | if (!prec->pact) { |
2645 | diff --git a/modules/database/src/std/rec/mbbiDirectRecord.c b/modules/database/src/std/rec/mbbiDirectRecord.c |
2646 | index 88d805c..d351511 100644 |
2647 | --- a/modules/database/src/std/rec/mbbiDirectRecord.c |
2648 | +++ b/modules/database/src/std/rec/mbbiDirectRecord.c |
2649 | @@ -81,15 +81,6 @@ rset mbbiDirectRSET={ |
2650 | }; |
2651 | epicsExportAddress(rset,mbbiDirectRSET); |
2652 | |
2653 | -struct mbbidset { /* multi bit binary input dset */ |
2654 | - long number; |
2655 | - DEVSUPFUN dev_report; |
2656 | - DEVSUPFUN init; |
2657 | - DEVSUPFUN init_record; /*returns: (-1,0)=>(failure, success)*/ |
2658 | - DEVSUPFUN get_ioint_info; |
2659 | - DEVSUPFUN read_mbbi; /*returns: (0,2)=>(success, success no convert)*/ |
2660 | -}; |
2661 | - |
2662 | static void monitor(mbbiDirectRecord *); |
2663 | static long readValue(mbbiDirectRecord *); |
2664 | |
2665 | @@ -98,7 +89,7 @@ static long readValue(mbbiDirectRecord *); |
2666 | static long init_record(struct dbCommon *pcommon, int pass) |
2667 | { |
2668 | struct mbbiDirectRecord *prec = (struct mbbiDirectRecord *)pcommon; |
2669 | - struct mbbidset *pdset = (struct mbbidset *) prec->dset; |
2670 | + mbbidirectdset *pdset = (mbbidirectdset *) prec->dset; |
2671 | long status = 0; |
2672 | |
2673 | if (pass == 0) return 0; |
2674 | @@ -108,7 +99,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2675 | return S_dev_noDSET; |
2676 | } |
2677 | |
2678 | - if ((pdset->number < 5) || (pdset->read_mbbi == NULL)) { |
2679 | + if ((pdset->common.number < 5) || (pdset->read_mbbi == NULL)) { |
2680 | recGblRecordError(S_dev_missingSup, prec, "mbbiDirect: init_record"); |
2681 | return S_dev_missingSup; |
2682 | } |
2683 | @@ -120,8 +111,8 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2684 | if (prec->mask == 0 && prec->nobt <= 32) |
2685 | prec->mask = ((epicsUInt64) 1u << prec->nobt) - 1; |
2686 | |
2687 | - if (pdset->init_record) { |
2688 | - status = pdset->init_record(prec); |
2689 | + if (pdset->common.init_record) { |
2690 | + status = pdset->common.init_record(pcommon); |
2691 | if (status == 0) { |
2692 | epicsUInt32 val = prec->val; |
2693 | epicsUInt8 *pBn = &prec->b0; |
2694 | @@ -141,7 +132,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2695 | static long process(struct dbCommon *pcommon) |
2696 | { |
2697 | struct mbbiDirectRecord *prec = (struct mbbiDirectRecord *)pcommon; |
2698 | - struct mbbidset *pdset = (struct mbbidset *) prec->dset; |
2699 | + mbbidirectdset *pdset = (mbbidirectdset *) prec->dset; |
2700 | long status; |
2701 | int pact = prec->pact; |
2702 | |
2703 | @@ -248,7 +239,7 @@ static void monitor(mbbiDirectRecord *prec) |
2704 | |
2705 | static long readValue(mbbiDirectRecord *prec) |
2706 | { |
2707 | - struct mbbidset *pdset = (struct mbbidset *) prec->dset; |
2708 | + mbbidirectdset *pdset = (mbbidirectdset *) prec->dset; |
2709 | long status = 0; |
2710 | |
2711 | if (!prec->pact) { |
2712 | diff --git a/modules/database/src/std/rec/mbbiDirectRecord.dbd.pod b/modules/database/src/std/rec/mbbiDirectRecord.dbd.pod |
2713 | index 5b1c4da..fa5d40f 100644 |
2714 | --- a/modules/database/src/std/rec/mbbiDirectRecord.dbd.pod |
2715 | +++ b/modules/database/src/std/rec/mbbiDirectRecord.dbd.pod |
2716 | @@ -85,6 +85,14 @@ description (DESC) fields. |
2717 | =cut |
2718 | |
2719 | include "dbCommon.dbd" |
2720 | + %/* Declare Device Support Entry Table */ |
2721 | + %struct mbbiDirectRecord; |
2722 | + %typedef struct mbbidirectdset { |
2723 | + % dset common; /* init_record returns: (-1,0) => (failure, success)*/ |
2724 | + % long (*read_mbbi)(struct mbbiDirectRecord *prec); /* (0, 2) => (success, success no convert)*/ |
2725 | + %} mbbidirectdset; |
2726 | + %#define HAS_mbbidirectdset |
2727 | + % |
2728 | field(VAL,DBF_LONG) { |
2729 | prompt("Current Value") |
2730 | promptgroup("40 - Input") |
2731 | diff --git a/modules/database/src/std/rec/mbbiRecord.c b/modules/database/src/std/rec/mbbiRecord.c |
2732 | index 0202594..ba24d52 100644 |
2733 | --- a/modules/database/src/std/rec/mbbiRecord.c |
2734 | +++ b/modules/database/src/std/rec/mbbiRecord.c |
2735 | @@ -83,15 +83,6 @@ rset mbbiRSET = { |
2736 | }; |
2737 | epicsExportAddress(rset,mbbiRSET); |
2738 | |
2739 | -struct mbbidset { /* multi bit binary input dset */ |
2740 | - long number; |
2741 | - DEVSUPFUN dev_report; |
2742 | - DEVSUPFUN init; |
2743 | - DEVSUPFUN init_record; /* returns: (-1,0) => (failure, success)*/ |
2744 | - DEVSUPFUN get_ioint_info; |
2745 | - DEVSUPFUN read_mbbi;/* (0, 2) => (success, success no convert)*/ |
2746 | -}; |
2747 | - |
2748 | static void checkAlarms(mbbiRecord *, epicsTimeStamp *); |
2749 | static void monitor(mbbiRecord *); |
2750 | static long readValue(mbbiRecord *); |
2751 | @@ -115,18 +106,17 @@ static void init_common(mbbiRecord *prec) |
2752 | static long init_record(struct dbCommon *pcommon, int pass) |
2753 | { |
2754 | struct mbbiRecord *prec = (struct mbbiRecord *)pcommon; |
2755 | - struct mbbidset *pdset = (struct mbbidset *) prec->dset; |
2756 | + mbbidset *pdset = (mbbidset *) prec->dset; |
2757 | long status = 0; |
2758 | |
2759 | if (pass == 0) return 0; |
2760 | |
2761 | - pdset = (struct mbbidset *) prec->dset; |
2762 | if (!pdset) { |
2763 | recGblRecordError(S_dev_noDSET, prec, "mbbi: init_record"); |
2764 | return S_dev_noDSET; |
2765 | } |
2766 | |
2767 | - if ((pdset->number < 5) || (pdset->read_mbbi == NULL)) { |
2768 | + if ((pdset->common.number < 5) || (pdset->read_mbbi == NULL)) { |
2769 | recGblRecordError(S_dev_missingSup, prec, "mbbi: init_record"); |
2770 | return S_dev_missingSup; |
2771 | } |
2772 | @@ -138,8 +128,8 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2773 | if (prec->mask == 0 && prec->nobt <= 32) |
2774 | prec->mask = ((epicsUInt64) 1u << prec->nobt) - 1; |
2775 | |
2776 | - if (pdset->init_record) |
2777 | - status = pdset->init_record(prec); |
2778 | + if (pdset->common.init_record) |
2779 | + status = pdset->common.init_record(pcommon); |
2780 | |
2781 | init_common(prec); |
2782 | |
2783 | @@ -152,7 +142,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2784 | static long process(struct dbCommon *pcommon) |
2785 | { |
2786 | struct mbbiRecord *prec = (struct mbbiRecord *)pcommon; |
2787 | - struct mbbidset *pdset = (struct mbbidset *) prec->dset; |
2788 | + mbbidset *pdset = (mbbidset *) prec->dset; |
2789 | long status; |
2790 | int pact = prec->pact; |
2791 | epicsTimeStamp timeLast; |
2792 | @@ -380,7 +370,7 @@ static void monitor(mbbiRecord *prec) |
2793 | |
2794 | static long readValue(mbbiRecord *prec) |
2795 | { |
2796 | - struct mbbidset *pdset = (struct mbbidset *) prec->dset; |
2797 | + mbbidset *pdset = (mbbidset *) prec->dset; |
2798 | long status = 0; |
2799 | |
2800 | if (!prec->pact) { |
2801 | diff --git a/modules/database/src/std/rec/mbbiRecord.dbd.pod b/modules/database/src/std/rec/mbbiRecord.dbd.pod |
2802 | index b4ab1b4..5f0e08e 100644 |
2803 | --- a/modules/database/src/std/rec/mbbiRecord.dbd.pod |
2804 | +++ b/modules/database/src/std/rec/mbbiRecord.dbd.pod |
2805 | @@ -119,6 +119,14 @@ description (DESC) fields. |
2806 | =cut |
2807 | |
2808 | include "dbCommon.dbd" |
2809 | + %/* Declare Device Support Entry Table */ |
2810 | + %struct mbbiRecord; |
2811 | + %typedef struct mbbidset { |
2812 | + % dset common; /* init_record returns: (-1,0) => (failure, success)*/ |
2813 | + % long (*read_mbbi)(struct mbbiRecord *prec); /* (0, 2) => (success, success no convert)*/ |
2814 | + %} mbbidset; |
2815 | + %#define HAS_mbbidset |
2816 | + % |
2817 | field(VAL,DBF_ENUM) { |
2818 | prompt("Current Value") |
2819 | promptgroup("40 - Input") |
2820 | diff --git a/modules/database/src/std/rec/mbboDirectRecord.c b/modules/database/src/std/rec/mbboDirectRecord.c |
2821 | index 5c2dd94..2f92819 100644 |
2822 | --- a/modules/database/src/std/rec/mbboDirectRecord.c |
2823 | +++ b/modules/database/src/std/rec/mbboDirectRecord.c |
2824 | @@ -81,16 +81,6 @@ rset mbboDirectRSET = { |
2825 | }; |
2826 | epicsExportAddress(rset, mbboDirectRSET); |
2827 | |
2828 | -struct mbbodset { /* multi bit binary output dset */ |
2829 | - long number; |
2830 | - DEVSUPFUN dev_report; |
2831 | - DEVSUPFUN init; |
2832 | - DEVSUPFUN init_record; /*returns: (0, 2)=>(success, success no convert)*/ |
2833 | - DEVSUPFUN get_ioint_info; |
2834 | - DEVSUPFUN write_mbbo; /*returns: (0, 2)=>(success, success no convert)*/ |
2835 | -}; |
2836 | - |
2837 | - |
2838 | static void convert(mbboDirectRecord *); |
2839 | static void monitor(mbboDirectRecord *); |
2840 | static long writeValue(mbboDirectRecord *); |
2841 | @@ -100,7 +90,7 @@ static long writeValue(mbboDirectRecord *); |
2842 | static long init_record(struct dbCommon *pcommon, int pass) |
2843 | { |
2844 | struct mbboDirectRecord *prec = (struct mbboDirectRecord *)pcommon; |
2845 | - struct mbbodset *pdset = (struct mbbodset *) prec->dset; |
2846 | + mbbodirectdset *pdset = (mbbodirectdset *) prec->dset; |
2847 | long status = 0; |
2848 | |
2849 | if (pass == 0) return 0; |
2850 | @@ -110,7 +100,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2851 | return S_dev_noDSET; |
2852 | } |
2853 | |
2854 | - if ((pdset->number < 5) || (pdset->write_mbbo == NULL)) { |
2855 | + if ((pdset->common.number < 5) || (pdset->write_mbbo == NULL)) { |
2856 | recGblRecordError(S_dev_missingSup, prec, "mbboDirect: init_record"); |
2857 | return S_dev_missingSup; |
2858 | } |
2859 | @@ -124,8 +114,8 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2860 | if (prec->mask == 0 && prec->nobt <= 32) |
2861 | prec->mask = ((epicsUInt64) 1u << prec->nobt) - 1; |
2862 | |
2863 | - if (pdset->init_record) { |
2864 | - status = pdset->init_record(prec); |
2865 | + if (pdset->common.init_record) { |
2866 | + status = pdset->common.init_record(pcommon); |
2867 | if (status == 0) { |
2868 | /* Convert initial read-back */ |
2869 | epicsUInt32 rval = prec->rval; |
2870 | @@ -162,7 +152,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2871 | static long process(struct dbCommon *pcommon) |
2872 | { |
2873 | struct mbboDirectRecord *prec = (struct mbboDirectRecord *)pcommon; |
2874 | - struct mbbodset *pdset = (struct mbbodset *)(prec->dset); |
2875 | + mbbodirectdset *pdset = (mbbodirectdset *)(prec->dset); |
2876 | long status = 0; |
2877 | int pact = prec->pact; |
2878 | |
2879 | @@ -356,7 +346,7 @@ static void convert(mbboDirectRecord *prec) |
2880 | |
2881 | static long writeValue(mbboDirectRecord *prec) |
2882 | { |
2883 | - struct mbbodset *pdset = (struct mbbodset *) prec->dset; |
2884 | + mbbodirectdset *pdset = (mbbodirectdset *) prec->dset; |
2885 | long status = 0; |
2886 | |
2887 | if (!prec->pact) { |
2888 | diff --git a/modules/database/src/std/rec/mbboDirectRecord.dbd.pod b/modules/database/src/std/rec/mbboDirectRecord.dbd.pod |
2889 | index ca49bcd..01402db 100644 |
2890 | --- a/modules/database/src/std/rec/mbboDirectRecord.dbd.pod |
2891 | +++ b/modules/database/src/std/rec/mbboDirectRecord.dbd.pod |
2892 | @@ -90,6 +90,14 @@ description (DESC) fields. |
2893 | =cut |
2894 | |
2895 | include "dbCommon.dbd" |
2896 | + %/* Declare Device Support Entry Table */ |
2897 | + %struct mbboDirectRecord; |
2898 | + %typedef struct mbbodirectdset { |
2899 | + % dset common; /*init_record returns: (0, 2)=>(success, success no convert)*/ |
2900 | + % long (*write_mbbo)(struct mbboDirectRecord *prec); /*returns: (0, 2)=>(success, success no convert)*/ |
2901 | + %} mbbodirectdset; |
2902 | + %#define HAS_mbbodirectdset |
2903 | + % |
2904 | field(VAL,DBF_LONG) { |
2905 | prompt("Word") |
2906 | promptgroup("50 - Output") |
2907 | diff --git a/modules/database/src/std/rec/mbboRecord.c b/modules/database/src/std/rec/mbboRecord.c |
2908 | index 2488552..b54988d 100644 |
2909 | --- a/modules/database/src/std/rec/mbboRecord.c |
2910 | +++ b/modules/database/src/std/rec/mbboRecord.c |
2911 | @@ -82,15 +82,6 @@ rset mbboRSET = { |
2912 | }; |
2913 | epicsExportAddress(rset,mbboRSET); |
2914 | |
2915 | -struct mbbodset { /* multi bit binary output dset */ |
2916 | - long number; |
2917 | - DEVSUPFUN dev_report; |
2918 | - DEVSUPFUN init; |
2919 | - DEVSUPFUN init_record; /*returns: (0, 2) => (success, success no convert)*/ |
2920 | - DEVSUPFUN get_ioint_info; |
2921 | - DEVSUPFUN write_mbbo; /*returns: (0, 2) => (success, success no convert)*/ |
2922 | -}; |
2923 | - |
2924 | |
2925 | static void checkAlarms(mbboRecord *); |
2926 | static void convert(mbboRecord *); |
2927 | @@ -117,7 +108,7 @@ static void init_common(mbboRecord *prec) |
2928 | static long init_record(struct dbCommon *pcommon, int pass) |
2929 | { |
2930 | struct mbboRecord *prec = (struct mbboRecord *)pcommon; |
2931 | - struct mbbodset *pdset; |
2932 | + mbbodset *pdset; |
2933 | long status; |
2934 | |
2935 | if (pass == 0) { |
2936 | @@ -125,13 +116,13 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2937 | return 0; |
2938 | } |
2939 | |
2940 | - pdset = (struct mbbodset *) prec->dset; |
2941 | + pdset = (mbbodset *) prec->dset; |
2942 | if (!pdset) { |
2943 | recGblRecordError(S_dev_noDSET, prec, "mbbo: init_record"); |
2944 | return S_dev_noDSET; |
2945 | } |
2946 | |
2947 | - if ((pdset->number < 5) || (pdset->write_mbbo == NULL)) { |
2948 | + if ((pdset->common.number < 5) || (pdset->write_mbbo == NULL)) { |
2949 | recGblRecordError(S_dev_missingSup, prec, "mbbo: init_record"); |
2950 | return S_dev_missingSup; |
2951 | } |
2952 | @@ -145,8 +136,8 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2953 | if (prec->mask == 0 && prec->nobt <= 32) |
2954 | prec->mask = ((epicsUInt64) 1u << prec->nobt) - 1; |
2955 | |
2956 | - if (pdset->init_record) { |
2957 | - status = pdset->init_record(prec); |
2958 | + if (pdset->common.init_record) { |
2959 | + status = pdset->common.init_record(pcommon); |
2960 | init_common(prec); |
2961 | if (status == 0) { |
2962 | /* Convert initial read-back */ |
2963 | @@ -194,7 +185,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
2964 | static long process(struct dbCommon *pcommon) |
2965 | { |
2966 | struct mbboRecord *prec = (struct mbboRecord *)pcommon; |
2967 | - struct mbbodset *pdset = (struct mbbodset *) prec->dset; |
2968 | + mbbodset *pdset = (mbbodset *) prec->dset; |
2969 | long status = 0; |
2970 | int pact = prec->pact; |
2971 | |
2972 | @@ -439,7 +430,7 @@ static void convert(mbboRecord *prec) |
2973 | |
2974 | static long writeValue(mbboRecord *prec) |
2975 | { |
2976 | - struct mbbodset *pdset = (struct mbbodset *) prec->dset; |
2977 | + mbbodset *pdset = (mbbodset *) prec->dset; |
2978 | long status = 0; |
2979 | |
2980 | if (!prec->pact) { |
2981 | diff --git a/modules/database/src/std/rec/mbboRecord.dbd.pod b/modules/database/src/std/rec/mbboRecord.dbd.pod |
2982 | index 2196aa5..ff5cd7e 100644 |
2983 | --- a/modules/database/src/std/rec/mbboRecord.dbd.pod |
2984 | +++ b/modules/database/src/std/rec/mbboRecord.dbd.pod |
2985 | @@ -173,6 +173,14 @@ mode fields. |
2986 | =cut |
2987 | |
2988 | include "dbCommon.dbd" |
2989 | + %/* Declare Device Support Entry Table */ |
2990 | + %struct mbboRecord; |
2991 | + %typedef struct mbbodset { |
2992 | + % dset common; /*init_record returns: (0, 2) => (success, success no convert)*/ |
2993 | + % long (*write_mbbo)(struct mbboRecord *prec); /*returns: (0, 2) => (success, success no convert)*/ |
2994 | + %} mbbodset; |
2995 | + %#define HAS_mbbodset |
2996 | + % |
2997 | field(VAL,DBF_ENUM) { |
2998 | prompt("Desired Value") |
2999 | promptgroup("50 - Output") |
3000 | diff --git a/modules/database/src/std/rec/stringinRecord.c b/modules/database/src/std/rec/stringinRecord.c |
3001 | index fdc1f26..3c67762 100644 |
3002 | --- a/modules/database/src/std/rec/stringinRecord.c |
3003 | +++ b/modules/database/src/std/rec/stringinRecord.c |
3004 | @@ -80,14 +80,6 @@ rset stringinRSET={ |
3005 | }; |
3006 | epicsExportAddress(rset,stringinRSET); |
3007 | |
3008 | -struct stringindset { /* stringin input dset */ |
3009 | - long number; |
3010 | - DEVSUPFUN dev_report; |
3011 | - DEVSUPFUN init; |
3012 | - DEVSUPFUN init_record; /*returns: (-1,0)=>(failure,success)*/ |
3013 | - DEVSUPFUN get_ioint_info; |
3014 | - DEVSUPFUN read_stringin; /*returns: (-1,0)=>(failure,success)*/ |
3015 | -}; |
3016 | static void monitor(stringinRecord *); |
3017 | static long readValue(stringinRecord *); |
3018 | |
3019 | @@ -97,7 +89,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
3020 | struct stringinRecord *prec = (struct stringinRecord *)pcommon; |
3021 | STATIC_ASSERT(sizeof(prec->oval)==sizeof(prec->val)); |
3022 | STATIC_ASSERT(sizeof(prec->sval)==sizeof(prec->val)); |
3023 | - struct stringindset *pdset = (struct stringindset *) prec->dset; |
3024 | + stringindset *pdset = (stringindset *) prec->dset; |
3025 | |
3026 | if (pass == 0) return 0; |
3027 | |
3028 | @@ -110,13 +102,13 @@ static long init_record(struct dbCommon *pcommon, int pass) |
3029 | } |
3030 | |
3031 | /* must have read_stringin function defined */ |
3032 | - if ((pdset->number < 5) || (pdset->read_stringin == NULL)) { |
3033 | + if ((pdset->common.number < 5) || (pdset->read_stringin == NULL)) { |
3034 | recGblRecordError(S_dev_missingSup, prec, "stringin: init_record"); |
3035 | return S_dev_missingSup; |
3036 | } |
3037 | |
3038 | - if (pdset->init_record) { |
3039 | - long status = pdset->init_record(prec); |
3040 | + if (pdset->common.init_record) { |
3041 | + long status = pdset->common.init_record(pcommon); |
3042 | |
3043 | if (status) |
3044 | return status; |
3045 | @@ -130,7 +122,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
3046 | static long process(struct dbCommon *pcommon) |
3047 | { |
3048 | struct stringinRecord *prec = (struct stringinRecord *)pcommon; |
3049 | - struct stringindset *pdset = (struct stringindset *)(prec->dset); |
3050 | + stringindset *pdset = (stringindset *)(prec->dset); |
3051 | long status; |
3052 | unsigned char pact=prec->pact; |
3053 | |
3054 | @@ -196,7 +188,7 @@ static void monitor(stringinRecord *prec) |
3055 | |
3056 | |
3057 | static long readValue(stringinRecord *prec) |
3058 | { |
3059 | - struct stringindset *pdset = (struct stringindset *) prec->dset; |
3060 | + stringindset *pdset = (stringindset *) prec->dset; |
3061 | long status = 0; |
3062 | |
3063 | if (!prec->pact) { |
3064 | diff --git a/modules/database/src/std/rec/stringinRecord.dbd.pod b/modules/database/src/std/rec/stringinRecord.dbd.pod |
3065 | index 17e0c10..c633b31 100644 |
3066 | --- a/modules/database/src/std/rec/stringinRecord.dbd.pod |
3067 | +++ b/modules/database/src/std/rec/stringinRecord.dbd.pod |
3068 | @@ -24,6 +24,15 @@ menu(stringinPOST) { |
3069 | } |
3070 | recordtype(stringin) { |
3071 | include "dbCommon.dbd" |
3072 | + % |
3073 | + %/* Declare Device Support Entry Table */ |
3074 | + %struct stringinRecord; |
3075 | + %typedef struct stringindset { |
3076 | + % dset common; /*init_record returns: (-1,0)=>(failure,success)*/ |
3077 | + % long (*read_stringin)(struct stringinRecord *prec); /*returns: (-1,0)=>(failure,success)*/ |
3078 | + %} stringindset; |
3079 | + %#define HAS_stringindset |
3080 | + % |
3081 | field(VAL,DBF_STRING) { |
3082 | prompt("Current Value") |
3083 | promptgroup("40 - Input") |
3084 | diff --git a/modules/database/src/std/rec/stringoutRecord.c b/modules/database/src/std/rec/stringoutRecord.c |
3085 | index ddf3028..786d295 100644 |
3086 | --- a/modules/database/src/std/rec/stringoutRecord.c |
3087 | +++ b/modules/database/src/std/rec/stringoutRecord.c |
3088 | @@ -82,14 +82,6 @@ rset stringoutRSET={ |
3089 | }; |
3090 | epicsExportAddress(rset,stringoutRSET); |
3091 | |
3092 | -struct stringoutdset { /* stringout input dset */ |
3093 | - long number; |
3094 | - DEVSUPFUN dev_report; |
3095 | - DEVSUPFUN init; |
3096 | - DEVSUPFUN init_record; /*returns: (-1,0)=>(failure,success)*/ |
3097 | - DEVSUPFUN get_ioint_info; |
3098 | - DEVSUPFUN write_stringout;/*(-1,0)=>(failure,success)*/ |
3099 | -}; |
3100 | static void monitor(stringoutRecord *); |
3101 | static long writeValue(stringoutRecord *); |
3102 | |
3103 | @@ -99,7 +91,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
3104 | struct stringoutRecord *prec = (struct stringoutRecord *)pcommon; |
3105 | STATIC_ASSERT(sizeof(prec->oval)==sizeof(prec->val)); |
3106 | STATIC_ASSERT(sizeof(prec->ivov)==sizeof(prec->val)); |
3107 | - struct stringoutdset *pdset = (struct stringoutdset *) prec->dset; |
3108 | + stringoutdset *pdset = (stringoutdset *) prec->dset; |
3109 | |
3110 | if (pass == 0) return 0; |
3111 | |
3112 | @@ -111,7 +103,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
3113 | } |
3114 | |
3115 | /* must have write_stringout functions defined */ |
3116 | - if ((pdset->number < 5) || (pdset->write_stringout == NULL)) { |
3117 | + if ((pdset->common.number < 5) || (pdset->write_stringout == NULL)) { |
3118 | recGblRecordError(S_dev_missingSup, prec, "stringout: init_record"); |
3119 | return S_dev_missingSup; |
3120 | } |
3121 | @@ -120,8 +112,8 @@ static long init_record(struct dbCommon *pcommon, int pass) |
3122 | if (recGblInitConstantLink(&prec->dol, DBF_STRING, prec->val)) |
3123 | prec->udf = FALSE; |
3124 | |
3125 | - if (pdset->init_record) { |
3126 | - long status = pdset->init_record(prec); |
3127 | + if (pdset->common.init_record) { |
3128 | + long status = pdset->common.init_record(pcommon); |
3129 | |
3130 | if(status) |
3131 | return status; |
3132 | @@ -133,7 +125,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
3133 | static long process(struct dbCommon *pcommon) |
3134 | { |
3135 | struct stringoutRecord *prec = (struct stringoutRecord *)pcommon; |
3136 | - struct stringoutdset *pdset = (struct stringoutdset *)(prec->dset); |
3137 | + stringoutdset *pdset = (stringoutdset *)(prec->dset); |
3138 | long status=0; |
3139 | unsigned char pact=prec->pact; |
3140 | |
3141 | @@ -228,7 +220,7 @@ static void monitor(stringoutRecord *prec) |
3142 | |
3143 | |
3144 | static long writeValue(stringoutRecord *prec) |
3145 | { |
3146 | - struct stringoutdset *pdset = (struct stringoutdset *) prec->dset; |
3147 | + stringoutdset *pdset = (stringoutdset *) prec->dset; |
3148 | long status = 0; |
3149 | |
3150 | if (!prec->pact) { |
3151 | diff --git a/modules/database/src/std/rec/stringoutRecord.dbd.pod b/modules/database/src/std/rec/stringoutRecord.dbd.pod |
3152 | index 0d63d5f..1c843ed 100644 |
3153 | --- a/modules/database/src/std/rec/stringoutRecord.dbd.pod |
3154 | +++ b/modules/database/src/std/rec/stringoutRecord.dbd.pod |
3155 | @@ -24,6 +24,15 @@ menu(stringoutPOST) { |
3156 | } |
3157 | recordtype(stringout) { |
3158 | include "dbCommon.dbd" |
3159 | + % |
3160 | + %/* Declare Device Support Entry Table */ |
3161 | + %struct stringoutRecord; |
3162 | + %typedef struct stringoutdset { |
3163 | + % dset common; /*init_record returns: (-1,0)=>(failure,success)*/ |
3164 | + % long (*write_stringout)(struct stringoutRecord *prec); /*(-1,0)=>(failure,success)*/ |
3165 | + %} stringoutdset; |
3166 | + %#define HAS_stringoutdset |
3167 | + % |
3168 | field(VAL,DBF_STRING) { |
3169 | prompt("Current Value") |
3170 | promptgroup("50 - Output") |
3171 | diff --git a/modules/database/src/std/rec/subArrayRecord.c b/modules/database/src/std/rec/subArrayRecord.c |
3172 | index 6de5147..00eed31 100644 |
3173 | --- a/modules/database/src/std/rec/subArrayRecord.c |
3174 | +++ b/modules/database/src/std/rec/subArrayRecord.c |
3175 | @@ -82,15 +82,6 @@ rset subArrayRSET={ |
3176 | }; |
3177 | epicsExportAddress(rset,subArrayRSET); |
3178 | |
3179 | -struct sadset { /* subArray dset */ |
3180 | - long number; |
3181 | - DEVSUPFUN dev_report; |
3182 | - DEVSUPFUN init; |
3183 | - DEVSUPFUN init_record; /*returns: (-1,0)=>(failure,success)*/ |
3184 | - DEVSUPFUN get_ioint_info; |
3185 | - DEVSUPFUN read_sa; /*returns: (-1,0)=>(failure,success)*/ |
3186 | -}; |
3187 | - |
3188 | static void monitor(subArrayRecord *prec); |
3189 | static long readValue(subArrayRecord *prec); |
3190 | |
3191 | @@ -98,7 +89,7 @@ static long readValue(subArrayRecord *prec); |
3192 | static long init_record(struct dbCommon *pcommon, int pass) |
3193 | { |
3194 | struct subArrayRecord *prec = (struct subArrayRecord *)pcommon; |
3195 | - struct sadset *pdset; |
3196 | + sadset *pdset; |
3197 | |
3198 | if (pass==0){ |
3199 | if (prec->malm <= 0) |
3200 | @@ -114,19 +105,19 @@ static long init_record(struct dbCommon *pcommon, int pass) |
3201 | } |
3202 | |
3203 | /* must have dset defined */ |
3204 | - if (!(pdset = (struct sadset *)(prec->dset))) { |
3205 | + if (!(pdset = (sadset *)(prec->dset))) { |
3206 | recGblRecordError(S_dev_noDSET,(void *)prec,"sa: init_record"); |
3207 | return S_dev_noDSET; |
3208 | } |
3209 | |
3210 | /* must have read_sa function defined */ |
3211 | - if ( (pdset->number < 5) || (pdset->read_sa == NULL) ) { |
3212 | + if ( (pdset->common.number < 5) || (pdset->read_sa == NULL) ) { |
3213 | recGblRecordError(S_dev_missingSup,(void *)prec,"sa: init_record"); |
3214 | return S_dev_missingSup; |
3215 | } |
3216 | |
3217 | - if (pdset->init_record) |
3218 | - return pdset->init_record(prec); |
3219 | + if (pdset->common.init_record) |
3220 | + return pdset->common.init_record(pcommon); |
3221 | |
3222 | return 0; |
3223 | } |
3224 | @@ -134,7 +125,7 @@ static long init_record(struct dbCommon *pcommon, int pass) |
3225 | static long process(struct dbCommon *pcommon) |
3226 | { |
3227 | struct subArrayRecord *prec = (struct subArrayRecord *)pcommon; |
3228 | - struct sadset *pdset = (struct sadset *)(prec->dset); |
3229 | + sadset *pdset = (sadset *)(prec->dset); |
3230 | long status; |
3231 | unsigned char pact=prec->pact; |
3232 | |
3233 | @@ -309,7 +300,7 @@ static void monitor(subArrayRecord *prec) |
3234 | static long readValue(subArrayRecord *prec) |
3235 | { |
3236 | long status; |
3237 | - struct sadset *pdset = (struct sadset *) (prec->dset); |
3238 | + sadset *pdset = (sadset *) (prec->dset); |
3239 | |
3240 | if (prec->nelm > prec->malm) |
3241 | prec->nelm = prec->malm; |
3242 | diff --git a/modules/database/src/std/rec/subArrayRecord.dbd.pod b/modules/database/src/std/rec/subArrayRecord.dbd.pod |
3243 | index c47f2d0..fa4a410 100644 |
3244 | --- a/modules/database/src/std/rec/subArrayRecord.dbd.pod |
3245 | +++ b/modules/database/src/std/rec/subArrayRecord.dbd.pod |
3246 | @@ -315,6 +315,15 @@ INP is expected to point to a waveform record. |
3247 | =cut |
3248 | |
3249 | include "dbCommon.dbd" |
3250 | + % |
3251 | + %/* Declare Device Support Entry Table */ |
3252 | + %struct subArrayRecord; |
3253 | + %typedef struct sadset { |
3254 | + % dset common; /*init_record returns: (-1,0)=>(failure,success)*/ |
3255 | + % long (*read_sa)(struct subArrayRecord *prec); /*returns: (-1,0)=>(failure,success)*/ |
3256 | + %} sadset; |
3257 | + %#define HAS_sadset |
3258 | + % |
3259 | field(VAL,DBF_NOACCESS) { |
3260 | prompt("Value") |
3261 | asl(ASL0) |
3262 | diff --git a/modules/database/src/std/rec/waveformRecord.c b/modules/database/src/std/rec/waveformRecord.c |
3263 | index 8d21018..69a36f4 100644 |
3264 | --- a/modules/database/src/std/rec/waveformRecord.c |
3265 | +++ b/modules/database/src/std/rec/waveformRecord.c |
3266 | @@ -80,14 +80,6 @@ rset waveformRSET={ |
3267 | get_alarm_double |
3268 | }; |
3269 | epicsExportAddress(rset,waveformRSET); |
3270 | -struct wfdset { /* waveform dset */ |
3271 | - long number; |
3272 | - DEVSUPFUN dev_report; |
3273 | - DEVSUPFUN init; |
3274 | - DEVSUPFUN init_record; /*returns: (-1,0)=>(failure,success)*/ |
3275 | - DEVSUPFUN get_ioint_info; |
3276 | - DEVSUPFUN read_wf; /*returns: (-1,0)=>(failure,success)*/ |
3277 | -}; |
3278 | |
3279 | static void monitor(waveformRecord *); |
3280 | static long readValue(waveformRecord *); |
3281 | @@ -95,7 +87,7 @@ static long readValue(waveformRecord *); |
3282 | static long init_record(struct dbCommon *pcommon, int pass) |
3283 | { |
3284 | struct waveformRecord *prec = (struct waveformRecord *)pcommon; |
3285 | - struct wfdset *pdset; |
3286 | + wfdset *pdset; |
3287 | |
3288 | if (pass == 0) { |
3289 | if (prec->nelm <= 0) |
3290 | @@ -111,25 +103,25 @@ static long init_record(struct dbCommon *pcommon, int pass) |
3291 | recGblInitSimm(pcommon, &prec->sscn, &prec->oldsimm, &prec->simm, &prec->siml); |
3292 | |
3293 | /* must have dset defined */ |
3294 | - if (!(pdset = (struct wfdset *)(prec->dset))) { |
3295 | + if (!(pdset = (wfdset *)(prec->dset))) { |
3296 | recGblRecordError(S_dev_noDSET,(void *)prec,"wf: init_record"); |
3297 | return S_dev_noDSET; |
3298 | } |
3299 | /* must have read_wf function defined */ |
3300 | - if ((pdset->number < 5) || (pdset->read_wf == NULL)) { |
3301 | + if ((pdset->common.number < 5) || (pdset->read_wf == NULL)) { |
3302 | recGblRecordError(S_dev_missingSup,(void *)prec,"wf: init_record"); |
3303 | return S_dev_missingSup; |
3304 | } |
3305 | - if (!pdset->init_record) |
3306 | + if (!pdset->common.init_record) |
3307 | return 0; |
3308 | |
3309 | - return pdset->init_record(prec); |
3310 | + return pdset->common.init_record(pcommon); |
3311 | } |
3312 | |
3313 | static long process(struct dbCommon *pcommon) |
3314 | { |
3315 | struct waveformRecord *prec = (struct waveformRecord *)pcommon; |
3316 | - struct wfdset *pdset = (struct wfdset *)(prec->dset); |
3317 | + wfdset *pdset = (wfdset *)(prec->dset); |
3318 | unsigned char pact=prec->pact; |
3319 | long status; |
3320 | |
3321 | @@ -328,7 +320,7 @@ static void monitor(waveformRecord *prec) |
3322 | |
3323 | static long readValue(waveformRecord *prec) |
3324 | { |
3325 | - struct wfdset *pdset = (struct wfdset *) prec->dset; |
3326 | + wfdset *pdset = (wfdset *) prec->dset; |
3327 | long status = 0; |
3328 | |
3329 | if (!prec->pact) { |
3330 | diff --git a/modules/database/src/std/rec/waveformRecord.dbd.pod b/modules/database/src/std/rec/waveformRecord.dbd.pod |
3331 | index ce488ef..06f38b6 100644 |
3332 | --- a/modules/database/src/std/rec/waveformRecord.dbd.pod |
3333 | +++ b/modules/database/src/std/rec/waveformRecord.dbd.pod |
3334 | @@ -397,6 +397,15 @@ NORD is set to the number of values returned and read_wf returns. |
3335 | =cut |
3336 | |
3337 | include "dbCommon.dbd" |
3338 | + % |
3339 | + %/* Declare Device Support Entry Table */ |
3340 | + %struct waveformRecord; |
3341 | + %typedef struct wfdset { |
3342 | + % dset common; /*init_record returns: (-1,0)=>(failure,success)*/ |
3343 | + % long (*read_wf)(struct waveformRecord *prec); /*returns: (-1,0)=>(failure,success)*/ |
3344 | + %} wfdset; |
3345 | + %#define HAS_wfdset |
3346 | + % |
3347 | field(VAL,DBF_NOACCESS) { |
3348 | prompt("Value") |
3349 | asl(ASL0) |
Good start, one comment inline below.