This is Unofficial EPICS BASE Doxygen Site
registryCommon.c File Reference
#include "errlog.h"
#include "registryCommon.h"
#include "registryDeviceSupport.h"
#include "registryDriverSupport.h"
#include "registryJLinks.h"
+ Include dependency graph for registryCommon.c:

Go to the source code of this file.

Macros

#define epicsExportSharedSymbols
 

Functions

void registerRecordTypes (DBBASE *pbase, int nRecordTypes, const char *const *recordTypeNames, const recordTypeLocation *rtl)
 
void registerDevices (DBBASE *pbase, int nDevices, const char *const *deviceSupportNames, const dset *const *devsl)
 
void registerDrivers (DBBASE *pbase, int nDrivers, const char *const *driverSupportNames, struct drvet *const *drvsl)
 
void registerJLinks (DBBASE *pbase, int nLinks, jlif *const *jlifsl)
 

Macro Definition Documentation

#define epicsExportSharedSymbols

Definition at line 18 of file registryCommon.c.

Function Documentation

void registerDevices ( DBBASE pbase,
int  nDevices,
const char *const *  deviceSupportNames,
const dset *const *  devsl 
)

Definition at line 53 of file registryCommon.c.

55 {
56  int i;
57  for (i = 0; i < nDevices; i++) {
58  if (registryDeviceSupportFind(deviceSupportNames[i])) continue;
59  if (!registryDeviceSupportAdd(deviceSupportNames[i], devsl[i])) {
60  errlogPrintf("registryDeviceSupportAdd failed %s\n",
61  deviceSupportNames[i]);
62  continue;
63  }
64  }
65 }
int i
Definition: scan.c:967
int errlogPrintf(const char *pFormat,...)
Definition: errlog.c:105
epicsShareFunc int registryDeviceSupportAdd(const char *name, const dset *pdset)
epicsShareFunc dset * registryDeviceSupportFind(const char *name)
void registerDrivers ( DBBASE pbase,
int  nDrivers,
const char *const *  driverSupportNames,
struct drvet *const *  drvsl 
)

Definition at line 67 of file registryCommon.c.

69 {
70  int i;
71  for (i = 0; i < nDrivers; i++) {
72  if (registryDriverSupportFind(driverSupportNames[i])) continue;
73  if (!registryDriverSupportAdd(driverSupportNames[i], drvsl[i])) {
74  errlogPrintf("registryDriverSupportAdd failed %s\n",
75  driverSupportNames[i]);
76  continue;
77  }
78  }
79 }
int i
Definition: scan.c:967
epicsShareFunc struct drvet * registryDriverSupportFind(const char *name)
int errlogPrintf(const char *pFormat,...)
Definition: errlog.c:105
epicsShareFunc int registryDriverSupportAdd(const char *name, struct drvet *pdrvet)
void registerJLinks ( DBBASE pbase,
int  nLinks,
jlif *const *  jlifsl 
)

Definition at line 81 of file registryCommon.c.

82 {
83  int i;
84  for (i = 0; i < nLinks; i++) {
85  if (!registryJLinkAdd(pbase, jlifsl[i])) {
86  errlogPrintf("registryJLinkAdd failed %s\n",
87  jlifsl[i]->name);
88  continue;
89  }
90  }
91 }
int i
Definition: scan.c:967
int errlogPrintf(const char *pFormat,...)
Definition: errlog.c:105
void registerRecordTypes ( DBBASE pbase,
int  nRecordTypes,
const char *const *  recordTypeNames,
const recordTypeLocation rtl 
)

Definition at line 25 of file registryCommon.c.

27 {
28  int i;
29  for (i = 0; i < nRecordTypes; i++) {
30  recordTypeLocation *precordTypeLocation;
31  computeSizeOffset sizeOffset;
33 
34  if (registryRecordTypeFind(recordTypeNames[i])) continue;
35  if (!registryRecordTypeAdd(recordTypeNames[i], &rtl[i])) {
36  errlogPrintf("registryRecordTypeAdd failed %s\n",
37  recordTypeNames[i]);
38  continue;
39  }
40  dbInitEntry(pbase,&dbEntry);
41  precordTypeLocation = registryRecordTypeFind(recordTypeNames[i]);
42  sizeOffset = precordTypeLocation->sizeOffset;
43  if (dbFindRecordType(&dbEntry, recordTypeNames[i])) {
44  errlogPrintf("registerRecordDeviceDriver failed %s\n",
45  recordTypeNames[i]);
46  } else {
47  sizeOffset(dbEntry.precordType);
48  }
49  dbFinishEntry(&dbEntry);
50  }
51 }
void dbInitEntry(dbBase *pdbbase, DBENTRY *pdbentry)
Definition: dbStaticLib.c:626
int(* computeSizeOffset)(struct dbRecordType *pdbRecordType)
dbRecordType * precordType
Definition: dbStaticLib.h:35
int i
Definition: scan.c:967
epicsShareFunc int registryRecordTypeAdd(const char *name, const recordTypeLocation *prtl)
long dbFindRecordType(DBENTRY *pdbentry, const char *recordType)
Definition: dbStaticLib.c:1186
void dbFinishEntry(DBENTRY *pdbentry)
Definition: dbStaticLib.c:632
epicsShareFunc recordTypeLocation * registryRecordTypeFind(const char *name)
int errlogPrintf(const char *pFormat,...)
Definition: errlog.c:105
computeSizeOffset sizeOffset