EPICS Base  7.0.5.1
aiRecord.h
Go to the documentation of this file.
1 
7 #ifndef INC_aiRecord_H
8 #define INC_aiRecord_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 aiRecord;
19 typedef struct aidset {
20  dset common;
21  long (*read_ai)(struct aiRecord *prec);
22  long (*special_linconv)(struct aiRecord *prec, int after);
23 } aidset;
24 #define HAS_aidset
25 
26 #include "callback.h"
27 
29 typedef struct aiRecord {
30  char name[61];
31  char desc[41];
32  char asg[29];
33  epicsEnum16 scan;
34  epicsEnum16 pini;
35  epicsInt16 phas;
36  char evnt[40];
37  epicsInt16 tse;
38  DBLINK tsel;
39  epicsEnum16 dtyp;
40  epicsInt16 disv;
41  epicsInt16 disa;
42  DBLINK sdis;
46  epicsUInt8 disp;
47  epicsUInt8 proc;
48  epicsEnum16 stat;
49  epicsEnum16 sevr;
50  epicsEnum16 nsta;
51  epicsEnum16 nsev;
52  epicsEnum16 acks;
53  epicsEnum16 ackt;
54  epicsEnum16 diss;
55  epicsUInt8 lcnt;
56  epicsUInt8 pact;
57  epicsUInt8 putf;
58  epicsUInt8 rpro;
59  struct asgMember *asp;
60  struct processNotify *ppn;
61  struct processNotifyRecord *ppnr;
62  struct scan_element *spvt;
63  struct typed_rset *rset;
65  void *dpvt;
66  struct dbRecordType *rdes;
67  struct lockRecord *lset;
68  epicsEnum16 prio;
69  epicsUInt8 tpro;
70  epicsUInt8 bkpt;
71  epicsUInt8 udf;
72  epicsEnum16 udfs;
74  DBLINK flnk;
75  epicsFloat64 val;
76  DBLINK inp;
77  epicsInt16 prec;
78  epicsEnum16 linr;
79  epicsFloat64 eguf;
80  epicsFloat64 egul;
81  char egu[16];
82  epicsFloat64 hopr;
83  epicsFloat64 lopr;
84  epicsFloat64 aoff;
85  epicsFloat64 aslo;
86  epicsFloat64 smoo;
87  epicsFloat64 hihi;
88  epicsFloat64 lolo;
89  epicsFloat64 high;
90  epicsFloat64 low;
91  epicsEnum16 hhsv;
92  epicsEnum16 llsv;
93  epicsEnum16 hsv;
94  epicsEnum16 lsv;
95  epicsFloat64 hyst;
96  epicsFloat64 aftc;
97  epicsFloat64 adel;
98  epicsFloat64 mdel;
99  epicsFloat64 lalm;
100  epicsFloat64 afvl;
101  epicsFloat64 alst;
102  epicsFloat64 mlst;
103  epicsFloat64 eslo;
104  epicsFloat64 eoff;
105  epicsUInt32 roff;
106  void * pbrk;
107  epicsInt16 init;
108  epicsInt16 lbrk;
109  epicsInt32 rval;
110  epicsInt32 oraw;
111  DBLINK siol;
112  epicsFloat64 sval;
113  DBLINK siml;
114  epicsEnum16 simm;
115  epicsEnum16 sims;
116  epicsEnum16 oldsimm;
117  epicsEnum16 sscn;
118  epicsFloat64 sdly;
120 } aiRecord;
121 
122 typedef enum {
123  aiRecordNAME = 0,
124  aiRecordDESC = 1,
125  aiRecordASG = 2,
126  aiRecordSCAN = 3,
127  aiRecordPINI = 4,
128  aiRecordPHAS = 5,
129  aiRecordEVNT = 6,
130  aiRecordTSE = 7,
131  aiRecordTSEL = 8,
132  aiRecordDTYP = 9,
133  aiRecordDISV = 10,
134  aiRecordDISA = 11,
135  aiRecordSDIS = 12,
136  aiRecordMLOK = 13,
137  aiRecordMLIS = 14,
138  aiRecordBKLNK = 15,
139  aiRecordDISP = 16,
140  aiRecordPROC = 17,
141  aiRecordSTAT = 18,
142  aiRecordSEVR = 19,
143  aiRecordNSTA = 20,
144  aiRecordNSEV = 21,
145  aiRecordACKS = 22,
146  aiRecordACKT = 23,
147  aiRecordDISS = 24,
148  aiRecordLCNT = 25,
149  aiRecordPACT = 26,
150  aiRecordPUTF = 27,
151  aiRecordRPRO = 28,
152  aiRecordASP = 29,
153  aiRecordPPN = 30,
154  aiRecordPPNR = 31,
155  aiRecordSPVT = 32,
156  aiRecordRSET = 33,
157  aiRecordDSET = 34,
158  aiRecordDPVT = 35,
159  aiRecordRDES = 36,
160  aiRecordLSET = 37,
161  aiRecordPRIO = 38,
162  aiRecordTPRO = 39,
163  aiRecordBKPT = 40,
164  aiRecordUDF = 41,
165  aiRecordUDFS = 42,
166  aiRecordTIME = 43,
167  aiRecordFLNK = 44,
168  aiRecordVAL = 45,
169  aiRecordINP = 46,
170  aiRecordPREC = 47,
171  aiRecordLINR = 48,
172  aiRecordEGUF = 49,
173  aiRecordEGUL = 50,
174  aiRecordEGU = 51,
175  aiRecordHOPR = 52,
176  aiRecordLOPR = 53,
177  aiRecordAOFF = 54,
178  aiRecordASLO = 55,
179  aiRecordSMOO = 56,
180  aiRecordHIHI = 57,
181  aiRecordLOLO = 58,
182  aiRecordHIGH = 59,
183  aiRecordLOW = 60,
184  aiRecordHHSV = 61,
185  aiRecordLLSV = 62,
186  aiRecordHSV = 63,
187  aiRecordLSV = 64,
188  aiRecordHYST = 65,
189  aiRecordAFTC = 66,
190  aiRecordADEL = 67,
191  aiRecordMDEL = 68,
192  aiRecordLALM = 69,
193  aiRecordAFVL = 70,
194  aiRecordALST = 71,
195  aiRecordMLST = 72,
196  aiRecordESLO = 73,
197  aiRecordEOFF = 74,
198  aiRecordROFF = 75,
199  aiRecordPBRK = 76,
200  aiRecordINIT = 77,
201  aiRecordLBRK = 78,
202  aiRecordRVAL = 79,
203  aiRecordORAW = 80,
204  aiRecordSIOL = 81,
205  aiRecordSVAL = 82,
206  aiRecordSIML = 83,
207  aiRecordSIMM = 84,
208  aiRecordSIMS = 85,
209  aiRecordOLDSIMM = 86,
210  aiRecordSSCN = 87,
211  aiRecordSDLY = 88,
212  aiRecordSIMPVT = 89
213 } aiFieldIndex;
214 
215 #ifdef GEN_SIZE_OFFSET
216 
217 #include <epicsExport.h>
218 #include <cantProceed.h>
219 #ifdef __cplusplus
220 extern "C" {
221 #endif
222 static int aiRecordSizeOffset(dbRecordType *prt)
223 {
224  aiRecord *prec = 0;
225 
226  if (prt->no_fields != 90) {
227  cantProceed("IOC build or installation error:\n"
228  " The aiRecord defined in the DBD file has %d fields,\n"
229  " but the record support code was built with 90.\n",
230  prt->no_fields);
231  }
232  prt->papFldDes[aiRecordNAME]->size = sizeof(prec->name);
233  prt->papFldDes[aiRecordNAME]->offset = (unsigned short)((char *)&prec->name - (char *)prec);
234  prt->papFldDes[aiRecordDESC]->size = sizeof(prec->desc);
235  prt->papFldDes[aiRecordDESC]->offset = (unsigned short)((char *)&prec->desc - (char *)prec);
236  prt->papFldDes[aiRecordASG]->size = sizeof(prec->asg);
237  prt->papFldDes[aiRecordASG]->offset = (unsigned short)((char *)&prec->asg - (char *)prec);
238  prt->papFldDes[aiRecordSCAN]->size = sizeof(prec->scan);
239  prt->papFldDes[aiRecordSCAN]->offset = (unsigned short)((char *)&prec->scan - (char *)prec);
240  prt->papFldDes[aiRecordPINI]->size = sizeof(prec->pini);
241  prt->papFldDes[aiRecordPINI]->offset = (unsigned short)((char *)&prec->pini - (char *)prec);
242  prt->papFldDes[aiRecordPHAS]->size = sizeof(prec->phas);
243  prt->papFldDes[aiRecordPHAS]->offset = (unsigned short)((char *)&prec->phas - (char *)prec);
244  prt->papFldDes[aiRecordEVNT]->size = sizeof(prec->evnt);
245  prt->papFldDes[aiRecordEVNT]->offset = (unsigned short)((char *)&prec->evnt - (char *)prec);
246  prt->papFldDes[aiRecordTSE]->size = sizeof(prec->tse);
247  prt->papFldDes[aiRecordTSE]->offset = (unsigned short)((char *)&prec->tse - (char *)prec);
248  prt->papFldDes[aiRecordTSEL]->size = sizeof(prec->tsel);
249  prt->papFldDes[aiRecordTSEL]->offset = (unsigned short)((char *)&prec->tsel - (char *)prec);
250  prt->papFldDes[aiRecordDTYP]->size = sizeof(prec->dtyp);
251  prt->papFldDes[aiRecordDTYP]->offset = (unsigned short)((char *)&prec->dtyp - (char *)prec);
252  prt->papFldDes[aiRecordDISV]->size = sizeof(prec->disv);
253  prt->papFldDes[aiRecordDISV]->offset = (unsigned short)((char *)&prec->disv - (char *)prec);
254  prt->papFldDes[aiRecordDISA]->size = sizeof(prec->disa);
255  prt->papFldDes[aiRecordDISA]->offset = (unsigned short)((char *)&prec->disa - (char *)prec);
256  prt->papFldDes[aiRecordSDIS]->size = sizeof(prec->sdis);
257  prt->papFldDes[aiRecordSDIS]->offset = (unsigned short)((char *)&prec->sdis - (char *)prec);
258  prt->papFldDes[aiRecordMLOK]->size = sizeof(prec->mlok);
259  prt->papFldDes[aiRecordMLOK]->offset = (unsigned short)((char *)&prec->mlok - (char *)prec);
260  prt->papFldDes[aiRecordMLIS]->size = sizeof(prec->mlis);
261  prt->papFldDes[aiRecordMLIS]->offset = (unsigned short)((char *)&prec->mlis - (char *)prec);
262  prt->papFldDes[aiRecordBKLNK]->size = sizeof(prec->bklnk);
263  prt->papFldDes[aiRecordBKLNK]->offset = (unsigned short)((char *)&prec->bklnk - (char *)prec);
264  prt->papFldDes[aiRecordDISP]->size = sizeof(prec->disp);
265  prt->papFldDes[aiRecordDISP]->offset = (unsigned short)((char *)&prec->disp - (char *)prec);
266  prt->papFldDes[aiRecordPROC]->size = sizeof(prec->proc);
267  prt->papFldDes[aiRecordPROC]->offset = (unsigned short)((char *)&prec->proc - (char *)prec);
268  prt->papFldDes[aiRecordSTAT]->size = sizeof(prec->stat);
269  prt->papFldDes[aiRecordSTAT]->offset = (unsigned short)((char *)&prec->stat - (char *)prec);
270  prt->papFldDes[aiRecordSEVR]->size = sizeof(prec->sevr);
271  prt->papFldDes[aiRecordSEVR]->offset = (unsigned short)((char *)&prec->sevr - (char *)prec);
272  prt->papFldDes[aiRecordNSTA]->size = sizeof(prec->nsta);
273  prt->papFldDes[aiRecordNSTA]->offset = (unsigned short)((char *)&prec->nsta - (char *)prec);
274  prt->papFldDes[aiRecordNSEV]->size = sizeof(prec->nsev);
275  prt->papFldDes[aiRecordNSEV]->offset = (unsigned short)((char *)&prec->nsev - (char *)prec);
276  prt->papFldDes[aiRecordACKS]->size = sizeof(prec->acks);
277  prt->papFldDes[aiRecordACKS]->offset = (unsigned short)((char *)&prec->acks - (char *)prec);
278  prt->papFldDes[aiRecordACKT]->size = sizeof(prec->ackt);
279  prt->papFldDes[aiRecordACKT]->offset = (unsigned short)((char *)&prec->ackt - (char *)prec);
280  prt->papFldDes[aiRecordDISS]->size = sizeof(prec->diss);
281  prt->papFldDes[aiRecordDISS]->offset = (unsigned short)((char *)&prec->diss - (char *)prec);
282  prt->papFldDes[aiRecordLCNT]->size = sizeof(prec->lcnt);
283  prt->papFldDes[aiRecordLCNT]->offset = (unsigned short)((char *)&prec->lcnt - (char *)prec);
284  prt->papFldDes[aiRecordPACT]->size = sizeof(prec->pact);
285  prt->papFldDes[aiRecordPACT]->offset = (unsigned short)((char *)&prec->pact - (char *)prec);
286  prt->papFldDes[aiRecordPUTF]->size = sizeof(prec->putf);
287  prt->papFldDes[aiRecordPUTF]->offset = (unsigned short)((char *)&prec->putf - (char *)prec);
288  prt->papFldDes[aiRecordRPRO]->size = sizeof(prec->rpro);
289  prt->papFldDes[aiRecordRPRO]->offset = (unsigned short)((char *)&prec->rpro - (char *)prec);
290  prt->papFldDes[aiRecordASP]->size = sizeof(prec->asp);
291  prt->papFldDes[aiRecordASP]->offset = (unsigned short)((char *)&prec->asp - (char *)prec);
292  prt->papFldDes[aiRecordPPN]->size = sizeof(prec->ppn);
293  prt->papFldDes[aiRecordPPN]->offset = (unsigned short)((char *)&prec->ppn - (char *)prec);
294  prt->papFldDes[aiRecordPPNR]->size = sizeof(prec->ppnr);
295  prt->papFldDes[aiRecordPPNR]->offset = (unsigned short)((char *)&prec->ppnr - (char *)prec);
296  prt->papFldDes[aiRecordSPVT]->size = sizeof(prec->spvt);
297  prt->papFldDes[aiRecordSPVT]->offset = (unsigned short)((char *)&prec->spvt - (char *)prec);
298  prt->papFldDes[aiRecordRSET]->size = sizeof(prec->rset);
299  prt->papFldDes[aiRecordRSET]->offset = (unsigned short)((char *)&prec->rset - (char *)prec);
300  prt->papFldDes[aiRecordDSET]->size = sizeof(prec->dset);
301  prt->papFldDes[aiRecordDSET]->offset = (unsigned short)((char *)&prec->dset - (char *)prec);
302  prt->papFldDes[aiRecordDPVT]->size = sizeof(prec->dpvt);
303  prt->papFldDes[aiRecordDPVT]->offset = (unsigned short)((char *)&prec->dpvt - (char *)prec);
304  prt->papFldDes[aiRecordRDES]->size = sizeof(prec->rdes);
305  prt->papFldDes[aiRecordRDES]->offset = (unsigned short)((char *)&prec->rdes - (char *)prec);
306  prt->papFldDes[aiRecordLSET]->size = sizeof(prec->lset);
307  prt->papFldDes[aiRecordLSET]->offset = (unsigned short)((char *)&prec->lset - (char *)prec);
308  prt->papFldDes[aiRecordPRIO]->size = sizeof(prec->prio);
309  prt->papFldDes[aiRecordPRIO]->offset = (unsigned short)((char *)&prec->prio - (char *)prec);
310  prt->papFldDes[aiRecordTPRO]->size = sizeof(prec->tpro);
311  prt->papFldDes[aiRecordTPRO]->offset = (unsigned short)((char *)&prec->tpro - (char *)prec);
312  prt->papFldDes[aiRecordBKPT]->size = sizeof(prec->bkpt);
313  prt->papFldDes[aiRecordBKPT]->offset = (unsigned short)((char *)&prec->bkpt - (char *)prec);
314  prt->papFldDes[aiRecordUDF]->size = sizeof(prec->udf);
315  prt->papFldDes[aiRecordUDF]->offset = (unsigned short)((char *)&prec->udf - (char *)prec);
316  prt->papFldDes[aiRecordUDFS]->size = sizeof(prec->udfs);
317  prt->papFldDes[aiRecordUDFS]->offset = (unsigned short)((char *)&prec->udfs - (char *)prec);
318  prt->papFldDes[aiRecordTIME]->size = sizeof(prec->time);
319  prt->papFldDes[aiRecordTIME]->offset = (unsigned short)((char *)&prec->time - (char *)prec);
320  prt->papFldDes[aiRecordFLNK]->size = sizeof(prec->flnk);
321  prt->papFldDes[aiRecordFLNK]->offset = (unsigned short)((char *)&prec->flnk - (char *)prec);
322  prt->papFldDes[aiRecordVAL]->size = sizeof(prec->val);
323  prt->papFldDes[aiRecordVAL]->offset = (unsigned short)((char *)&prec->val - (char *)prec);
324  prt->papFldDes[aiRecordINP]->size = sizeof(prec->inp);
325  prt->papFldDes[aiRecordINP]->offset = (unsigned short)((char *)&prec->inp - (char *)prec);
326  prt->papFldDes[aiRecordPREC]->size = sizeof(prec->prec);
327  prt->papFldDes[aiRecordPREC]->offset = (unsigned short)((char *)&prec->prec - (char *)prec);
328  prt->papFldDes[aiRecordLINR]->size = sizeof(prec->linr);
329  prt->papFldDes[aiRecordLINR]->offset = (unsigned short)((char *)&prec->linr - (char *)prec);
330  prt->papFldDes[aiRecordEGUF]->size = sizeof(prec->eguf);
331  prt->papFldDes[aiRecordEGUF]->offset = (unsigned short)((char *)&prec->eguf - (char *)prec);
332  prt->papFldDes[aiRecordEGUL]->size = sizeof(prec->egul);
333  prt->papFldDes[aiRecordEGUL]->offset = (unsigned short)((char *)&prec->egul - (char *)prec);
334  prt->papFldDes[aiRecordEGU]->size = sizeof(prec->egu);
335  prt->papFldDes[aiRecordEGU]->offset = (unsigned short)((char *)&prec->egu - (char *)prec);
336  prt->papFldDes[aiRecordHOPR]->size = sizeof(prec->hopr);
337  prt->papFldDes[aiRecordHOPR]->offset = (unsigned short)((char *)&prec->hopr - (char *)prec);
338  prt->papFldDes[aiRecordLOPR]->size = sizeof(prec->lopr);
339  prt->papFldDes[aiRecordLOPR]->offset = (unsigned short)((char *)&prec->lopr - (char *)prec);
340  prt->papFldDes[aiRecordAOFF]->size = sizeof(prec->aoff);
341  prt->papFldDes[aiRecordAOFF]->offset = (unsigned short)((char *)&prec->aoff - (char *)prec);
342  prt->papFldDes[aiRecordASLO]->size = sizeof(prec->aslo);
343  prt->papFldDes[aiRecordASLO]->offset = (unsigned short)((char *)&prec->aslo - (char *)prec);
344  prt->papFldDes[aiRecordSMOO]->size = sizeof(prec->smoo);
345  prt->papFldDes[aiRecordSMOO]->offset = (unsigned short)((char *)&prec->smoo - (char *)prec);
346  prt->papFldDes[aiRecordHIHI]->size = sizeof(prec->hihi);
347  prt->papFldDes[aiRecordHIHI]->offset = (unsigned short)((char *)&prec->hihi - (char *)prec);
348  prt->papFldDes[aiRecordLOLO]->size = sizeof(prec->lolo);
349  prt->papFldDes[aiRecordLOLO]->offset = (unsigned short)((char *)&prec->lolo - (char *)prec);
350  prt->papFldDes[aiRecordHIGH]->size = sizeof(prec->high);
351  prt->papFldDes[aiRecordHIGH]->offset = (unsigned short)((char *)&prec->high - (char *)prec);
352  prt->papFldDes[aiRecordLOW]->size = sizeof(prec->low);
353  prt->papFldDes[aiRecordLOW]->offset = (unsigned short)((char *)&prec->low - (char *)prec);
354  prt->papFldDes[aiRecordHHSV]->size = sizeof(prec->hhsv);
355  prt->papFldDes[aiRecordHHSV]->offset = (unsigned short)((char *)&prec->hhsv - (char *)prec);
356  prt->papFldDes[aiRecordLLSV]->size = sizeof(prec->llsv);
357  prt->papFldDes[aiRecordLLSV]->offset = (unsigned short)((char *)&prec->llsv - (char *)prec);
358  prt->papFldDes[aiRecordHSV]->size = sizeof(prec->hsv);
359  prt->papFldDes[aiRecordHSV]->offset = (unsigned short)((char *)&prec->hsv - (char *)prec);
360  prt->papFldDes[aiRecordLSV]->size = sizeof(prec->lsv);
361  prt->papFldDes[aiRecordLSV]->offset = (unsigned short)((char *)&prec->lsv - (char *)prec);
362  prt->papFldDes[aiRecordHYST]->size = sizeof(prec->hyst);
363  prt->papFldDes[aiRecordHYST]->offset = (unsigned short)((char *)&prec->hyst - (char *)prec);
364  prt->papFldDes[aiRecordAFTC]->size = sizeof(prec->aftc);
365  prt->papFldDes[aiRecordAFTC]->offset = (unsigned short)((char *)&prec->aftc - (char *)prec);
366  prt->papFldDes[aiRecordADEL]->size = sizeof(prec->adel);
367  prt->papFldDes[aiRecordADEL]->offset = (unsigned short)((char *)&prec->adel - (char *)prec);
368  prt->papFldDes[aiRecordMDEL]->size = sizeof(prec->mdel);
369  prt->papFldDes[aiRecordMDEL]->offset = (unsigned short)((char *)&prec->mdel - (char *)prec);
370  prt->papFldDes[aiRecordLALM]->size = sizeof(prec->lalm);
371  prt->papFldDes[aiRecordLALM]->offset = (unsigned short)((char *)&prec->lalm - (char *)prec);
372  prt->papFldDes[aiRecordAFVL]->size = sizeof(prec->afvl);
373  prt->papFldDes[aiRecordAFVL]->offset = (unsigned short)((char *)&prec->afvl - (char *)prec);
374  prt->papFldDes[aiRecordALST]->size = sizeof(prec->alst);
375  prt->papFldDes[aiRecordALST]->offset = (unsigned short)((char *)&prec->alst - (char *)prec);
376  prt->papFldDes[aiRecordMLST]->size = sizeof(prec->mlst);
377  prt->papFldDes[aiRecordMLST]->offset = (unsigned short)((char *)&prec->mlst - (char *)prec);
378  prt->papFldDes[aiRecordESLO]->size = sizeof(prec->eslo);
379  prt->papFldDes[aiRecordESLO]->offset = (unsigned short)((char *)&prec->eslo - (char *)prec);
380  prt->papFldDes[aiRecordEOFF]->size = sizeof(prec->eoff);
381  prt->papFldDes[aiRecordEOFF]->offset = (unsigned short)((char *)&prec->eoff - (char *)prec);
382  prt->papFldDes[aiRecordROFF]->size = sizeof(prec->roff);
383  prt->papFldDes[aiRecordROFF]->offset = (unsigned short)((char *)&prec->roff - (char *)prec);
384  prt->papFldDes[aiRecordPBRK]->size = sizeof(prec->pbrk);
385  prt->papFldDes[aiRecordPBRK]->offset = (unsigned short)((char *)&prec->pbrk - (char *)prec);
386  prt->papFldDes[aiRecordINIT]->size = sizeof(prec->init);
387  prt->papFldDes[aiRecordINIT]->offset = (unsigned short)((char *)&prec->init - (char *)prec);
388  prt->papFldDes[aiRecordLBRK]->size = sizeof(prec->lbrk);
389  prt->papFldDes[aiRecordLBRK]->offset = (unsigned short)((char *)&prec->lbrk - (char *)prec);
390  prt->papFldDes[aiRecordRVAL]->size = sizeof(prec->rval);
391  prt->papFldDes[aiRecordRVAL]->offset = (unsigned short)((char *)&prec->rval - (char *)prec);
392  prt->papFldDes[aiRecordORAW]->size = sizeof(prec->oraw);
393  prt->papFldDes[aiRecordORAW]->offset = (unsigned short)((char *)&prec->oraw - (char *)prec);
394  prt->papFldDes[aiRecordSIOL]->size = sizeof(prec->siol);
395  prt->papFldDes[aiRecordSIOL]->offset = (unsigned short)((char *)&prec->siol - (char *)prec);
396  prt->papFldDes[aiRecordSVAL]->size = sizeof(prec->sval);
397  prt->papFldDes[aiRecordSVAL]->offset = (unsigned short)((char *)&prec->sval - (char *)prec);
398  prt->papFldDes[aiRecordSIML]->size = sizeof(prec->siml);
399  prt->papFldDes[aiRecordSIML]->offset = (unsigned short)((char *)&prec->siml - (char *)prec);
400  prt->papFldDes[aiRecordSIMM]->size = sizeof(prec->simm);
401  prt->papFldDes[aiRecordSIMM]->offset = (unsigned short)((char *)&prec->simm - (char *)prec);
402  prt->papFldDes[aiRecordSIMS]->size = sizeof(prec->sims);
403  prt->papFldDes[aiRecordSIMS]->offset = (unsigned short)((char *)&prec->sims - (char *)prec);
404  prt->papFldDes[aiRecordOLDSIMM]->size = sizeof(prec->oldsimm);
405  prt->papFldDes[aiRecordOLDSIMM]->offset = (unsigned short)((char *)&prec->oldsimm - (char *)prec);
406  prt->papFldDes[aiRecordSSCN]->size = sizeof(prec->sscn);
407  prt->papFldDes[aiRecordSSCN]->offset = (unsigned short)((char *)&prec->sscn - (char *)prec);
408  prt->papFldDes[aiRecordSDLY]->size = sizeof(prec->sdly);
409  prt->papFldDes[aiRecordSDLY]->offset = (unsigned short)((char *)&prec->sdly - (char *)prec);
410  prt->papFldDes[aiRecordSIMPVT]->size = sizeof(prec->simpvt);
411  prt->papFldDes[aiRecordSIMPVT]->offset = (unsigned short)((char *)&prec->simpvt - (char *)prec);
412  prt->rec_size = sizeof(*prec);
413  return 0;
414 }
415 epicsExportRegistrar(aiRecordSizeOffset);
416 
417 #ifdef __cplusplus
418 }
419 #endif
420 #endif /* GEN_SIZE_OFFSET */
421 
422 #endif /* INC_aiRecord_H */
epicsFloat64 mlst
Last Val Monitored.
Definition: aiRecord.h:102
epicsTimeStamp time
Time.
Definition: aiRecord.h:73
epicsFloat64 hihi
Hihi Alarm Limit.
Definition: aiRecord.h:87
epicsCallback * simpvt
Sim. Mode Private.
Definition: aiRecord.h:119
epicsEnum16 sims
Simulation Mode Severity.
Definition: aiRecord.h:115
struct dbRecordType * rdes
Address of dbRecordType.
Definition: aiRecord.h:66
epicsFloat64 lalm
Last Value Alarmed.
Definition: aiRecord.h:99
epicsFloat64 eoff
Raw to EGU Offset.
Definition: aiRecord.h:104
epicsInt16 disa
Disable.
Definition: aiRecord.h:41
epicsEnum16 hhsv
Hihi Severity.
Definition: aiRecord.h:91
char name[61]
Record Name.
Definition: aiRecord.h:30
epicsEnum16 lsv
Low Severity.
Definition: aiRecord.h:94
epicsUInt8 tpro
Trace Processing.
Definition: aiRecord.h:69
LIBCOM_API void cantProceed(const char *errorMessage,...) EPICS_PRINTF_STYLE(1
Suspend this thread, the caller cannot continue or return.
DBLINK siml
Simulation Mode Link.
Definition: aiRecord.h:113
struct typed_rset * rset
Address of RSET.
Definition: aiRecord.h:63
epicsFloat64 lolo
Lolo Alarm Limit.
Definition: aiRecord.h:88
The core data types used by epics.
DBLINK sdis
Scanning Disable.
Definition: aiRecord.h:42
epicsFloat64 val
Current EGU Value.
Definition: aiRecord.h:75
Exporting IOC objects.
epicsEnum16 diss
Disable Alarm Sevrty.
Definition: aiRecord.h:54
epicsEnum16 pini
Process at iocInit.
Definition: aiRecord.h:34
epicsFloat64 aftc
Alarm Filter Time Constant.
Definition: aiRecord.h:96
epicsEnum16 acks
Alarm Ack Severity.
Definition: aiRecord.h:52
epicsEnum16 prio
Scheduling Priority.
Definition: aiRecord.h:68
epicsInt16 tse
Time Stamp Event.
Definition: aiRecord.h:37
epicsFloat64 lopr
Low Operating Range.
Definition: aiRecord.h:83
char evnt[40]
Event Name.
Definition: aiRecord.h:36
void * pbrk
Ptrto brkTable.
Definition: aiRecord.h:106
Routines for code that can&#39;t continue or return after an error.
epicsEnum16 nsta
New Alarm Status.
Definition: aiRecord.h:50
epicsInt32 oraw
Previous Raw Value.
Definition: aiRecord.h:110
ELLLIST bklnk
Backwards link tracking.
Definition: aiRecord.h:45
epicsInt16 phas
Scan Phase.
Definition: aiRecord.h:35
epicsFloat64 high
High Alarm Limit.
Definition: aiRecord.h:89
epicsFloat64 low
Low Alarm Limit.
Definition: aiRecord.h:90
epicsFloat64 sdly
Sim. Mode Async Delay.
Definition: aiRecord.h:118
epicsEnum16 oldsimm
Prev. Simulation Mode.
Definition: aiRecord.h:116
epicsFloat64 smoo
Smoothing.
Definition: aiRecord.h:86
epicsFloat64 aslo
Adjustment Slope.
Definition: aiRecord.h:85
DBLINK tsel
Time Stamp Link.
Definition: aiRecord.h:38
epicsFloat64 eguf
Engineer Units Full.
Definition: aiRecord.h:79
epicsInt32 rval
Current Raw Value.
Definition: aiRecord.h:109
Definition: devSup.h:141
epicsInt16 lbrk
LastBreak Point.
Definition: aiRecord.h:108
epicsInt16 disv
Disable Value.
Definition: aiRecord.h:40
EPICS time stamp, for use from C code.
Definition: epicsTime.h:34
A doubly-linked list library.
epicsFloat64 afvl
Alarm Filter Value.
Definition: aiRecord.h:100
epicsUInt8 lcnt
Lock Count.
Definition: aiRecord.h:55
struct processNotifyRecord * ppnr
pprocessNotifyRecord
Definition: aiRecord.h:61
List header type.
Definition: ellLib.h:57
epicsFloat64 hopr
High Operating Range.
Definition: aiRecord.h:82
struct scan_element * spvt
Scan Private.
Definition: aiRecord.h:62
struct lockRecord * lset
Lock Set.
Definition: aiRecord.h:67
epicsFloat64 egul
Engineer Units Low.
Definition: aiRecord.h:80
epicsFloat64 hyst
Alarm Deadband.
Definition: aiRecord.h:95
epicsEnum16 sevr
Alarm Severity.
Definition: aiRecord.h:49
epicsUInt8 rpro
Reprocess.
Definition: aiRecord.h:58
epicsUInt8 disp
Disable putField.
Definition: aiRecord.h:46
epicsInt16 init
Initialized?
Definition: aiRecord.h:107
Declaration of ai record type.
Definition: aiRecord.h:29
ELLLIST mlis
Monitor List.
Definition: aiRecord.h:44
epicsEnum16 scan
Scan Mechanism.
Definition: aiRecord.h:33
epicsFloat64 aoff
Adjustment Offset.
Definition: aiRecord.h:84
epicsEnum16 simm
Simulation Mode.
Definition: aiRecord.h:114
epicsEnum16 linr
Linearization.
Definition: aiRecord.h:78
char desc[41]
Descriptor.
Definition: aiRecord.h:31
APIs for the epicsMutex mutual exclusion semaphore.
struct processNotify * ppn
pprocessNotify
Definition: aiRecord.h:60
epicsUInt8 udf
Undefined.
Definition: aiRecord.h:71
epicsMutexId mlok
Monitor lock.
Definition: aiRecord.h:43
Device support routines.
DBLINK siol
Simulation Input Link.
Definition: aiRecord.h:111
epicsEnum16 hsv
High Severity.
Definition: aiRecord.h:93
epicsEnum16 llsv
Lolo Severity.
Definition: aiRecord.h:92
DBLINK inp
Input Specification.
Definition: aiRecord.h:76
epicsEnum16 stat
Alarm Status.
Definition: aiRecord.h:48
struct asgMember * asp
Access Security Pvt.
Definition: aiRecord.h:59
epicsUInt8 proc
Force Processing.
Definition: aiRecord.h:47
epicsUInt8 putf
dbPutField process
Definition: aiRecord.h:57
#define epicsExportRegistrar(fun)
Declare a registrar function for exporting.
Definition: epicsExport.h:94
epicsFloat64 adel
Archive Deadband.
Definition: aiRecord.h:97
epicsFloat64 mdel
Monitor Deadband.
Definition: aiRecord.h:98
epicsInt16 prec
Display Precision.
Definition: aiRecord.h:77
epicsEnum16 udfs
Undefined Alarm Sevrty.
Definition: aiRecord.h:72
epicsFloat64 alst
Last Value Archived.
Definition: aiRecord.h:101
epicsEnum16 sscn
Sim. Mode Scan.
Definition: aiRecord.h:117
EPICS time-stamps (epicsTimeStamp), epicsTime C++ class and C functions for handling wall-clock times...
DBLINK flnk
Forward Process Link.
Definition: aiRecord.h:74
unambiguous_dset * dset
DSET address.
Definition: aiRecord.h:64
epicsEnum16 dtyp
Device Type.
Definition: aiRecord.h:39
void * dpvt
Device Private.
Definition: aiRecord.h:65
epicsFloat64 sval
Simulation Value.
Definition: aiRecord.h:112
epicsFloat64 eslo
Raw to EGU Slope.
Definition: aiRecord.h:103
char egu[16]
Engineering Units.
Definition: aiRecord.h:81
epicsUInt8 pact
Record active.
Definition: aiRecord.h:56
struct epicsMutexParm * epicsMutexId
An identifier for an epicsMutex for use with the C API.
Definition: epicsMutex.h:49
epicsEnum16 ackt
Alarm Ack Transient.
Definition: aiRecord.h:53
epicsEnum16 nsev
New Alarm Severity.
Definition: aiRecord.h:51
epicsUInt8 bkpt
Break Point.
Definition: aiRecord.h:70
epicsUInt32 roff
Raw Offset.
Definition: aiRecord.h:105
char asg[29]
Access Security Group.
Definition: aiRecord.h:32