15 #ifndef INCdbStaticLibh 16 #define INCdbStaticLibh 1 22 #include "dbFldTypes.h" 34 typedef struct dbEntry {
46 epicsShareFunc DBBASE * dbAllocBase(
void);
47 epicsShareFunc
void dbFreeBase(DBBASE *pdbbase);
48 epicsShareFunc
DBENTRY * dbAllocEntry(DBBASE *pdbbase);
49 epicsShareFunc
void dbFreeEntry(
DBENTRY *pdbentry);
50 epicsShareFunc
void dbInitEntry(DBBASE *pdbbase,
53 epicsShareFunc
void dbFinishEntry(
DBENTRY *pdbentry);
55 epicsShareFunc
void dbCopyEntryContents(
DBENTRY *pfrom,
58 epicsShareExtern
int dbBptNotMonotonic;
60 epicsShareFunc
long dbReadDatabase(DBBASE **ppdbbase,
61 const char *filename,
const char *path,
const char *substitutions);
62 epicsShareFunc
long dbReadDatabaseFP(DBBASE **ppdbbase,
63 FILE *fp,
const char *path,
const char *substitutions);
64 epicsShareFunc
long dbPath(DBBASE *pdbbase,
const char *path);
65 epicsShareFunc
long dbAddPath(DBBASE *pdbbase,
const char *path);
66 epicsShareFunc
char * dbGetPromptGroupNameFromKey(DBBASE *pdbbase,
68 epicsShareFunc
short dbGetPromptGroupKeyFromName(DBBASE *pdbbase,
70 epicsShareFunc
long dbWriteRecord(DBBASE *ppdbbase,
71 const char *filename,
const char *precordTypename,
int level);
72 epicsShareFunc
long dbWriteRecordFP(DBBASE *ppdbbase,
73 FILE *fp,
const char *precordTypename,
int level);
74 epicsShareFunc
long dbWriteMenu(DBBASE *pdbbase,
75 const char *filename,
const char *menuName);
76 epicsShareFunc
long dbWriteMenuFP(DBBASE *pdbbase,
77 FILE *fp,
const char *menuName);
78 epicsShareFunc
long dbWriteRecordType(DBBASE *pdbbase,
79 const char *filename,
const char *recordTypeName);
80 epicsShareFunc
long dbWriteRecordTypeFP(DBBASE *pdbbase,
81 FILE *fp,
const char *recordTypeName);
82 epicsShareFunc
long dbWriteDevice(DBBASE *pdbbase,
83 const char *filename);
84 epicsShareFunc
long dbWriteDeviceFP(DBBASE *pdbbase, FILE *fp);
85 epicsShareFunc
long dbWriteDriver(DBBASE *pdbbase,
86 const char *filename);
87 epicsShareFunc
long dbWriteDriverFP(DBBASE *pdbbase, FILE *fp);
88 epicsShareFunc
long dbWriteLinkFP(DBBASE *pdbbase, FILE *fp);
89 epicsShareFunc
long dbWriteRegistrarFP(DBBASE *pdbbase, FILE *fp);
90 epicsShareFunc
long dbWriteFunctionFP(DBBASE *pdbbase, FILE *fp);
91 epicsShareFunc
long dbWriteVariableFP(DBBASE *pdbbase, FILE *fp);
92 epicsShareFunc
long dbWriteBreaktable(DBBASE *pdbbase,
93 const char *filename);
94 epicsShareFunc
long dbWriteBreaktableFP(DBBASE *pdbbase,
97 epicsShareFunc
long dbFindRecordType(
DBENTRY *pdbentry,
98 const char *recordTypename);
99 epicsShareFunc
long dbFirstRecordType(
DBENTRY *pdbentry);
100 epicsShareFunc
long dbNextRecordType(
DBENTRY *pdbentry);
101 epicsShareFunc
char * dbGetRecordTypeName(
DBENTRY *pdbentry);
102 epicsShareFunc
int dbGetNRecordTypes(
DBENTRY *pdbentry);
103 epicsShareFunc
long dbPutRecordAttribute(
DBENTRY *pdbentry,
104 const char *name,
const char*
value);
105 epicsShareFunc
long dbGetRecordAttribute(
DBENTRY *pdbentry,
107 epicsShareFunc
long dbGetAttributePart(
DBENTRY *pdbentry,
108 const char **ppname);
110 epicsShareFunc
long dbFirstField(
DBENTRY *pdbentry,
int dctonly);
111 epicsShareFunc
long dbNextField(
DBENTRY *pdbentry,
int dctonly);
112 epicsShareFunc
int dbGetNFields(
DBENTRY *pdbentry,
int dctonly);
113 epicsShareFunc
char * dbGetFieldName(
DBENTRY *pdbentry);
114 epicsShareFunc
int dbGetFieldDbfType(
DBENTRY *pdbentry);
115 epicsShareFunc
char * dbGetDefault(
DBENTRY *pdbentry);
116 epicsShareFunc
char * dbGetPrompt(
DBENTRY *pdbentry);
117 epicsShareFunc
int dbGetPromptGroup(
DBENTRY *pdbentry);
119 epicsShareFunc
long dbCreateRecord(
DBENTRY *pdbentry,
121 epicsShareFunc
long dbDeleteRecord(
DBENTRY *pdbentry);
122 epicsShareFunc
long dbFreeRecords(DBBASE *pdbbase);
123 epicsShareFunc
long dbFindRecordPart(
DBENTRY *pdbentry,
124 const char **ppname);
125 epicsShareFunc
long dbFindRecord(
DBENTRY *pdbentry,
128 epicsShareFunc
long dbFirstRecord(
DBENTRY *pdbentry);
129 epicsShareFunc
long dbNextRecord(
DBENTRY *pdbentry);
130 epicsShareFunc
int dbGetNRecords(
DBENTRY *pdbentry);
131 epicsShareFunc
int dbGetNAliases(
DBENTRY *pdbentry);
132 epicsShareFunc
char * dbGetRecordName(
DBENTRY *pdbentry);
133 epicsShareFunc
long dbCopyRecord(
DBENTRY *pdbentry,
134 const char *newRecordName,
int overWriteOK);
136 epicsShareFunc
long dbVisibleRecord(
DBENTRY *pdbentry);
137 epicsShareFunc
long dbInvisibleRecord(
DBENTRY *pdbentry);
138 epicsShareFunc
int dbIsVisibleRecord(
DBENTRY *pdbentry);
140 epicsShareFunc
long dbCreateAlias(
DBENTRY *pdbentry,
141 const char *paliasName);
142 epicsShareFunc
int dbIsAlias(
DBENTRY *pdbentry);
144 epicsShareFunc
int dbFollowAlias(
DBENTRY *pdbentry);
145 epicsShareFunc
long dbDeleteAliases(
DBENTRY *pdbentry);
147 epicsShareFunc
long dbFindFieldPart(
DBENTRY *pdbentry,
148 const char **ppname);
149 epicsShareFunc
long dbFindField(
DBENTRY *pdbentry,
150 const char *pfieldName);
151 epicsShareFunc
int dbFoundField(
DBENTRY *pdbentry);
152 epicsShareFunc
char * dbGetString(
DBENTRY *pdbentry);
153 epicsShareFunc
long dbPutString(
DBENTRY *pdbentry,
154 const char *pstring);
155 epicsShareFunc
char * dbVerify(
DBENTRY *pdbentry,
156 const char *pstring);
157 epicsShareFunc
int dbIsDefaultValue(
DBENTRY *pdbentry);
159 epicsShareFunc
long dbFirstInfo(
DBENTRY *pdbentry);
160 epicsShareFunc
long dbNextInfo(
DBENTRY *pdbentry);
161 epicsShareFunc
long dbFindInfo(
DBENTRY *pdbentry,
163 epicsShareFunc
long dbNextMatchingInfo(
DBENTRY *pdbentry,
164 const char *pattern);
165 epicsShareFunc
long dbDeleteInfo(
DBENTRY *pdbentry);
166 epicsShareFunc
const char * dbGetInfoName(
DBENTRY *pdbentry);
167 epicsShareFunc
const char * dbGetInfoString(
DBENTRY *pdbentry);
168 epicsShareFunc
long dbPutInfoString(
DBENTRY *pdbentry,
170 epicsShareFunc
long dbPutInfoPointer(
DBENTRY *pdbentry,
172 epicsShareFunc
void * dbGetInfoPointer(
DBENTRY *pdbentry);
173 epicsShareFunc
const char * dbGetInfo(
DBENTRY *pdbentry,
175 epicsShareFunc
long dbPutInfo(
DBENTRY *pdbentry,
176 const char *name,
const char *
string);
178 epicsShareFunc
brkTable * dbFindBrkTable(DBBASE *pdbbase,
181 epicsShareFunc
const char * dbGetFieldTypeString(
int dbfType);
182 epicsShareFunc
int dbFindFieldType(
const char *type);
184 epicsShareFunc
dbMenu * dbFindMenu(DBBASE *pdbbase,
186 epicsShareFunc
char ** dbGetMenuChoices(
DBENTRY *pdbentry);
187 epicsShareFunc
int dbGetMenuIndex(
DBENTRY *pdbentry);
188 epicsShareFunc
long dbPutMenuIndex(
DBENTRY *pdbentry,
int index);
189 epicsShareFunc
int dbGetNMenuChoices(
DBENTRY *pdbentry);
190 epicsShareFunc
char * dbGetMenuStringFromIndex(
DBENTRY *pdbentry,
192 epicsShareFunc
int dbGetMenuIndexFromString(
DBENTRY *pdbentry,
197 epicsShareFunc
char * dbGetRelatedField(
DBENTRY *pdbentry);
202 epicsShareFunc
int dbGetNLinks(
DBENTRY *pdbentry);
203 epicsShareFunc
long dbGetLinkField(
DBENTRY *pdbentry,
int index);
206 epicsShareFunc
void dbDumpPath(DBBASE *pdbbase);
207 epicsShareFunc
void dbDumpRecord(DBBASE *pdbbase,
208 const char *precordTypename,
int level);
209 epicsShareFunc
void dbDumpMenu(DBBASE *pdbbase,
210 const char *menuName);
211 epicsShareFunc
void dbDumpRecordType(DBBASE *pdbbase,
212 const char *recordTypeName);
213 epicsShareFunc
void dbDumpField(DBBASE *pdbbase,
214 const char *recordTypeName,
const char *fname);
215 epicsShareFunc
void dbDumpDevice(DBBASE *pdbbase,
216 const char *recordTypeName);
217 epicsShareFunc
void dbDumpDriver(DBBASE *pdbbase);
218 epicsShareFunc
void dbDumpLink(DBBASE *pdbbase);
219 epicsShareFunc
void dbDumpRegistrar(DBBASE *pdbbase);
220 epicsShareFunc
void dbDumpFunction(DBBASE *pdbbase);
221 epicsShareFunc
void dbDumpVariable(DBBASE *pdbbase);
222 epicsShareFunc
void dbDumpBreaktable(DBBASE *pdbbase,
224 epicsShareFunc
void dbPvdDump(DBBASE *pdbbase,
int verbose);
225 epicsShareFunc
void dbReportDeviceConfig(DBBASE *pdbbase,
229 #define dbCalloc(nobj,size) callocMustSucceed(nobj,size,"dbCalloc") 230 #define dbMalloc(size) mallocMustSucceed(size,"dbMalloc") 231 epicsShareFunc
void dbCatString(
char **
string,
int *stringLength,
232 char *pnew,
char *separator);
234 extern int dbStaticDebug;
235 extern int dbConvertStrict;
237 #define S_dbLib_recordTypeNotFound (M_dbLib|1) 238 #define S_dbLib_recExists (M_dbLib|3) 239 #define S_dbLib_recNotFound (M_dbLib|5) 240 #define S_dbLib_flddesNotFound (M_dbLib|7) 241 #define S_dbLib_fieldNotFound (M_dbLib|9) 242 #define S_dbLib_badField (M_dbLib|11) 243 #define S_dbLib_menuNotFound (M_dbLib|13) 244 #define S_dbLib_badLink (M_dbLib|15) 245 #define S_dbLib_nameLength (M_dbLib|17) 246 #define S_dbLib_noRecSup (M_dbLib|19) 247 #define S_dbLib_strLen (M_dbLib|21) 248 #define S_dbLib_noSizeOffset (M_dbLib|23) 249 #define S_dbLib_outMem (M_dbLib|27) 250 #define S_dbLib_infoNotFound (M_dbLib|29)
Routines for code that can't continue or return after an error.
Mark external symbols and entry points for shared libraries.