Merge 3.16 into database/master
This commit is contained in:
+1
-1
@@ -410,7 +410,7 @@ long dbd(const char *record_name)
|
||||
|
||||
precord = addr.precord;
|
||||
|
||||
if (! (precord->bkpt & BKPT_ON_MASK)) {
|
||||
if (!(precord->bkpt & BKPT_ON_MASK)) {
|
||||
printf(" BKPT> No breakpoint set in this record\n");
|
||||
return(S_db_bkptNotSet);
|
||||
}
|
||||
|
||||
+26
-1
@@ -309,6 +309,11 @@ long dbgf(const char *pname)
|
||||
if (nameToAddr(pname, &addr))
|
||||
return -1;
|
||||
|
||||
if (addr.precord->lset == NULL) {
|
||||
printf("dbgf only works after iocInit\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
no_elements = MIN(addr.no_elements, sizeof(buffer)/addr.field_size);
|
||||
if (addr.dbr_field_type == DBR_ENUM) {
|
||||
long status = dbGetField(&addr, DBR_STRING, pbuffer,
|
||||
@@ -345,6 +350,11 @@ long dbpf(const char *pname,const char *pvalue)
|
||||
if (nameToAddr(pname, &addr))
|
||||
return -1;
|
||||
|
||||
if (addr.precord->lset == NULL) {
|
||||
printf("dbpf only works after iocInit\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (addr.no_elements > 1 &&
|
||||
(addr.dbr_field_type == DBR_CHAR || addr.dbr_field_type == DBR_UCHAR)) {
|
||||
dbrType = addr.dbr_field_type;
|
||||
@@ -399,6 +409,11 @@ long dbtr(const char *pname)
|
||||
if (nameToAddr(pname, &addr))
|
||||
return -1;
|
||||
|
||||
if (addr.precord->lset == NULL) {
|
||||
printf("dbtr only works after iocInit\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
precord = (struct dbCommon*)addr.precord;
|
||||
if (precord->pact) {
|
||||
printf("record active\n");
|
||||
@@ -438,6 +453,11 @@ long dbtgf(const char *pname)
|
||||
if (nameToAddr(pname, &addr))
|
||||
return -1;
|
||||
|
||||
if (addr.precord->lset == NULL) {
|
||||
printf("dbtgf only works after iocInit\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* try all options first */
|
||||
req_options = 0xffffffff;
|
||||
ret_options = req_options;
|
||||
@@ -534,6 +554,11 @@ long dbtpf(const char *pname, const char *pvalue)
|
||||
if (nameToAddr(pname, &addr))
|
||||
return -1;
|
||||
|
||||
if (addr.precord->lset == NULL) {
|
||||
printf("dbtpf only works after iocInit\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (put_type = DBR_STRING; put_type <= DBF_ENUM; put_type++) {
|
||||
union {
|
||||
epicsInt8 i8;
|
||||
@@ -795,7 +820,7 @@ static void printBuffer(
|
||||
|
||||
printf("no_strs = %u:\n",
|
||||
pdbr_enumStrs->no_str);
|
||||
for (i = 0; i < pdbr_enumStrs->no_str; i++)
|
||||
for (i = 0; i < pdbr_enumStrs->no_str; i++)
|
||||
printf("\t\"%s\"\n", pdbr_enumStrs->strs[i]);
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
|
||||
/* Author: Marty Kraimer Date: 13JUL95*/
|
||||
@@ -169,7 +169,7 @@ static char *dbOpenFile(DBBASE *pdbbase,const char *filename,FILE **fp)
|
||||
}
|
||||
pdbPathNode = (dbPathNode *)ellFirst(ppathList);
|
||||
while (pdbPathNode) {
|
||||
fullfilename = dbMalloc(strlen(pdbPathNode->directory) +
|
||||
fullfilename = dbMalloc(strlen(pdbPathNode->directory) +
|
||||
strlen(filename) + 2);
|
||||
strcpy(fullfilename, pdbPathNode->directory);
|
||||
strcat(fullfilename, "/");
|
||||
@@ -190,7 +190,7 @@ static void freeInputFileList(void)
|
||||
inputFile *pinputFileNow;
|
||||
|
||||
while((pinputFileNow=(inputFile *)ellFirst(&inputFileList))) {
|
||||
if(fclose(pinputFileNow->fp))
|
||||
if(fclose(pinputFileNow->fp))
|
||||
errPrintf(0,__FILE__, __LINE__,
|
||||
"Closing file %s",pinputFileNow->filename);
|
||||
free((void *)pinputFileNow->filename);
|
||||
@@ -215,7 +215,7 @@ static long dbReadCOM(DBBASE **ppdbbase,const char *filename, FILE *fp,
|
||||
inputFile *pinputFile = NULL;
|
||||
char *penv;
|
||||
char **macPairs;
|
||||
|
||||
|
||||
if(ellCount(&tempList)) {
|
||||
epicsPrintf("dbReadCOM: Parser stack dirty %d\n", ellCount(&tempList));
|
||||
}
|
||||
@@ -341,7 +341,7 @@ static int db_yyinput(char *buf, int max_size)
|
||||
{
|
||||
size_t l,n;
|
||||
char *fgetsRtn;
|
||||
|
||||
|
||||
if(yyAbort) return(0);
|
||||
if(*my_buffer_ptr==0) {
|
||||
while(TRUE) { /*until we get some input*/
|
||||
@@ -360,7 +360,7 @@ static int db_yyinput(char *buf, int max_size)
|
||||
fgetsRtn = fgets(my_buffer,MY_BUFFER_SIZE,pinputFileNow->fp);
|
||||
}
|
||||
if(fgetsRtn) break;
|
||||
if(fclose(pinputFileNow->fp))
|
||||
if(fclose(pinputFileNow->fp))
|
||||
errPrintf(0,__FILE__, __LINE__,
|
||||
"Closing file %s",pinputFileNow->filename);
|
||||
free((void *)pinputFileNow->filename);
|
||||
@@ -511,7 +511,7 @@ static void dbRecordtypeFieldHead(char *name,char *type)
|
||||
{
|
||||
dbFldDes *pdbFldDes;
|
||||
int i;
|
||||
|
||||
|
||||
if(duplicate) return;
|
||||
pdbFldDes = dbCalloc(1,sizeof(dbFldDes));
|
||||
allocTemp(pdbFldDes);
|
||||
@@ -544,7 +544,7 @@ static short findOrAddGuiGroup(const char *name)
|
||||
static void dbRecordtypeFieldItem(char *name,char *value)
|
||||
{
|
||||
dbFldDes *pdbFldDes;
|
||||
|
||||
|
||||
if(duplicate) return;
|
||||
pdbFldDes = (dbFldDes *)getLastTemp();
|
||||
if(strcmp(name,"asl")==0) {
|
||||
@@ -636,11 +636,11 @@ static void dbRecordtypeCdef(char *text) {
|
||||
dbText *pdbCdef;
|
||||
tempListNode *ptempListNode;
|
||||
dbRecordType *pdbRecordType;
|
||||
|
||||
|
||||
if (!pdbbase->loadCdefs || duplicate) return;
|
||||
ptempListNode = (tempListNode *)ellFirst(&tempList);
|
||||
pdbRecordType = ptempListNode->item;
|
||||
|
||||
|
||||
pdbCdef = dbCalloc(1,sizeof(dbText));
|
||||
if (text[0] == ' ') text++; /* strip leading space if present */
|
||||
pdbCdef->text = epicsStrDup(text);
|
||||
@@ -699,7 +699,7 @@ static void dbRecordtypeBody(void)
|
||||
if((field_type==DBF_STRING) && (pdbFldDes->size==0))
|
||||
fprintf(stderr,"recordtype(%s).%s size not specified\n",
|
||||
pdbRecordType->name,pdbFldDes->name);
|
||||
if((field_type==DBF_NOACCESS) && (pdbFldDes->extra==0))
|
||||
if((field_type==DBF_NOACCESS) && (pdbFldDes->extra==0))
|
||||
fprintf(stderr,"recordtype(%s).%s extra not specified\n",
|
||||
pdbRecordType->name,pdbFldDes->name);
|
||||
}
|
||||
@@ -811,7 +811,7 @@ static void dbDriver(char *name)
|
||||
pgphentry = gphAdd(pdbbase->pgpHash,pdrvSup->name,&pdbbase->drvList);
|
||||
if(!pgphentry) {
|
||||
yyerrorAbort("gphAdd failed");
|
||||
}
|
||||
}
|
||||
pgphentry->userPvt = pdrvSup;
|
||||
ellAdd(&pdbbase->drvList,&pdrvSup->node);
|
||||
}
|
||||
@@ -831,7 +831,7 @@ static void dbLinkType(char *name, char *jlif_name)
|
||||
pgphentry = gphAdd(pdbbase->pgpHash, pLinkSup->name, &pdbbase->linkList);
|
||||
if (!pgphentry) {
|
||||
yyerrorAbort("gphAdd failed");
|
||||
}
|
||||
}
|
||||
pgphentry->userPvt = pLinkSup;
|
||||
ellAdd(&pdbbase->linkList, &pLinkSup->node);
|
||||
}
|
||||
@@ -850,7 +850,7 @@ static void dbRegistrar(char *name)
|
||||
pgphentry = gphAdd(pdbbase->pgpHash,ptext->text,&pdbbase->registrarList);
|
||||
if(!pgphentry) {
|
||||
yyerrorAbort("gphAdd failed");
|
||||
}
|
||||
}
|
||||
pgphentry->userPvt = ptext;
|
||||
ellAdd(&pdbbase->registrarList,&ptext->node);
|
||||
}
|
||||
@@ -889,7 +889,7 @@ static void dbVariable(char *name, char *type)
|
||||
pgphentry = gphAdd(pdbbase->pgpHash,pvar->name,&pdbbase->variableList);
|
||||
if(!pgphentry) {
|
||||
yyerrorAbort("gphAdd failed");
|
||||
}
|
||||
}
|
||||
pgphentry->userPvt = pvar;
|
||||
ellAdd(&pdbbase->variableList,&pvar->node);
|
||||
}
|
||||
@@ -948,11 +948,11 @@ static void dbBreakBody(void)
|
||||
pnewbrkTable->paBrkInt = paBrkInt = dbCalloc(number, sizeof(brkInt));
|
||||
for (i=0; i<number; i++) {
|
||||
char *str;
|
||||
|
||||
|
||||
str = (char *)popFirstTemp();
|
||||
(void) epicsScanDouble(str, &paBrkInt[i].raw);
|
||||
free(str);
|
||||
|
||||
|
||||
str = (char *)popFirstTemp();
|
||||
(void) epicsScanDouble(str, &paBrkInt[i].eng);
|
||||
free(str);
|
||||
@@ -1073,7 +1073,7 @@ static void dbRecordField(char *name,char *value)
|
||||
pdbentry = ptempListNode->item;
|
||||
status = dbFindField(pdbentry,name);
|
||||
if(status) {
|
||||
epicsPrintf("Record \"%s\" does not have a field \"%s\"\n",
|
||||
epicsPrintf("Record \"%s\" does not have a field \"%s\"\n",
|
||||
dbGetRecordName(pdbentry), name);
|
||||
yyerror(NULL);
|
||||
return;
|
||||
|
||||
@@ -879,10 +879,14 @@ long dbWriteRecordFP(
|
||||
status=dbNextField(pdbentry,dctonly);
|
||||
}
|
||||
status = dbFirstInfo(pdbentry);
|
||||
while(!status) {
|
||||
fprintf(fp,"\tinfo(\"%s\",\"%s\")\n",
|
||||
dbGetInfoName(pdbentry), dbGetInfoString(pdbentry));
|
||||
status=dbNextInfo(pdbentry);
|
||||
while (!status) {
|
||||
const char *pinfostr = dbGetInfoString(pdbentry);
|
||||
|
||||
fprintf(fp, "\tinfo(\"%s\",\"",
|
||||
dbGetInfoName(pdbentry));
|
||||
epicsStrPrintEscaped(fp, pinfostr, strlen(pinfostr));
|
||||
fprintf(fp, "\")\n");
|
||||
status = dbNextInfo(pdbentry);
|
||||
}
|
||||
fprintf(fp,"}\n");
|
||||
status = dbNextRecord(pdbentry);
|
||||
|
||||
@@ -17,9 +17,6 @@
|
||||
#define epicsExportSharedSymbols
|
||||
#include "epicsRelease.h"
|
||||
|
||||
static const char id[] EPICS_UNUSED =
|
||||
"@(#) " EPICS_VERSION_STRING ", Misc. Utilities Library" __DATE__;
|
||||
|
||||
epicsShareFunc int coreRelease(void)
|
||||
{
|
||||
printf ( "############################################################################\n" );
|
||||
|
||||
@@ -45,7 +45,6 @@ void rsrv_online_notify_task(void *pParm)
|
||||
caHdr msg;
|
||||
int status;
|
||||
ca_uint32_t beaconCounter = 0;
|
||||
char buf[16];
|
||||
|
||||
taskwdInsert (epicsThreadGetIdSelf(),NULL,NULL);
|
||||
|
||||
@@ -85,10 +84,12 @@ void rsrv_online_notify_task(void *pParm)
|
||||
&pAddr->addr.sa, sizeof(pAddr->addr));
|
||||
if (status < 0) {
|
||||
char sockErrBuf[64];
|
||||
epicsSocketConvertErrnoToString ( sockErrBuf, sizeof ( sockErrBuf ) );
|
||||
ipAddrToDottedIP (&pAddr->addr.ia, buf, sizeof(buf));
|
||||
char sockDipBuf[22];
|
||||
|
||||
epicsSocketConvertErrnoToString(sockErrBuf, sizeof(sockErrBuf));
|
||||
ipAddrToDottedIP(&pAddr->addr.ia, sockDipBuf, sizeof(sockDipBuf));
|
||||
errlogPrintf ( "CAS: CA beacon send to %s error: %s\n",
|
||||
buf, sockErrBuf);
|
||||
sockDipBuf, sockErrBuf);
|
||||
}
|
||||
else {
|
||||
assert (status == sizeof(msg));
|
||||
|
||||
@@ -97,6 +97,7 @@ TESTFILES += $(COMMON_DIR)/analogMonitorTest.dbd ../analogMonitorTest.db
|
||||
TESTS += analogMonitorTest
|
||||
|
||||
TARGETS += $(COMMON_DIR)/regressTest.dbd
|
||||
DBDDEPENDS_FILES += regressTest.dbd$(DEP)
|
||||
regressTest_DBD += base.dbd
|
||||
TESTPROD_HOST += regressTest
|
||||
regressTest_SRCS += regressTest.c
|
||||
|
||||
Reference in New Issue
Block a user