EPICS Base  7.0.5.1
aoRecord.h
Go to the documentation of this file.
1 
7 #ifndef INC_aoRecord_H
8 #define INC_aoRecord_H
9 
10 #include "epicsTypes.h"
11 #include "link.h"
12 #include "epicsMutex.h"
13 #include "ellLib.h"
14 #include "devSup.h"
15 #include "epicsTime.h"
16 
17 /* Declare Device Support Entry Table */
18 struct aoRecord;
19 typedef struct aodset {
20  dset common; /*init_record returns: (0,2)=>(success,success no convert)*/
21  long (*write_ao)(struct aoRecord *prec); /*(0)=>(success ) */
22  long (*special_linconv)(struct aoRecord *prec, int after);
23 } aodset;
24 #define HAS_aodset
25 
26 #include "callback.h"
27 
28 #ifndef aoOIF_NUM_CHOICES
29 
30 typedef enum {
33 } aoOIF;
35 #define aoOIF_NUM_CHOICES 2
36 #endif
37 
39 typedef struct aoRecord {
40  char name[61];
41  char desc[41];
42  char asg[29];
43  epicsEnum16 scan;
44  epicsEnum16 pini;
45  epicsInt16 phas;
46  char evnt[40];
47  epicsInt16 tse;
48  DBLINK tsel;
49  epicsEnum16 dtyp;
50  epicsInt16 disv;
51  epicsInt16 disa;
52  DBLINK sdis;
56  epicsUInt8 disp;
57  epicsUInt8 proc;
58  epicsEnum16 stat;
59  epicsEnum16 sevr;
60  epicsEnum16 nsta;
61  epicsEnum16 nsev;
62  epicsEnum16 acks;
63  epicsEnum16 ackt;
64  epicsEnum16 diss;
65  epicsUInt8 lcnt;
66  epicsUInt8 pact;
67  epicsUInt8 putf;
68  epicsUInt8 rpro;
69  struct asgMember *asp;
70  struct processNotify *ppn;
71  struct processNotifyRecord *ppnr;
72  struct scan_element *spvt;
73  struct typed_rset *rset;
75  void *dpvt;
76  struct dbRecordType *rdes;
77  struct lockRecord *lset;
78  epicsEnum16 prio;
79  epicsUInt8 tpro;
80  epicsUInt8 bkpt;
81  epicsUInt8 udf;
82  epicsEnum16 udfs;
84  DBLINK flnk;
85  epicsFloat64 val;
86  epicsFloat64 oval;
87  DBLINK out;
88  epicsFloat64 oroc;
89  DBLINK dol;
90  epicsEnum16 omsl;
91  epicsEnum16 oif;
92  epicsInt16 prec;
93  epicsEnum16 linr;
94  epicsFloat64 eguf;
95  epicsFloat64 egul;
96  char egu[16];
97  epicsUInt32 roff;
98  epicsFloat64 eoff;
99  epicsFloat64 eslo;
100  epicsFloat64 drvh;
101  epicsFloat64 drvl;
102  epicsFloat64 hopr;
103  epicsFloat64 lopr;
104  epicsFloat64 aoff;
105  epicsFloat64 aslo;
106  epicsFloat64 hihi;
107  epicsFloat64 lolo;
108  epicsFloat64 high;
109  epicsFloat64 low;
110  epicsEnum16 hhsv;
111  epicsEnum16 llsv;
112  epicsEnum16 hsv;
113  epicsEnum16 lsv;
114  epicsFloat64 hyst;
115  epicsFloat64 adel;
116  epicsFloat64 mdel;
117  epicsInt32 rval;
118  epicsInt32 oraw;
119  epicsInt32 rbv;
120  epicsInt32 orbv;
121  epicsFloat64 pval;
122  epicsFloat64 lalm;
123  epicsFloat64 alst;
124  epicsFloat64 mlst;
125  void * pbrk;
126  epicsInt16 init;
127  epicsInt16 lbrk;
128  DBLINK siol;
129  DBLINK siml;
130  epicsEnum16 simm;
131  epicsEnum16 sims;
132  epicsEnum16 oldsimm;
133  epicsEnum16 sscn;
134  epicsFloat64 sdly;
136  epicsEnum16 ivoa;
137  epicsFloat64 ivov;
138  epicsUInt8 omod;
139 } aoRecord;
140 
141 typedef enum {
142  aoRecordNAME = 0,
143  aoRecordDESC = 1,
144  aoRecordASG = 2,
145  aoRecordSCAN = 3,
146  aoRecordPINI = 4,
147  aoRecordPHAS = 5,
148  aoRecordEVNT = 6,
149  aoRecordTSE = 7,
150  aoRecordTSEL = 8,
151  aoRecordDTYP = 9,
152  aoRecordDISV = 10,
153  aoRecordDISA = 11,
154  aoRecordSDIS = 12,
155  aoRecordMLOK = 13,
156  aoRecordMLIS = 14,
157  aoRecordBKLNK = 15,
158  aoRecordDISP = 16,
159  aoRecordPROC = 17,
160  aoRecordSTAT = 18,
161  aoRecordSEVR = 19,
162  aoRecordNSTA = 20,
163  aoRecordNSEV = 21,
164  aoRecordACKS = 22,
165  aoRecordACKT = 23,
166  aoRecordDISS = 24,
167  aoRecordLCNT = 25,
168  aoRecordPACT = 26,
169  aoRecordPUTF = 27,
170  aoRecordRPRO = 28,
171  aoRecordASP = 29,
172  aoRecordPPN = 30,
173  aoRecordPPNR = 31,
174  aoRecordSPVT = 32,
175  aoRecordRSET = 33,
176  aoRecordDSET = 34,
177  aoRecordDPVT = 35,
178  aoRecordRDES = 36,
179  aoRecordLSET = 37,
180  aoRecordPRIO = 38,
181  aoRecordTPRO = 39,
182  aoRecordBKPT = 40,
183  aoRecordUDF = 41,
184  aoRecordUDFS = 42,
185  aoRecordTIME = 43,
186  aoRecordFLNK = 44,
187  aoRecordVAL = 45,
188  aoRecordOVAL = 46,
189  aoRecordOUT = 47,
190  aoRecordOROC = 48,
191  aoRecordDOL = 49,
192  aoRecordOMSL = 50,
193  aoRecordOIF = 51,
194  aoRecordPREC = 52,
195  aoRecordLINR = 53,
196  aoRecordEGUF = 54,
197  aoRecordEGUL = 55,
198  aoRecordEGU = 56,
199  aoRecordROFF = 57,
200  aoRecordEOFF = 58,
201  aoRecordESLO = 59,
202  aoRecordDRVH = 60,
203  aoRecordDRVL = 61,
204  aoRecordHOPR = 62,
205  aoRecordLOPR = 63,
206  aoRecordAOFF = 64,
207  aoRecordASLO = 65,
208  aoRecordHIHI = 66,
209  aoRecordLOLO = 67,
210  aoRecordHIGH = 68,
211  aoRecordLOW = 69,
212  aoRecordHHSV = 70,
213  aoRecordLLSV = 71,
214  aoRecordHSV = 72,
215  aoRecordLSV = 73,
216  aoRecordHYST = 74,
217  aoRecordADEL = 75,
218  aoRecordMDEL = 76,
219  aoRecordRVAL = 77,
220  aoRecordORAW = 78,
221  aoRecordRBV = 79,
222  aoRecordORBV = 80,
223  aoRecordPVAL = 81,
224  aoRecordLALM = 82,
225  aoRecordALST = 83,
226  aoRecordMLST = 84,
227  aoRecordPBRK = 85,
228  aoRecordINIT = 86,
229  aoRecordLBRK = 87,
230  aoRecordSIOL = 88,
231  aoRecordSIML = 89,
232  aoRecordSIMM = 90,
233  aoRecordSIMS = 91,
234  aoRecordOLDSIMM = 92,
235  aoRecordSSCN = 93,
236  aoRecordSDLY = 94,
237  aoRecordSIMPVT = 95,
238  aoRecordIVOA = 96,
239  aoRecordIVOV = 97,
240  aoRecordOMOD = 98
241 } aoFieldIndex;
242 
243 #ifdef GEN_SIZE_OFFSET
244 
245 #include <epicsExport.h>
246 #include <cantProceed.h>
247 #ifdef __cplusplus
248 extern "C" {
249 #endif
250 static int aoRecordSizeOffset(dbRecordType *prt)
251 {
252  aoRecord *prec = 0;
253 
254  if (prt->no_fields != 99) {
255  cantProceed("IOC build or installation error:\n"
256  " The aoRecord defined in the DBD file has %d fields,\n"
257  " but the record support code was built with 99.\n",
258  prt->no_fields);
259  }
260  prt->papFldDes[aoRecordNAME]->size = sizeof(prec->name);
261  prt->papFldDes[aoRecordNAME]->offset = (unsigned short)((char *)&prec->name - (char *)prec);
262  prt->papFldDes[aoRecordDESC]->size = sizeof(prec->desc);
263  prt->papFldDes[aoRecordDESC]->offset = (unsigned short)((char *)&prec->desc - (char *)prec);
264  prt->papFldDes[aoRecordASG]->size = sizeof(prec->asg);
265  prt->papFldDes[aoRecordASG]->offset = (unsigned short)((char *)&prec->asg - (char *)prec);
266  prt->papFldDes[aoRecordSCAN]->size = sizeof(prec->scan);
267  prt->papFldDes[aoRecordSCAN]->offset = (unsigned short)((char *)&prec->scan - (char *)prec);
268  prt->papFldDes[aoRecordPINI]->size = sizeof(prec->pini);
269  prt->papFldDes[aoRecordPINI]->offset = (unsigned short)((char *)&prec->pini - (char *)prec);
270  prt->papFldDes[aoRecordPHAS]->size = sizeof(prec->phas);
271  prt->papFldDes[aoRecordPHAS]->offset = (unsigned short)((char *)&prec->phas - (char *)prec);
272  prt->papFldDes[aoRecordEVNT]->size = sizeof(prec->evnt);
273  prt->papFldDes[aoRecordEVNT]->offset = (unsigned short)((char *)&prec->evnt - (char *)prec);
274  prt->papFldDes[aoRecordTSE]->size = sizeof(prec->tse);
275  prt->papFldDes[aoRecordTSE]->offset = (unsigned short)((char *)&prec->tse - (char *)prec);
276  prt->papFldDes[aoRecordTSEL]->size = sizeof(prec->tsel);
277  prt->papFldDes[aoRecordTSEL]->offset = (unsigned short)((char *)&prec->tsel - (char *)prec);
278  prt->papFldDes[aoRecordDTYP]->size = sizeof(prec->dtyp);
279  prt->papFldDes[aoRecordDTYP]->offset = (unsigned short)((char *)&prec->dtyp - (char *)prec);
280  prt->papFldDes[aoRecordDISV]->size = sizeof(prec->disv);
281  prt->papFldDes[aoRecordDISV]->offset = (unsigned short)((char *)&prec->disv - (char *)prec);
282  prt->papFldDes[aoRecordDISA]->size = sizeof(prec->disa);
283  prt->papFldDes[aoRecordDISA]->offset = (unsigned short)((char *)&prec->disa - (char *)prec);
284  prt->papFldDes[aoRecordSDIS]->size = sizeof(prec->sdis);
285  prt->papFldDes[aoRecordSDIS]->offset = (unsigned short)((char *)&prec->sdis - (char *)prec);
286  prt->papFldDes[aoRecordMLOK]->size = sizeof(prec->mlok);
287  prt->papFldDes[aoRecordMLOK]->offset = (unsigned short)((char *)&prec->mlok - (char *)prec);
288  prt->papFldDes[aoRecordMLIS]->size = sizeof(prec->mlis);
289  prt->papFldDes[aoRecordMLIS]->offset = (unsigned short)((char *)&prec->mlis - (char *)prec);
290  prt->papFldDes[aoRecordBKLNK]->size = sizeof(prec->bklnk);
291  prt->papFldDes[aoRecordBKLNK]->offset = (unsigned short)((char *)&prec->bklnk - (char *)prec);
292  prt->papFldDes[aoRecordDISP]->size = sizeof(prec->disp);
293  prt->papFldDes[aoRecordDISP]->offset = (unsigned short)((char *)&prec->disp - (char *)prec);
294  prt->papFldDes[aoRecordPROC]->size = sizeof(prec->proc);
295  prt->papFldDes[aoRecordPROC]->offset = (unsigned short)((char *)&prec->proc - (char *)prec);
296  prt->papFldDes[aoRecordSTAT]->size = sizeof(prec->stat);
297  prt->papFldDes[aoRecordSTAT]->offset = (unsigned short)((char *)&prec->stat - (char *)prec);
298  prt->papFldDes[aoRecordSEVR]->size = sizeof(prec->sevr);
299  prt->papFldDes[aoRecordSEVR]->offset = (unsigned short)((char *)&prec->sevr - (char *)prec);
300  prt->papFldDes[aoRecordNSTA]->size = sizeof(prec->nsta);
301  prt->papFldDes[aoRecordNSTA]->offset = (unsigned short)((char *)&prec->nsta - (char *)prec);
302  prt->papFldDes[aoRecordNSEV]->size = sizeof(prec->nsev);
303  prt->papFldDes[aoRecordNSEV]->offset = (unsigned short)((char *)&prec->nsev - (char *)prec);
304  prt->papFldDes[aoRecordACKS]->size = sizeof(prec->acks);
305  prt->papFldDes[aoRecordACKS]->offset = (unsigned short)((char *)&prec->acks - (char *)prec);
306  prt->papFldDes[aoRecordACKT]->size = sizeof(prec->ackt);
307  prt->papFldDes[aoRecordACKT]->offset = (unsigned short)((char *)&prec->ackt - (char *)prec);
308  prt->papFldDes[aoRecordDISS]->size = sizeof(prec->diss);
309  prt->papFldDes[aoRecordDISS]->offset = (unsigned short)((char *)&prec->diss - (char *)prec);
310  prt->papFldDes[aoRecordLCNT]->size = sizeof(prec->lcnt);
311  prt->papFldDes[aoRecordLCNT]->offset = (unsigned short)((char *)&prec->lcnt - (char *)prec);
312  prt->papFldDes[aoRecordPACT]->size = sizeof(prec->pact);
313  prt->papFldDes[aoRecordPACT]->offset = (unsigned short)((char *)&prec->pact - (char *)prec);
314  prt->papFldDes[aoRecordPUTF]->size = sizeof(prec->putf);
315  prt->papFldDes[aoRecordPUTF]->offset = (unsigned short)((char *)&prec->putf - (char *)prec);
316  prt->papFldDes[aoRecordRPRO]->size = sizeof(prec->rpro);
317  prt->papFldDes[aoRecordRPRO]->offset = (unsigned short)((char *)&prec->rpro - (char *)prec);
318  prt->papFldDes[aoRecordASP]->size = sizeof(prec->asp);
319  prt->papFldDes[aoRecordASP]->offset = (unsigned short)((char *)&prec->asp - (char *)prec);
320  prt->papFldDes[aoRecordPPN]->size = sizeof(prec->ppn);
321  prt->papFldDes[aoRecordPPN]->offset = (unsigned short)((char *)&prec->ppn - (char *)prec);
322  prt->papFldDes[aoRecordPPNR]->size = sizeof(prec->ppnr);
323  prt->papFldDes[aoRecordPPNR]->offset = (unsigned short)((char *)&prec->ppnr - (char *)prec);
324  prt->papFldDes[aoRecordSPVT]->size = sizeof(prec->spvt);
325  prt->papFldDes[aoRecordSPVT]->offset = (unsigned short)((char *)&prec->spvt - (char *)prec);
326  prt->papFldDes[aoRecordRSET]->size = sizeof(prec->rset);
327  prt->papFldDes[aoRecordRSET]->offset = (unsigned short)((char *)&prec->rset - (char *)prec);
328  prt->papFldDes[aoRecordDSET]->size = sizeof(prec->dset);
329  prt->papFldDes[aoRecordDSET]->offset = (unsigned short)((char *)&prec->dset - (char *)prec);
330  prt->papFldDes[aoRecordDPVT]->size = sizeof(prec->dpvt);
331  prt->papFldDes[aoRecordDPVT]->offset = (unsigned short)((char *)&prec->dpvt - (char *)prec);
332  prt->papFldDes[aoRecordRDES]->size = sizeof(prec->rdes);
333  prt->papFldDes[aoRecordRDES]->offset = (unsigned short)((char *)&prec->rdes - (char *)prec);
334  prt->papFldDes[aoRecordLSET]->size = sizeof(prec->lset);
335  prt->papFldDes[aoRecordLSET]->offset = (unsigned short)((char *)&prec->lset - (char *)prec);
336  prt->papFldDes[aoRecordPRIO]->size = sizeof(prec->prio);
337  prt->papFldDes[aoRecordPRIO]->offset = (unsigned short)((char *)&prec->prio - (char *)prec);
338  prt->papFldDes[aoRecordTPRO]->size = sizeof(prec->tpro);
339  prt->papFldDes[aoRecordTPRO]->offset = (unsigned short)((char *)&prec->tpro - (char *)prec);
340  prt->papFldDes[aoRecordBKPT]->size = sizeof(prec->bkpt);
341  prt->papFldDes[aoRecordBKPT]->offset = (unsigned short)((char *)&prec->bkpt - (char *)prec);
342  prt->papFldDes[aoRecordUDF]->size = sizeof(prec->udf);
343  prt->papFldDes[aoRecordUDF]->offset = (unsigned short)((char *)&prec->udf - (char *)prec);
344  prt->papFldDes[aoRecordUDFS]->size = sizeof(prec->udfs);
345  prt->papFldDes[aoRecordUDFS]->offset = (unsigned short)((char *)&prec->udfs - (char *)prec);
346  prt->papFldDes[aoRecordTIME]->size = sizeof(prec->time);
347  prt->papFldDes[aoRecordTIME]->offset = (unsigned short)((char *)&prec->time - (char *)prec);
348  prt->papFldDes[aoRecordFLNK]->size = sizeof(prec->flnk);
349  prt->papFldDes[aoRecordFLNK]->offset = (unsigned short)((char *)&prec->flnk - (char *)prec);
350  prt->papFldDes[aoRecordVAL]->size = sizeof(prec->val);
351  prt->papFldDes[aoRecordVAL]->offset = (unsigned short)((char *)&prec->val - (char *)prec);
352  prt->papFldDes[aoRecordOVAL]->size = sizeof(prec->oval);
353  prt->papFldDes[aoRecordOVAL]->offset = (unsigned short)((char *)&prec->oval - (char *)prec);
354  prt->papFldDes[aoRecordOUT]->size = sizeof(prec->out);
355  prt->papFldDes[aoRecordOUT]->offset = (unsigned short)((char *)&prec->out - (char *)prec);
356  prt->papFldDes[aoRecordOROC]->size = sizeof(prec->oroc);
357  prt->papFldDes[aoRecordOROC]->offset = (unsigned short)((char *)&prec->oroc - (char *)prec);
358  prt->papFldDes[aoRecordDOL]->size = sizeof(prec->dol);
359  prt->papFldDes[aoRecordDOL]->offset = (unsigned short)((char *)&prec->dol - (char *)prec);
360  prt->papFldDes[aoRecordOMSL]->size = sizeof(prec->omsl);
361  prt->papFldDes[aoRecordOMSL]->offset = (unsigned short)((char *)&prec->omsl - (char *)prec);
362  prt->papFldDes[aoRecordOIF]->size = sizeof(prec->oif);
363  prt->papFldDes[aoRecordOIF]->offset = (unsigned short)((char *)&prec->oif - (char *)prec);
364  prt->papFldDes[aoRecordPREC]->size = sizeof(prec->prec);
365  prt->papFldDes[aoRecordPREC]->offset = (unsigned short)((char *)&prec->prec - (char *)prec);
366  prt->papFldDes[aoRecordLINR]->size = sizeof(prec->linr);
367  prt->papFldDes[aoRecordLINR]->offset = (unsigned short)((char *)&prec->linr - (char *)prec);
368  prt->papFldDes[aoRecordEGUF]->size = sizeof(prec->eguf);
369  prt->papFldDes[aoRecordEGUF]->offset = (unsigned short)((char *)&prec->eguf - (char *)prec);
370  prt->papFldDes[aoRecordEGUL]->size = sizeof(prec->egul);
371  prt->papFldDes[aoRecordEGUL]->offset = (unsigned short)((char *)&prec->egul - (char *)prec);
372  prt->papFldDes[aoRecordEGU]->size = sizeof(prec->egu);
373  prt->papFldDes[aoRecordEGU]->offset = (unsigned short)((char *)&prec->egu - (char *)prec);
374  prt->papFldDes[aoRecordROFF]->size = sizeof(prec->roff);
375  prt->papFldDes[aoRecordROFF]->offset = (unsigned short)((char *)&prec->roff - (char *)prec);
376  prt->papFldDes[aoRecordEOFF]->size = sizeof(prec->eoff);
377  prt->papFldDes[aoRecordEOFF]->offset = (unsigned short)((char *)&prec->eoff - (char *)prec);
378  prt->papFldDes[aoRecordESLO]->size = sizeof(prec->eslo);
379  prt->papFldDes[aoRecordESLO]->offset = (unsigned short)((char *)&prec->eslo - (char *)prec);
380  prt->papFldDes[aoRecordDRVH]->size = sizeof(prec->drvh);
381  prt->papFldDes[aoRecordDRVH]->offset = (unsigned short)((char *)&prec->drvh - (char *)prec);
382  prt->papFldDes[aoRecordDRVL]->size = sizeof(prec->drvl);
383  prt->papFldDes[aoRecordDRVL]->offset = (unsigned short)((char *)&prec->drvl - (char *)prec);
384  prt->papFldDes[aoRecordHOPR]->size = sizeof(prec->hopr);
385  prt->papFldDes[aoRecordHOPR]->offset = (unsigned short)((char *)&prec->hopr - (char *)prec);
386  prt->papFldDes[aoRecordLOPR]->size = sizeof(prec->lopr);
387  prt->papFldDes[aoRecordLOPR]->offset = (unsigned short)((char *)&prec->lopr - (char *)prec);
388  prt->papFldDes[aoRecordAOFF]->size = sizeof(prec->aoff);
389  prt->papFldDes[aoRecordAOFF]->offset = (unsigned short)((char *)&prec->aoff - (char *)prec);
390  prt->papFldDes[aoRecordASLO]->size = sizeof(prec->aslo);
391  prt->papFldDes[aoRecordASLO]->offset = (unsigned short)((char *)&prec->aslo - (char *)prec);
392  prt->papFldDes[aoRecordHIHI]->size = sizeof(prec->hihi);
393  prt->papFldDes[aoRecordHIHI]->offset = (unsigned short)((char *)&prec->hihi - (char *)prec);
394  prt->papFldDes[aoRecordLOLO]->size = sizeof(prec->lolo);
395  prt->papFldDes[aoRecordLOLO]->offset = (unsigned short)((char *)&prec->lolo - (char *)prec);
396  prt->papFldDes[aoRecordHIGH]->size = sizeof(prec->high);
397  prt->papFldDes[aoRecordHIGH]->offset = (unsigned short)((char *)&prec->high - (char *)prec);
398  prt->papFldDes[aoRecordLOW]->size = sizeof(prec->low);
399  prt->papFldDes[aoRecordLOW]->offset = (unsigned short)((char *)&prec->low - (char *)prec);
400  prt->papFldDes[aoRecordHHSV]->size = sizeof(prec->hhsv);
401  prt->papFldDes[aoRecordHHSV]->offset = (unsigned short)((char *)&prec->hhsv - (char *)prec);
402  prt->papFldDes[aoRecordLLSV]->size = sizeof(prec->llsv);
403  prt->papFldDes[aoRecordLLSV]->offset = (unsigned short)((char *)&prec->llsv - (char *)prec);
404  prt->papFldDes[aoRecordHSV]->size = sizeof(prec->hsv);
405  prt->papFldDes[aoRecordHSV]->offset = (unsigned short)((char *)&prec->hsv - (char *)prec);
406  prt->papFldDes[aoRecordLSV]->size = sizeof(prec->lsv);
407  prt->papFldDes[aoRecordLSV]->offset = (unsigned short)((char *)&prec->lsv - (char *)prec);
408  prt->papFldDes[aoRecordHYST]->size = sizeof(prec->hyst);
409  prt->papFldDes[aoRecordHYST]->offset = (unsigned short)((char *)&prec->hyst - (char *)prec);
410  prt->papFldDes[aoRecordADEL]->size = sizeof(prec->adel);
411  prt->papFldDes[aoRecordADEL]->offset = (unsigned short)((char *)&prec->adel - (char *)prec);
412  prt->papFldDes[aoRecordMDEL]->size = sizeof(prec->mdel);
413  prt->papFldDes[aoRecordMDEL]->offset = (unsigned short)((char *)&prec->mdel - (char *)prec);
414  prt->papFldDes[aoRecordRVAL]->size = sizeof(prec->rval);
415  prt->papFldDes[aoRecordRVAL]->offset = (unsigned short)((char *)&prec->rval - (char *)prec);
416  prt->papFldDes[aoRecordORAW]->size = sizeof(prec->oraw);
417  prt->papFldDes[aoRecordORAW]->offset = (unsigned short)((char *)&prec->oraw - (char *)prec);
418  prt->papFldDes[aoRecordRBV]->size = sizeof(prec->rbv);
419  prt->papFldDes[aoRecordRBV]->offset = (unsigned short)((char *)&prec->rbv - (char *)prec);
420  prt->papFldDes[aoRecordORBV]->size = sizeof(prec->orbv);
421  prt->papFldDes[aoRecordORBV]->offset = (unsigned short)((char *)&prec->orbv - (char *)prec);
422  prt->papFldDes[aoRecordPVAL]->size = sizeof(prec->pval);
423  prt->papFldDes[aoRecordPVAL]->offset = (unsigned short)((char *)&prec->pval - (char *)prec);
424  prt->papFldDes[aoRecordLALM]->size = sizeof(prec->lalm);
425  prt->papFldDes[aoRecordLALM]->offset = (unsigned short)((char *)&prec->lalm - (char *)prec);
426  prt->papFldDes[aoRecordALST]->size = sizeof(prec->alst);
427  prt->papFldDes[aoRecordALST]->offset = (unsigned short)((char *)&prec->alst - (char *)prec);
428  prt->papFldDes[aoRecordMLST]->size = sizeof(prec->mlst);
429  prt->papFldDes[aoRecordMLST]->offset = (unsigned short)((char *)&prec->mlst - (char *)prec);
430  prt->papFldDes[aoRecordPBRK]->size = sizeof(prec->pbrk);
431  prt->papFldDes[aoRecordPBRK]->offset = (unsigned short)((char *)&prec->pbrk - (char *)prec);
432  prt->papFldDes[aoRecordINIT]->size = sizeof(prec->init);
433  prt->papFldDes[aoRecordINIT]->offset = (unsigned short)((char *)&prec->init - (char *)prec);
434  prt->papFldDes[aoRecordLBRK]->size = sizeof(prec->lbrk);
435  prt->papFldDes[aoRecordLBRK]->offset = (unsigned short)((char *)&prec->lbrk - (char *)prec);
436  prt->papFldDes[aoRecordSIOL]->size = sizeof(prec->siol);
437  prt->papFldDes[aoRecordSIOL]->offset = (unsigned short)((char *)&prec->siol - (char *)prec);
438  prt->papFldDes[aoRecordSIML]->size = sizeof(prec->siml);
439  prt->papFldDes[aoRecordSIML]->offset = (unsigned short)((char *)&prec->siml - (char *)prec);
440  prt->papFldDes[aoRecordSIMM]->size = sizeof(prec->simm);
441  prt->papFldDes[aoRecordSIMM]->offset = (unsigned short)((char *)&prec->simm - (char *)prec);
442  prt->papFldDes[aoRecordSIMS]->size = sizeof(prec->sims);
443  prt->papFldDes[aoRecordSIMS]->offset = (unsigned short)((char *)&prec->sims - (char *)prec);
444  prt->papFldDes[aoRecordOLDSIMM]->size = sizeof(prec->oldsimm);
445  prt->papFldDes[aoRecordOLDSIMM]->offset = (unsigned short)((char *)&prec->oldsimm - (char *)prec);
446  prt->papFldDes[aoRecordSSCN]->size = sizeof(prec->sscn);
447  prt->papFldDes[aoRecordSSCN]->offset = (unsigned short)((char *)&prec->sscn - (char *)prec);
448  prt->papFldDes[aoRecordSDLY]->size = sizeof(prec->sdly);
449  prt->papFldDes[aoRecordSDLY]->offset = (unsigned short)((char *)&prec->sdly - (char *)prec);
450  prt->papFldDes[aoRecordSIMPVT]->size = sizeof(prec->simpvt);
451  prt->papFldDes[aoRecordSIMPVT]->offset = (unsigned short)((char *)&prec->simpvt - (char *)prec);
452  prt->papFldDes[aoRecordIVOA]->size = sizeof(prec->ivoa);
453  prt->papFldDes[aoRecordIVOA]->offset = (unsigned short)((char *)&prec->ivoa - (char *)prec);
454  prt->papFldDes[aoRecordIVOV]->size = sizeof(prec->ivov);
455  prt->papFldDes[aoRecordIVOV]->offset = (unsigned short)((char *)&prec->ivov - (char *)prec);
456  prt->papFldDes[aoRecordOMOD]->size = sizeof(prec->omod);
457  prt->papFldDes[aoRecordOMOD]->offset = (unsigned short)((char *)&prec->omod - (char *)prec);
458  prt->rec_size = sizeof(*prec);
459  return 0;
460 }
461 epicsExportRegistrar(aoRecordSizeOffset);
462 
463 #ifdef __cplusplus
464 }
465 #endif
466 #endif /* GEN_SIZE_OFFSET */
467 
468 #endif /* INC_aoRecord_H */
epicsInt32 orbv
Prev Readback Value.
Definition: aoRecord.h:120
epicsEnum16 sims
Simulation Mode Severity.
Definition: aoRecord.h:131
epicsInt16 prec
Display Precision.
Definition: aoRecord.h:92
epicsEnum16 stat
Alarm Status.
Definition: aoRecord.h:58
epicsFloat64 oroc
Output Rate of Change.
Definition: aoRecord.h:88
char desc[41]
Descriptor.
Definition: aoRecord.h:41
epicsFloat64 eguf
Eng Units Full.
Definition: aoRecord.h:94
epicsEnum16 dtyp
Device Type.
Definition: aoRecord.h:49
epicsFloat64 lalm
Last Value Alarmed.
Definition: aoRecord.h:122
epicsEnum16 scan
Scan Mechanism.
Definition: aoRecord.h:43
epicsFloat64 ivov
INVALID output value.
Definition: aoRecord.h:137
epicsCallback * simpvt
Sim. Mode Private.
Definition: aoRecord.h:135
epicsEnum16 diss
Disable Alarm Sevrty.
Definition: aoRecord.h:64
DBLINK tsel
Time Stamp Link.
Definition: aoRecord.h:48
DBLINK dol
Desired Output Loc.
Definition: aoRecord.h:89
epicsFloat64 low
Low Alarm Limit.
Definition: aoRecord.h:109
epicsEnum16 llsv
Lolo Severity.
Definition: aoRecord.h:111
LIBCOM_API void cantProceed(const char *errorMessage,...) EPICS_PRINTF_STYLE(1
Suspend this thread, the caller cannot continue or return.
epicsEnum16 lsv
Low Severity.
Definition: aoRecord.h:113
The core data types used by epics.
epicsUInt8 disp
Disable putField.
Definition: aoRecord.h:56
State string "Full".
Definition: aoRecord.h:31
epicsUInt8 omod
Was OVAL modified?
Definition: aoRecord.h:138
Exporting IOC objects.
epicsEnum16 nsev
New Alarm Severity.
Definition: aoRecord.h:61
epicsEnum16 ivoa
INVALID output action.
Definition: aoRecord.h:136
epicsFloat64 aslo
Adjustment Slope.
Definition: aoRecord.h:105
char asg[29]
Access Security Group.
Definition: aoRecord.h:42
epicsFloat64 drvh
Drive High Limit.
Definition: aoRecord.h:100
State string "Incremental".
Definition: aoRecord.h:32
epicsMutexId mlok
Monitor lock.
Definition: aoRecord.h:53
epicsFloat64 eoff
EGU to Raw Offset.
Definition: aoRecord.h:98
void * dpvt
Device Private.
Definition: aoRecord.h:75
Declaration of ao record type.
Definition: aoRecord.h:39
epicsFloat64 drvl
Drive Low Limit.
Definition: aoRecord.h:101
epicsUInt8 lcnt
Lock Count.
Definition: aoRecord.h:65
Routines for code that can&#39;t continue or return after an error.
char egu[16]
Engineering Units.
Definition: aoRecord.h:96
struct processNotify * ppn
pprocessNotify
Definition: aoRecord.h:70
epicsTimeStamp time
Time.
Definition: aoRecord.h:83
epicsEnum16 acks
Alarm Ack Severity.
Definition: aoRecord.h:62
struct scan_element * spvt
Scan Private.
Definition: aoRecord.h:72
epicsEnum16 sevr
Alarm Severity.
Definition: aoRecord.h:59
struct typed_rset * rset
Address of RSET.
Definition: aoRecord.h:73
struct asgMember * asp
Access Security Pvt.
Definition: aoRecord.h:69
epicsUInt8 putf
dbPutField process
Definition: aoRecord.h:67
epicsEnum16 udfs
Undefined Alarm Sevrty.
Definition: aoRecord.h:82
epicsInt16 disa
Disable.
Definition: aoRecord.h:51
void * pbrk
Ptrto brkTable.
Definition: aoRecord.h:125
epicsEnum16 omsl
Output Mode Select.
Definition: aoRecord.h:90
Definition: devSup.h:141
unambiguous_dset * dset
DSET address.
Definition: aoRecord.h:74
EPICS time stamp, for use from C code.
Definition: epicsTime.h:34
A doubly-linked list library.
epicsEnum16 ackt
Alarm Ack Transient.
Definition: aoRecord.h:63
epicsInt32 rbv
Readback Value.
Definition: aoRecord.h:119
epicsEnum16 simm
Simulation Mode.
Definition: aoRecord.h:130
epicsUInt8 bkpt
Break Point.
Definition: aoRecord.h:80
List header type.
Definition: ellLib.h:57
ELLLIST bklnk
Backwards link tracking.
Definition: aoRecord.h:55
epicsFloat64 lolo
Lolo Alarm Limit.
Definition: aoRecord.h:107
epicsFloat64 adel
Archive Deadband.
Definition: aoRecord.h:115
char name[61]
Record Name.
Definition: aoRecord.h:40
DBLINK flnk
Forward Process Link.
Definition: aoRecord.h:84
epicsEnum16 oldsimm
Prev. Simulation Mode.
Definition: aoRecord.h:132
epicsFloat64 egul
Eng Units Low.
Definition: aoRecord.h:95
epicsFloat64 hopr
High Operating Range.
Definition: aoRecord.h:102
epicsInt16 tse
Time Stamp Event.
Definition: aoRecord.h:47
epicsFloat64 hihi
Hihi Alarm Limit.
Definition: aoRecord.h:106
epicsFloat64 oval
Output Value.
Definition: aoRecord.h:86
epicsEnum16 hhsv
Hihi Severity.
Definition: aoRecord.h:110
struct lockRecord * lset
Lock Set.
Definition: aoRecord.h:77
epicsInt16 lbrk
LastBreak Point.
Definition: aoRecord.h:127
APIs for the epicsMutex mutual exclusion semaphore.
epicsEnum16 linr
Linearization.
Definition: aoRecord.h:93
epicsFloat64 high
High Alarm Limit.
Definition: aoRecord.h:108
Device support routines.
epicsInt16 disv
Disable Value.
Definition: aoRecord.h:50
epicsEnum16 oif
Out Full/Incremental.
Definition: aoRecord.h:91
epicsEnum16 hsv
High Severity.
Definition: aoRecord.h:112
epicsFloat64 aoff
Adjustment Offset.
Definition: aoRecord.h:104
aoOIF
Enumerated type from menu aoOIF.
Definition: aoRecord.h:30
epicsFloat64 hyst
Alarm Deadband.
Definition: aoRecord.h:114
epicsUInt8 proc
Force Processing.
Definition: aoRecord.h:57
DBLINK sdis
Scanning Disable.
Definition: aoRecord.h:52
epicsEnum16 pini
Process at iocInit.
Definition: aoRecord.h:44
DBLINK out
Output Specification.
Definition: aoRecord.h:87
epicsFloat64 pval
Previous value.
Definition: aoRecord.h:121
epicsFloat64 alst
Last Value Archived.
Definition: aoRecord.h:123
#define epicsExportRegistrar(fun)
Declare a registrar function for exporting.
Definition: epicsExport.h:94
epicsUInt8 tpro
Trace Processing.
Definition: aoRecord.h:79
struct dbRecordType * rdes
Address of dbRecordType.
Definition: aoRecord.h:76
epicsFloat64 mdel
Monitor Deadband.
Definition: aoRecord.h:116
epicsFloat64 sdly
Sim. Mode Async Delay.
Definition: aoRecord.h:134
epicsFloat64 eslo
EGU to Raw Slope.
Definition: aoRecord.h:99
epicsEnum16 nsta
New Alarm Status.
Definition: aoRecord.h:60
DBLINK siml
Simulation Mode Link.
Definition: aoRecord.h:129
epicsUInt8 udf
Undefined.
Definition: aoRecord.h:81
struct processNotifyRecord * ppnr
pprocessNotifyRecord
Definition: aoRecord.h:71
epicsInt16 phas
Scan Phase.
Definition: aoRecord.h:45
epicsInt16 init
Initialized?
Definition: aoRecord.h:126
EPICS time-stamps (epicsTimeStamp), epicsTime C++ class and C functions for handling wall-clock times...
epicsInt32 oraw
Previous Raw Value.
Definition: aoRecord.h:118
epicsFloat64 mlst
Last Val Monitored.
Definition: aoRecord.h:124
epicsUInt32 roff
Raw Offset.
Definition: aoRecord.h:97
epicsUInt8 rpro
Reprocess.
Definition: aoRecord.h:68
epicsInt32 rval
Current Raw Value.
Definition: aoRecord.h:117
char evnt[40]
Event Name.
Definition: aoRecord.h:46
epicsEnum16 sscn
Sim. Mode Scan.
Definition: aoRecord.h:133
epicsEnum16 prio
Scheduling Priority.
Definition: aoRecord.h:78
ELLLIST mlis
Monitor List.
Definition: aoRecord.h:54
epicsUInt8 pact
Record active.
Definition: aoRecord.h:66
DBLINK siol
Simulation Output Link.
Definition: aoRecord.h:128
struct epicsMutexParm * epicsMutexId
An identifier for an epicsMutex for use with the C API.
Definition: epicsMutex.h:49
epicsFloat64 val
Desired Output.
Definition: aoRecord.h:85
epicsFloat64 lopr
Low Operating Range.
Definition: aoRecord.h:103