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