EPICS Base  7.0.6.1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
permissiveRecord.h
Go to the documentation of this file.
1 
7 #ifndef INC_permissiveRecord_H
8 #define INC_permissiveRecord_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 
18 typedef struct permissiveRecord {
19  char name[61];
20  char desc[41];
21  char asg[29];
22  epicsEnum16 scan;
23  epicsEnum16 pini;
24  epicsInt16 phas;
25  char evnt[40];
26  epicsInt16 tse;
27  DBLINK tsel;
28  epicsEnum16 dtyp;
29  epicsInt16 disv;
30  epicsInt16 disa;
31  DBLINK sdis;
35  epicsUInt8 disp;
36  epicsUInt8 proc;
37  epicsEnum16 stat;
38  epicsEnum16 sevr;
39  char amsg[40];
40  epicsEnum16 nsta;
41  epicsEnum16 nsev;
42  char namsg[40];
43  epicsEnum16 acks;
44  epicsEnum16 ackt;
45  epicsEnum16 diss;
46  epicsUInt8 lcnt;
47  epicsUInt8 pact;
48  epicsUInt8 putf;
49  epicsUInt8 rpro;
50  struct asgMember *asp;
51  struct processNotify *ppn;
52  struct processNotifyRecord *ppnr;
53  struct scan_element *spvt;
54  struct typed_rset *rset;
56  void *dpvt;
57  struct dbRecordType *rdes;
58  struct lockRecord *lset;
59  epicsEnum16 prio;
60  epicsUInt8 tpro;
61  epicsUInt8 bkpt;
62  epicsUInt8 udf;
63  epicsEnum16 udfs;
65  epicsUInt64 utag;
66  DBLINK flnk;
67  epicsUInt16 val;
68  epicsUInt16 wflg;
69  char labl[20];
70  epicsUInt16 oval;
71  epicsUInt16 oflg;
73 
74 typedef enum {
75  permissiveRecordNAME = 0,
76  permissiveRecordDESC = 1,
77  permissiveRecordASG = 2,
78  permissiveRecordSCAN = 3,
79  permissiveRecordPINI = 4,
80  permissiveRecordPHAS = 5,
81  permissiveRecordEVNT = 6,
82  permissiveRecordTSE = 7,
83  permissiveRecordTSEL = 8,
84  permissiveRecordDTYP = 9,
85  permissiveRecordDISV = 10,
86  permissiveRecordDISA = 11,
87  permissiveRecordSDIS = 12,
88  permissiveRecordMLOK = 13,
89  permissiveRecordMLIS = 14,
90  permissiveRecordBKLNK = 15,
91  permissiveRecordDISP = 16,
92  permissiveRecordPROC = 17,
93  permissiveRecordSTAT = 18,
94  permissiveRecordSEVR = 19,
95  permissiveRecordAMSG = 20,
96  permissiveRecordNSTA = 21,
97  permissiveRecordNSEV = 22,
98  permissiveRecordNAMSG = 23,
99  permissiveRecordACKS = 24,
100  permissiveRecordACKT = 25,
101  permissiveRecordDISS = 26,
102  permissiveRecordLCNT = 27,
103  permissiveRecordPACT = 28,
104  permissiveRecordPUTF = 29,
105  permissiveRecordRPRO = 30,
106  permissiveRecordASP = 31,
107  permissiveRecordPPN = 32,
108  permissiveRecordPPNR = 33,
109  permissiveRecordSPVT = 34,
110  permissiveRecordRSET = 35,
111  permissiveRecordDSET = 36,
112  permissiveRecordDPVT = 37,
113  permissiveRecordRDES = 38,
114  permissiveRecordLSET = 39,
115  permissiveRecordPRIO = 40,
116  permissiveRecordTPRO = 41,
117  permissiveRecordBKPT = 42,
118  permissiveRecordUDF = 43,
119  permissiveRecordUDFS = 44,
120  permissiveRecordTIME = 45,
121  permissiveRecordUTAG = 46,
122  permissiveRecordFLNK = 47,
123  permissiveRecordVAL = 48,
124  permissiveRecordWFLG = 49,
125  permissiveRecordLABL = 50,
126  permissiveRecordOVAL = 51,
127  permissiveRecordOFLG = 52
128 } permissiveFieldIndex;
129 
130 #ifdef GEN_SIZE_OFFSET
131 
132 #include <epicsExport.h>
133 #include <cantProceed.h>
134 #ifdef __cplusplus
135 extern "C" {
136 #endif
137 static int permissiveRecordSizeOffset(dbRecordType *prt)
138 {
139  permissiveRecord *prec = 0;
140 
141  if (prt->no_fields != 53) {
142  cantProceed("IOC build or installation error:\n"
143  " The permissiveRecord defined in the DBD file has %d fields,\n"
144  " but the record support code was built with 53.\n",
145  prt->no_fields);
146  }
147  prt->papFldDes[permissiveRecordNAME]->size = sizeof(prec->name);
148  prt->papFldDes[permissiveRecordNAME]->offset = (unsigned short)((char *)&prec->name - (char *)prec);
149  prt->papFldDes[permissiveRecordDESC]->size = sizeof(prec->desc);
150  prt->papFldDes[permissiveRecordDESC]->offset = (unsigned short)((char *)&prec->desc - (char *)prec);
151  prt->papFldDes[permissiveRecordASG]->size = sizeof(prec->asg);
152  prt->papFldDes[permissiveRecordASG]->offset = (unsigned short)((char *)&prec->asg - (char *)prec);
153  prt->papFldDes[permissiveRecordSCAN]->size = sizeof(prec->scan);
154  prt->papFldDes[permissiveRecordSCAN]->offset = (unsigned short)((char *)&prec->scan - (char *)prec);
155  prt->papFldDes[permissiveRecordPINI]->size = sizeof(prec->pini);
156  prt->papFldDes[permissiveRecordPINI]->offset = (unsigned short)((char *)&prec->pini - (char *)prec);
157  prt->papFldDes[permissiveRecordPHAS]->size = sizeof(prec->phas);
158  prt->papFldDes[permissiveRecordPHAS]->offset = (unsigned short)((char *)&prec->phas - (char *)prec);
159  prt->papFldDes[permissiveRecordEVNT]->size = sizeof(prec->evnt);
160  prt->papFldDes[permissiveRecordEVNT]->offset = (unsigned short)((char *)&prec->evnt - (char *)prec);
161  prt->papFldDes[permissiveRecordTSE]->size = sizeof(prec->tse);
162  prt->papFldDes[permissiveRecordTSE]->offset = (unsigned short)((char *)&prec->tse - (char *)prec);
163  prt->papFldDes[permissiveRecordTSEL]->size = sizeof(prec->tsel);
164  prt->papFldDes[permissiveRecordTSEL]->offset = (unsigned short)((char *)&prec->tsel - (char *)prec);
165  prt->papFldDes[permissiveRecordDTYP]->size = sizeof(prec->dtyp);
166  prt->papFldDes[permissiveRecordDTYP]->offset = (unsigned short)((char *)&prec->dtyp - (char *)prec);
167  prt->papFldDes[permissiveRecordDISV]->size = sizeof(prec->disv);
168  prt->papFldDes[permissiveRecordDISV]->offset = (unsigned short)((char *)&prec->disv - (char *)prec);
169  prt->papFldDes[permissiveRecordDISA]->size = sizeof(prec->disa);
170  prt->papFldDes[permissiveRecordDISA]->offset = (unsigned short)((char *)&prec->disa - (char *)prec);
171  prt->papFldDes[permissiveRecordSDIS]->size = sizeof(prec->sdis);
172  prt->papFldDes[permissiveRecordSDIS]->offset = (unsigned short)((char *)&prec->sdis - (char *)prec);
173  prt->papFldDes[permissiveRecordMLOK]->size = sizeof(prec->mlok);
174  prt->papFldDes[permissiveRecordMLOK]->offset = (unsigned short)((char *)&prec->mlok - (char *)prec);
175  prt->papFldDes[permissiveRecordMLIS]->size = sizeof(prec->mlis);
176  prt->papFldDes[permissiveRecordMLIS]->offset = (unsigned short)((char *)&prec->mlis - (char *)prec);
177  prt->papFldDes[permissiveRecordBKLNK]->size = sizeof(prec->bklnk);
178  prt->papFldDes[permissiveRecordBKLNK]->offset = (unsigned short)((char *)&prec->bklnk - (char *)prec);
179  prt->papFldDes[permissiveRecordDISP]->size = sizeof(prec->disp);
180  prt->papFldDes[permissiveRecordDISP]->offset = (unsigned short)((char *)&prec->disp - (char *)prec);
181  prt->papFldDes[permissiveRecordPROC]->size = sizeof(prec->proc);
182  prt->papFldDes[permissiveRecordPROC]->offset = (unsigned short)((char *)&prec->proc - (char *)prec);
183  prt->papFldDes[permissiveRecordSTAT]->size = sizeof(prec->stat);
184  prt->papFldDes[permissiveRecordSTAT]->offset = (unsigned short)((char *)&prec->stat - (char *)prec);
185  prt->papFldDes[permissiveRecordSEVR]->size = sizeof(prec->sevr);
186  prt->papFldDes[permissiveRecordSEVR]->offset = (unsigned short)((char *)&prec->sevr - (char *)prec);
187  prt->papFldDes[permissiveRecordAMSG]->size = sizeof(prec->amsg);
188  prt->papFldDes[permissiveRecordAMSG]->offset = (unsigned short)((char *)&prec->amsg - (char *)prec);
189  prt->papFldDes[permissiveRecordNSTA]->size = sizeof(prec->nsta);
190  prt->papFldDes[permissiveRecordNSTA]->offset = (unsigned short)((char *)&prec->nsta - (char *)prec);
191  prt->papFldDes[permissiveRecordNSEV]->size = sizeof(prec->nsev);
192  prt->papFldDes[permissiveRecordNSEV]->offset = (unsigned short)((char *)&prec->nsev - (char *)prec);
193  prt->papFldDes[permissiveRecordNAMSG]->size = sizeof(prec->namsg);
194  prt->papFldDes[permissiveRecordNAMSG]->offset = (unsigned short)((char *)&prec->namsg - (char *)prec);
195  prt->papFldDes[permissiveRecordACKS]->size = sizeof(prec->acks);
196  prt->papFldDes[permissiveRecordACKS]->offset = (unsigned short)((char *)&prec->acks - (char *)prec);
197  prt->papFldDes[permissiveRecordACKT]->size = sizeof(prec->ackt);
198  prt->papFldDes[permissiveRecordACKT]->offset = (unsigned short)((char *)&prec->ackt - (char *)prec);
199  prt->papFldDes[permissiveRecordDISS]->size = sizeof(prec->diss);
200  prt->papFldDes[permissiveRecordDISS]->offset = (unsigned short)((char *)&prec->diss - (char *)prec);
201  prt->papFldDes[permissiveRecordLCNT]->size = sizeof(prec->lcnt);
202  prt->papFldDes[permissiveRecordLCNT]->offset = (unsigned short)((char *)&prec->lcnt - (char *)prec);
203  prt->papFldDes[permissiveRecordPACT]->size = sizeof(prec->pact);
204  prt->papFldDes[permissiveRecordPACT]->offset = (unsigned short)((char *)&prec->pact - (char *)prec);
205  prt->papFldDes[permissiveRecordPUTF]->size = sizeof(prec->putf);
206  prt->papFldDes[permissiveRecordPUTF]->offset = (unsigned short)((char *)&prec->putf - (char *)prec);
207  prt->papFldDes[permissiveRecordRPRO]->size = sizeof(prec->rpro);
208  prt->papFldDes[permissiveRecordRPRO]->offset = (unsigned short)((char *)&prec->rpro - (char *)prec);
209  prt->papFldDes[permissiveRecordASP]->size = sizeof(prec->asp);
210  prt->papFldDes[permissiveRecordASP]->offset = (unsigned short)((char *)&prec->asp - (char *)prec);
211  prt->papFldDes[permissiveRecordPPN]->size = sizeof(prec->ppn);
212  prt->papFldDes[permissiveRecordPPN]->offset = (unsigned short)((char *)&prec->ppn - (char *)prec);
213  prt->papFldDes[permissiveRecordPPNR]->size = sizeof(prec->ppnr);
214  prt->papFldDes[permissiveRecordPPNR]->offset = (unsigned short)((char *)&prec->ppnr - (char *)prec);
215  prt->papFldDes[permissiveRecordSPVT]->size = sizeof(prec->spvt);
216  prt->papFldDes[permissiveRecordSPVT]->offset = (unsigned short)((char *)&prec->spvt - (char *)prec);
217  prt->papFldDes[permissiveRecordRSET]->size = sizeof(prec->rset);
218  prt->papFldDes[permissiveRecordRSET]->offset = (unsigned short)((char *)&prec->rset - (char *)prec);
219  prt->papFldDes[permissiveRecordDSET]->size = sizeof(prec->dset);
220  prt->papFldDes[permissiveRecordDSET]->offset = (unsigned short)((char *)&prec->dset - (char *)prec);
221  prt->papFldDes[permissiveRecordDPVT]->size = sizeof(prec->dpvt);
222  prt->papFldDes[permissiveRecordDPVT]->offset = (unsigned short)((char *)&prec->dpvt - (char *)prec);
223  prt->papFldDes[permissiveRecordRDES]->size = sizeof(prec->rdes);
224  prt->papFldDes[permissiveRecordRDES]->offset = (unsigned short)((char *)&prec->rdes - (char *)prec);
225  prt->papFldDes[permissiveRecordLSET]->size = sizeof(prec->lset);
226  prt->papFldDes[permissiveRecordLSET]->offset = (unsigned short)((char *)&prec->lset - (char *)prec);
227  prt->papFldDes[permissiveRecordPRIO]->size = sizeof(prec->prio);
228  prt->papFldDes[permissiveRecordPRIO]->offset = (unsigned short)((char *)&prec->prio - (char *)prec);
229  prt->papFldDes[permissiveRecordTPRO]->size = sizeof(prec->tpro);
230  prt->papFldDes[permissiveRecordTPRO]->offset = (unsigned short)((char *)&prec->tpro - (char *)prec);
231  prt->papFldDes[permissiveRecordBKPT]->size = sizeof(prec->bkpt);
232  prt->papFldDes[permissiveRecordBKPT]->offset = (unsigned short)((char *)&prec->bkpt - (char *)prec);
233  prt->papFldDes[permissiveRecordUDF]->size = sizeof(prec->udf);
234  prt->papFldDes[permissiveRecordUDF]->offset = (unsigned short)((char *)&prec->udf - (char *)prec);
235  prt->papFldDes[permissiveRecordUDFS]->size = sizeof(prec->udfs);
236  prt->papFldDes[permissiveRecordUDFS]->offset = (unsigned short)((char *)&prec->udfs - (char *)prec);
237  prt->papFldDes[permissiveRecordTIME]->size = sizeof(prec->time);
238  prt->papFldDes[permissiveRecordTIME]->offset = (unsigned short)((char *)&prec->time - (char *)prec);
239  prt->papFldDes[permissiveRecordUTAG]->size = sizeof(prec->utag);
240  prt->papFldDes[permissiveRecordUTAG]->offset = (unsigned short)((char *)&prec->utag - (char *)prec);
241  prt->papFldDes[permissiveRecordFLNK]->size = sizeof(prec->flnk);
242  prt->papFldDes[permissiveRecordFLNK]->offset = (unsigned short)((char *)&prec->flnk - (char *)prec);
243  prt->papFldDes[permissiveRecordVAL]->size = sizeof(prec->val);
244  prt->papFldDes[permissiveRecordVAL]->offset = (unsigned short)((char *)&prec->val - (char *)prec);
245  prt->papFldDes[permissiveRecordWFLG]->size = sizeof(prec->wflg);
246  prt->papFldDes[permissiveRecordWFLG]->offset = (unsigned short)((char *)&prec->wflg - (char *)prec);
247  prt->papFldDes[permissiveRecordLABL]->size = sizeof(prec->labl);
248  prt->papFldDes[permissiveRecordLABL]->offset = (unsigned short)((char *)&prec->labl - (char *)prec);
249  prt->papFldDes[permissiveRecordOVAL]->size = sizeof(prec->oval);
250  prt->papFldDes[permissiveRecordOVAL]->offset = (unsigned short)((char *)&prec->oval - (char *)prec);
251  prt->papFldDes[permissiveRecordOFLG]->size = sizeof(prec->oflg);
252  prt->papFldDes[permissiveRecordOFLG]->offset = (unsigned short)((char *)&prec->oflg - (char *)prec);
253  prt->rec_size = sizeof(*prec);
254  return 0;
255 }
256 epicsExportRegistrar(permissiveRecordSizeOffset);
257 
258 #ifdef __cplusplus
259 }
260 #endif
261 #endif /* GEN_SIZE_OFFSET */
262 
263 #endif /* INC_permissiveRecord_H */
struct processNotifyRecord * ppnr
pprocessNotifyRecord
struct dbRecordType * rdes
Address of dbRecordType.
char name[61]
Record Name.
char evnt[40]
Event Name.
ELLLIST mlis
Monitor List.
char amsg[40]
Alarm Message.
epicsUInt8 rpro
Reprocess.
struct scan_element * spvt
Scan Private.
epicsEnum16 nsta
New Alarm Status.
epicsEnum16 prio
Scheduling Priority.
ELLLIST bklnk
Backwards link tracking.
struct typed_rset * rset
Address of RSET.
LIBCOM_API void cantProceed(const char *errorMessage,...) EPICS_PRINTF_STYLE(1
Suspend this thread, the caller cannot continue or return.
The core data types used by epics.
epicsEnum16 pini
Process at iocInit.
epicsInt16 phas
Scan Phase.
epicsUInt8 putf
dbPutField process
Exporting IOC objects.
epicsUInt16 oflg
Old Flag.
epicsEnum16 stat
Alarm Status.
epicsMutexId mlok
Monitor lock.
Declaration of permissive record type.
epicsTimeStamp time
Time.
Routines for code that can&#39;t continue or return after an error.
epicsUInt8 proc
Force Processing.
char desc[41]
Descriptor.
char namsg[40]
New Alarm Message.
epicsEnum16 acks
Alarm Ack Severity.
epicsUInt8 bkpt
Break Point.
char asg[29]
Access Security Group.
epicsUInt16 oval
Old Status.
Definition: devSup.h:141
EPICS time stamp, for use from C code.
Definition: epicsTime.h:42
A doubly-linked list library.
epicsEnum16 nsev
New Alarm Severity.
epicsEnum16 dtyp
Device Type.
epicsUInt8 disp
Disable putField.
List header type.
Definition: ellLib.h:57
epicsInt16 tse
Time Stamp Event.
epicsUInt8 lcnt
Lock Count.
void * dpvt
Device Private.
epicsUInt64 utag
Time Tag.
epicsEnum16 diss
Disable Alarm Sevrty.
epicsUInt16 val
Status.
APIs for the epicsMutex mutual exclusion semaphore.
epicsUInt8 tpro
Trace Processing.
Device support routines.
epicsUInt16 wflg
Wait Flag.
epicsInt16 disa
Disable.
DBLINK sdis
Scanning Disable.
epicsEnum16 udfs
Undefined Alarm Sevrty.
#define epicsExportRegistrar(fun)
Declare a registrar function for exporting.
Definition: epicsExport.h:94
struct asgMember * asp
Access Security Pvt.
struct lockRecord * lset
Lock Set.
unambiguous_dset * dset
DSET address.
epicsInt16 disv
Disable Value.
epicsEnum16 ackt
Alarm Ack Transient.
epicsUInt8 udf
Undefined.
epicsEnum16 sevr
Alarm Severity.
struct processNotify * ppn
pprocessNotify
DBLINK tsel
Time Stamp Link.
EPICS time-stamps (epicsTimeStamp), epicsTime C++ class and C functions for handling wall-clock times...
DBLINK flnk
Forward Process Link.
char labl[20]
Button Label.
epicsUInt8 pact
Record active.
struct epicsMutexParm * epicsMutexId
An identifier for an epicsMutex for use with the C API.
Definition: epicsMutex.h:49
epicsEnum16 scan
Scan Mechanism.