12 #ifndef INCdbAccessDefsh 13 #define INCdbAccessDefsh 15 #ifdef epicsExportSharedSymbols 16 # define INCLdb_accessh_epicsExportSharedSymbols 17 # undef epicsExportSharedSymbols 23 #ifdef INCLdb_accessh_epicsExportSharedSymbols 24 # define epicsExportSharedSymbols 37 epicsShareExtern
struct dbBase *pdbbase;
38 epicsShareExtern
volatile int interruptAccept;
39 epicsShareExtern
int dbAccessDebugPUTF;
43 #define DBR_STATUS 0x00000001 44 #define DBR_UNITS 0x00000002 45 #define DBR_PRECISION 0x00000004 46 #define DBR_TIME 0x00000008 47 #define DBR_ENUM_STRS 0x00000010 48 #define DBR_GR_LONG 0x00000020 49 #define DBR_GR_DOUBLE 0x00000040 50 #define DBR_CTRL_LONG 0x00000080 51 #define DBR_CTRL_DOUBLE 0x00000100 52 #define DBR_AL_LONG 0x00000200 53 #define DBR_AL_DOUBLE 0x00000400 107 epicsUInt16 status; \ 108 epicsUInt16 severity; \ 111 #define DB_UNITS_SIZE 16 113 char units[DB_UNITS_SIZE]; 114 #define DBRprecision union { \ 124 #define DBRenumStrs \ 125 epicsUInt32 no_str; \ 126 epicsInt32 padenumStrs; \ 127 char strs[DB_MAX_CHOICES][MAX_STRING_SIZE]; 129 epicsInt32 upper_disp_limit; \ 130 epicsInt32 lower_disp_limit; 131 #define DBRgrDouble \ 132 epicsFloat64 upper_disp_limit; \ 133 epicsFloat64 lower_disp_limit; 134 #define DBRctrlLong \ 135 epicsInt32 upper_ctrl_limit; \ 136 epicsInt32 lower_ctrl_limit; 137 #define DBRctrlDouble \ 138 epicsFloat64 upper_ctrl_limit; \ 139 epicsFloat64 lower_ctrl_limit; 141 epicsInt32 upper_alarm_limit;\ 142 epicsInt32 upper_warning_limit;\ 143 epicsInt32 lower_warning_limit;\ 144 epicsInt32 lower_alarm_limit; 145 #define DBRalDouble \ 146 epicsFloat64 upper_alarm_limit;\ 147 epicsFloat64 upper_warning_limit;\ 148 epicsFloat64 lower_warning_limit;\ 149 epicsFloat64 lower_alarm_limit; 164 #define dbr_status_size sizeof(struct dbr_status) 165 #define dbr_units_size sizeof(struct dbr_units) 166 #define dbr_precision_size sizeof(struct dbr_precision) 167 #define dbr_time_size sizeof(struct dbr_time) 168 #define dbr_enumStrs_size sizeof(struct dbr_enumStrs) 169 #define dbr_grLong_size sizeof(struct dbr_grLong) 170 #define dbr_grDouble_size sizeof(struct dbr_grDouble) 171 #define dbr_ctrlLong_size sizeof(struct dbr_ctrlLong) 172 #define dbr_ctrlDouble_size sizeof(struct dbr_ctrlDouble) 173 #define dbr_alLong_size sizeof(struct dbr_alLong) 174 #define dbr_alDouble_size sizeof(struct dbr_alDouble) 178 #define S_db_notFound (M_dbAccess| 1) 179 #define S_db_badDbrtype (M_dbAccess| 3) 180 #define S_db_noMod (M_dbAccess| 5) 181 #define S_db_badLset (M_dbAccess| 7) 182 #define S_db_precision (M_dbAccess| 9) 183 #define S_db_onlyOne (M_dbAccess|11) 184 #define S_db_badChoice (M_dbAccess|13) 185 #define S_db_badField (M_dbAccess|15) 186 #define S_db_lsetLogic (M_dbAccess|17) 187 #define S_db_noLSET (M_dbAccess|21) 188 #define S_db_noRSET (M_dbAccess|31) 189 #define S_db_noSupport (M_dbAccess|33) 190 #define S_db_BadSub (M_dbAccess|35) 192 #define S_db_Pending (M_dbAccess|37) 194 #define S_db_Blocked (M_dbAccess|39) 195 #define S_db_putDisabled (M_dbAccess|41) 196 #define S_db_badHWaddr (M_dbAccess|43) 197 #define S_db_bkptSet (M_dbAccess|53) 198 #define S_db_bkptNotSet (M_dbAccess|55) 199 #define S_db_notStopped (M_dbAccess|57) 200 #define S_db_errArg (M_dbAccess|59) 201 #define S_db_bkptLogic (M_dbAccess|61) 202 #define S_db_cntSpwn (M_dbAccess|63) 203 #define S_db_cntCont (M_dbAccess|65) 204 #define S_db_noMemory (M_dbAccess|66) 205 #define S_db_notInit (M_dbAccess|67) 206 #define S_db_bufFull (M_dbAccess|68) 210 epicsShareFunc
long dbPutSpecial(
struct dbAddr *paddr,
int pass);
211 epicsShareFunc
rset * dbGetRset(
const struct dbAddr *paddr);
212 epicsShareFunc
long dbPutAttribute(
213 const char *recordTypename,
const char *name,
const char*
value);
214 epicsShareFunc
int dbIsValueField(
const struct dbFldDes *pdbFldDes);
215 epicsShareFunc
int dbGetFieldIndex(
const struct dbAddr *paddr);
216 epicsShareFunc
long dbScanPassive(
218 epicsShareFunc
long dbProcess(
struct dbCommon *precord);
219 epicsShareFunc
long dbNameToAddr(
const char *pname,
struct dbAddr *paddr);
225 epicsShareFunc
long dbEntryToAddr(
const struct dbEntry *pdbentry,
232 epicsShareFunc
void dbInitEntryFromAddr(
struct dbAddr *paddr,
233 struct dbEntry *pdbentry);
239 epicsShareFunc
void dbInitEntryFromRecord(
struct dbCommon *prec,
240 struct dbEntry *pdbentry);
244 epicsShareFunc
long dbGetField(
245 struct dbAddr *,
short dbrType,
void *pbuffer,
long *options,
246 long *nRequest,
void *pfl);
247 epicsShareFunc
long dbGet(
248 struct dbAddr *,
short dbrType,
void *pbuffer,
long *options,
249 long *nRequest,
void *pfl);
250 epicsShareFunc
long dbPutField(
251 struct dbAddr *,
short dbrType,
const void *pbuffer,
long nRequest);
252 epicsShareFunc
long dbPut(
253 struct dbAddr *,
short dbrType,
const void *pbuffer,
long nRequest);
255 typedef void(*SPC_ASCALLBACK)(
struct dbCommon *);
257 epicsShareFunc
void dbSpcAsRegisterCallback(SPC_ASCALLBACK func);
258 epicsShareFunc
long dbBufferSize(
259 short dbrType,
long options,
long nRequest);
260 epicsShareFunc
long dbValueSize(
short dbrType);
264 typedef void (*DB_LOAD_RECORDS_HOOK_ROUTINE)(
const char* filename,
265 const char* substitutions);
266 epicsShareExtern DB_LOAD_RECORDS_HOOK_ROUTINE dbLoadRecordsHook;
268 epicsShareFunc
int dbLoadDatabase(
269 const char *filename,
const char *path,
const char *substitutions);
270 epicsShareFunc
int dbLoadRecords(
271 const char* filename,
const char* substitutions);
The core data types used by epics.
Mark external symbols and entry points for shared libraries.
EPICS time-stamps (epicsTimeStamp), epicsTime C++ class and C functions for handling wall-clock times...