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