Changed extension db to dbd

This commit is contained in:
Marty Kraimer
1996-06-24 13:15:57 +00:00
parent 00d9239af7
commit 87307b87bf
26 changed files with 169 additions and 394 deletions
-1
View File
@@ -17,7 +17,6 @@ INC += fast_lock.h
INC += initHooks.h
INC += recSup.h
INC += devSup.h
INC += task_params.h
INC += taskwd.h
INC += recGbl.h
INC += dbBkpt.h
+9 -7
View File
@@ -18,10 +18,11 @@ MENUS += menuScan.h
MENUS += menuYesNo.h
RECTYPES += dbCommon.h
USER_DBDFLAGS += -I .. -I $(EPICS_BASE)/dbd
DBINSTALL += dbCommonRecord.db
DBINSTALL += menuGlobal.db
DBINSTALL += epics.db
DBINSTALL += dbCommonRecord.dbd
DBINSTALL += menuGlobal.dbd
DBINSTALL += epics.dbd
DBINSTALL += epicsLIBOBJS
SRCS.c = \
@@ -73,12 +74,13 @@ LIBNAME = dbLib
include $(EPICS)/config/RULES.Vx
dbCommon.h: ../dbCommonRecord.db dbCommon.db
dbCommon.h: ../dbCommonRecord.dbd dbCommon.dbd
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH $<
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH \
$(USER_DBDFLAGS) $<
dbCommon.db: ../dbCommon.db
dbCommon.dbd: ../dbCommon.dbd
@test -f $@ || ln -s $< $@
clean::
@$(RM) dbCommon.db rec base
@$(RM) dbCommon.dbd rec base
+6 -6
View File
@@ -388,12 +388,12 @@ struct rset *dbGetRset(struct dbAddr *paddr)
struct dbFldDes *pfldDes = (struct dbFldDes *)paddr->pfldDes;
if(!pfldDes) return(0);
return(pfldDes->pdbRecDes->prset);
return(pfldDes->pdbRecordType->prset);
}
int dbIsValueField(struct dbFldDes *pdbFldDes)
{
if(pdbFldDes->pdbRecDes->indvalFlddes == pdbFldDes->indRecDes)
if(pdbFldDes->pdbRecordType->indvalFlddes == pdbFldDes->indRecordType)
return(TRUE);
else
return(FALSE);
@@ -401,7 +401,7 @@ int dbIsValueField(struct dbFldDes *pdbFldDes)
int dbGetFieldIndex(struct dbAddr *paddr)
{
return(((struct dbFldDes *)paddr->pfldDes)->indRecDes);
return(((struct dbFldDes *)paddr->pfldDes)->indRecordType);
}
@@ -448,7 +448,7 @@ long dbScanLink(dbCommon *pfrom, dbCommon *pto)
long dbProcess(dbCommon *precord)
{
struct rset *prset = (struct rset *)precord->rset;
dbRecDes *pdbRecDes = (dbRecDes *)precord->rdes;
dbRecordType *pdbRecordType = (dbRecordType *)precord->rdes;
unsigned char tpro=precord->tpro;
unsigned long lset;
long status = 0;
@@ -500,7 +500,7 @@ long dbProcess(dbCommon *precord)
recGblSetSevr(precord, SCAN_ALARM, INVALID_ALARM);
monitor_mask = recGblResetAlarms(precord);
monitor_mask |= DBE_VALUE;
pdbFldDes = pdbRecDes->papFldDes[pdbRecDes->indvalFlddes];
pdbFldDes = pdbRecordType->papFldDes[pdbRecordType->indvalFlddes];
db_post_events(precord,
(void *)(((char *)precord) + pdbFldDes->offset),
monitor_mask);
@@ -531,7 +531,7 @@ long dbProcess(dbCommon *precord)
precord->nsta = 0;
db_post_events(precord, &precord->stat, DBE_VALUE);
db_post_events(precord, &precord->sevr, DBE_VALUE);
pdbFldDes = pdbRecDes->papFldDes[pdbRecDes->indvalFlddes];
pdbFldDes = pdbRecordType->papFldDes[pdbRecordType->indvalFlddes];
db_post_events(precord,
(void *)(((char *)precord) + pdbFldDes->offset),
DBE_VALUE|DBE_ALARM);
+1 -1
View File
@@ -201,7 +201,7 @@
extra("void *dpvt")
}
field(RDES,DBF_NOACCESS) {
prompt("Address of dbRecDes")
prompt("Address of dbRecordType")
special(SPC_NOMOD)
interest(4)
size(4)
@@ -1,3 +1,3 @@
recordtype(dbCommon) {
include "dbCommon.db"
include "dbCommon.dbd"
}
+21 -20
View File
@@ -253,7 +253,7 @@ unsigned long dbLockGetLockId(dbCommon *precord)
void dbLockInitRecords(dbBase *pdbbase)
{
int link;
dbRecDes *pdbRecDes;
dbRecordType *pdbRecordType;
dbFldDes *pdbFldDes;
dbRecordNode *pdbRecordNode;
dbCommon *precord;
@@ -262,15 +262,15 @@ void dbLockInitRecords(dbBase *pdbbase)
lockRecord *plockRecord;
/*Allocate and initialize a lockRecord for each record instance*/
for(pdbRecDes = (dbRecDes *)ellFirst(&pdbbase->recDesList); pdbRecDes;
pdbRecDes = (dbRecDes *)ellNext(&pdbRecDes->node)) {
nrecords += ellCount(&pdbRecDes->recList);
for(pdbRecordType = (dbRecordType *)ellFirst(&pdbbase->recordTypeList); pdbRecordType;
pdbRecordType = (dbRecordType *)ellNext(&pdbRecordType->node)) {
nrecords += ellCount(&pdbRecordType->recList);
}
/*Allocate all of them at once */
plockRecord = dbCalloc(nrecords,sizeof(lockRecord));
for(pdbRecDes = (dbRecDes *)ellFirst(&pdbbase->recDesList); pdbRecDes;
pdbRecDes = (dbRecDes *)ellNext(&pdbRecDes->node)) {
for (pdbRecordNode=(dbRecordNode *)ellFirst(&pdbRecDes->recList);
for(pdbRecordType = (dbRecordType *)ellFirst(&pdbbase->recordTypeList); pdbRecordType;
pdbRecordType = (dbRecordType *)ellNext(&pdbRecordType->node)) {
for (pdbRecordNode=(dbRecordNode *)ellFirst(&pdbRecordType->recList);
pdbRecordNode;
pdbRecordNode = (dbRecordNode *)ellNext(&pdbRecordNode->node)) {
precord = pdbRecordNode->precord;
@@ -279,17 +279,18 @@ void dbLockInitRecords(dbBase *pdbbase)
plockRecord++;
}
}
for(pdbRecDes = (dbRecDes *)ellFirst(&pdbbase->recDesList); pdbRecDes;
pdbRecDes = (dbRecDes *)ellNext(&pdbRecDes->node)) {
for (pdbRecordNode=(dbRecordNode *)ellFirst(&pdbRecDes->recList);
for(pdbRecordType = (dbRecordType *)ellFirst(&pdbbase->recordTypeList);
pdbRecordType;
pdbRecordType = (dbRecordType *)ellNext(&pdbRecordType->node)) {
for (pdbRecordNode=(dbRecordNode *)ellFirst(&pdbRecordType->recList);
pdbRecordNode;
pdbRecordNode = (dbRecordNode *)ellNext(&pdbRecordNode->node)) {
precord = pdbRecordNode->precord;
if(!(precord->name[0])) continue;
for(link=0; link<pdbRecDes->no_links; link++) {
for(link=0; link<pdbRecordType->no_links; link++) {
DBADDR *pdbAddr;
pdbFldDes = pdbRecDes->papFldDes[pdbRecDes->link_ind[link]];
pdbFldDes = pdbRecordType->papFldDes[pdbRecordType->link_ind[link]];
plink = (DBLINK *)((char *)precord + pdbFldDes->offset);
if(plink->type != DB_LINK) continue;
pdbAddr = (DBADDR *)(plink->value.pv_link.pvt);
@@ -354,7 +355,7 @@ void dbLockSetSplit(dbCommon *psource)
lockRecord *plockRecord;
dbCommon *precord;
int link;
dbRecDes *pdbRecDes;
dbRecordType *pdbRecordType;
dbFldDes *pdbFldDes;
DBLINK *plink;
int nrecordsInSet,i;
@@ -384,11 +385,11 @@ void dbLockSetSplit(dbCommon *psource)
precord = paprecord[i];
plockRecord = (lockRecord *)precord->lset;
if(!(precord->name[0])) continue;
pdbRecDes = (dbRecDes *)precord->rdes;
for(link=0; link<pdbRecDes->no_links; link++) {
pdbRecordType = (dbRecordType *)precord->rdes;
for(link=0; link<pdbRecordType->no_links; link++) {
DBADDR *pdbAddr;
pdbFldDes = pdbRecDes->papFldDes[pdbRecDes->link_ind[link]];
pdbFldDes = pdbRecordType->papFldDes[pdbRecordType->link_ind[link]];
plink = (DBLINK *)((char *)precord + pdbFldDes->offset);
if(plink->type != DB_LINK) continue;
@@ -420,7 +421,7 @@ long dblsr(char *recordname,int level)
dbCommon *precord;
lockSet *plockSet;
lockRecord *plockRecord;
dbRecDes *pdbRecDes;
dbRecordType *pdbRecordType;
dbFldDes *pdbFldDes;
DBLINK *plink;
@@ -465,13 +466,13 @@ long dblsr(char *recordname,int level)
for(plockRecord = (lockRecord *)ellFirst(&plockSet->recordList);
plockRecord; plockRecord = (lockRecord *)ellNext(&plockRecord->node)) {
precord = plockRecord->precord;
pdbRecDes = (dbRecDes *)precord->rdes;
pdbRecordType = (dbRecordType *)precord->rdes;
printf("%s\n",precord->name);
if(level<=1) continue;
for(link=0; (link<pdbRecDes->no_links) ; link++) {
for(link=0; (link<pdbRecordType->no_links) ; link++) {
DBADDR *pdbAddr;
pdbFldDes = pdbRecDes->papFldDes[pdbRecDes->link_ind[link]];
pdbFldDes = pdbRecordType->papFldDes[pdbRecordType->link_ind[link]];
plink = (DBLINK *)((char *)precord + pdbFldDes->offset);
if(plink->type != DB_LINK) continue;
pdbAddr = (DBADDR *)(plink->value.pv_link.pvt);
+5 -4
View File
@@ -636,14 +636,15 @@ static void scanList(scan_list *psl)
static void buildScanLists(void)
{
dbRecDes *pdbRecDes;
dbRecordType *pdbRecordType;
dbRecordNode *pdbRecordNode;
dbCommon *precord;
/*Look for first record*/
for(pdbRecDes = (dbRecDes *)ellFirst(&pdbbase->recDesList); pdbRecDes;
pdbRecDes = (dbRecDes *)ellNext(&pdbRecDes->node)) {
for (pdbRecordNode=(dbRecordNode *)ellFirst(&pdbRecDes->recList);
for(pdbRecordType = (dbRecordType *)ellFirst(&pdbbase->recordTypeList);
pdbRecordType;
pdbRecordType = (dbRecordType *)ellNext(&pdbRecordType->node)) {
for (pdbRecordNode=(dbRecordNode *)ellFirst(&pdbRecordType->recList);
pdbRecordNode;
pdbRecordNode = (dbRecordNode *)ellNext(&pdbRecordNode->node)) {
precord = pdbRecordNode->precord;
+21 -20
View File
@@ -46,7 +46,7 @@
/* Global Database Test Routines - All can be invoked via vxWorks shell*/
long dba(char*pname); /*dbAddr info */
long dbel(char*pname); /*CA event list */
long dbl(char *precdesname); /*list records*/
long dbl(char *precordTypename); /*list records*/
long dbnr(int verbose); /*list number of records of each type*/
long dbgrep(char *pmask); /*list records with mask*/
long dbgf(char *pname); /*get field value*/
@@ -158,17 +158,17 @@ long dbel(char*pname)
return(0);
}
long dbl(char *precdesname)
long dbl(char *precordTypename)
{
DBENTRY dbentry;
DBENTRY *pdbentry=&dbentry;
long status;
dbInitEntry(pdbbase,pdbentry);
if(!precdesname)
status = dbFirstRecdes(pdbentry);
if(!precordTypename)
status = dbFirstRecordType(pdbentry);
else
status = dbFindRecdes(pdbentry,precdesname);
status = dbFindRecordType(pdbentry,precordTypename);
if(status) printf("No record description\n");
while(!status) {
status = dbFirstRecord(pdbentry);
@@ -176,8 +176,8 @@ long dbl(char *precdesname)
printf("%s\n",dbGetRecordName(pdbentry));
status = dbNextRecord(pdbentry);
}
if(precdesname) break;
status = dbNextRecdes(pdbentry);
if(precordTypename) break;
status = dbNextRecordType(pdbentry);
}
dbFinishEntry(pdbentry);
return(0);
@@ -192,14 +192,14 @@ long dbnr(int verbose)
int total=0;
dbInitEntry(pdbbase,pdbentry);
status = dbFirstRecdes(pdbentry);
status = dbFirstRecordType(pdbentry);
if(status) printf("No record description\n");
while(!status) {
nrecords = dbGetNRecords(pdbentry);
total += nrecords;
if(verbose || nrecords)
printf("%.4d %s\n",nrecords,dbGetRecdesName(pdbentry));
status = dbNextRecdes(pdbentry);
printf("%.4d %s\n",nrecords,dbGetRecordTypeName(pdbentry));
status = dbNextRecordType(pdbentry);
}
dbFinishEntry(pdbentry);
printf("Total Records: %d\n",total);
@@ -261,7 +261,7 @@ long dbgrep(char *pmask)
char *pname;
dbInitEntry(pdbbase,pdbentry);
status = dbFirstRecdes(pdbentry);
status = dbFirstRecordType(pdbentry);
while(!status) {
status = dbFirstRecord(pdbentry);
while(!status) {
@@ -269,7 +269,7 @@ long dbgrep(char *pmask)
if (specified_by(pname, pmask)) printf("%s\n", pname);
status = dbNextRecord(pdbentry);
}
status = dbNextRecdes(pdbentry);
status = dbNextRecordType(pdbentry);
}
dbFinishEntry(pdbentry);
return(0);
@@ -643,7 +643,7 @@ long dbior(char *pdrvName,int type)
char *pname;
drvSup *pdrvSup;
struct drvet *pdrvet;
dbRecDes *pdbRecDes;
dbRecordType *pdbRecordType;
devSup *pdevSup;
struct dset *pdset;
@@ -664,9 +664,10 @@ long dbior(char *pdrvName,int type)
}
}
/* now check devSup reports */
for(pdbRecDes = (dbRecDes *)ellFirst(&pdbbase->recDesList); pdbRecDes;
pdbRecDes = (dbRecDes *)ellNext(&pdbRecDes->node)) {
for(pdevSup = (devSup *)ellFirst(&pdbRecDes->devList); pdevSup;
for(pdbRecordType = (dbRecordType *)ellFirst(&pdbbase->recordTypeList);
pdbRecordType;
pdbRecordType = (dbRecordType *)ellNext(&pdbRecordType->node)) {
for(pdevSup = (devSup *)ellFirst(&pdbRecordType->devList); pdevSup;
pdevSup = (devSup *)ellNext(&pdevSup->node)) {
if(!(pdset = pdevSup->pdset)) continue;
if(!(pname = pdevSup->name)) continue;
@@ -714,7 +715,7 @@ static void printDbAddr(long status,DBADDR *paddr)
printf(" Field Address: %p",paddr->pfield);
printf(" Field Description: %p\n",pdbFldDes);
printf(" No Elements: %ld\n",paddr->no_elements);
printf(" Record Type: %s\n",pdbFldDes->pdbRecDes->name);
printf(" Record Type: %s\n",pdbFldDes->pdbRecordType->name);
printf(" FieldType: DBF_");
field_type = paddr->field_type;
if(field_type<0 || field_type>DBR_NOACCESS)
@@ -1030,14 +1031,14 @@ static int dbpr_report(
char *pmsg;
dbFldDes *pdbFldDes = paddr->pfldDes;
dbRecDes *pdbRecDes = pdbFldDes->pdbRecDes;
dbRecordType *pdbRecordType = pdbFldDes->pdbRecordType;
short n2;
void *pfield;
char *pfield_name;
pmsg = pMsgBuff->message;
for (n2 = 0; n2 <= pdbRecDes->no_fields - 1; n2++) {
pdbFldDes = pdbRecDes->papFldDes[pdbRecDes->sortFldInd[n2]];
for (n2 = 0; n2 <= pdbRecordType->no_fields - 1; n2++) {
pdbFldDes = pdbRecordType->papFldDes[pdbRecordType->sortFldInd[n2]];
pfield_name = pdbFldDes->name;
pfield = ((char *)paddr->precord) + pdbFldDes->offset;
if (pdbFldDes->interest > interest_level )
+6 -6
View File
@@ -50,7 +50,7 @@ long dbcar(char *precordname,int level)
DBENTRY *pdbentry=&dbentry;
long status;
dbCommon *precord;
dbRecDes *pdbRecDes;
dbRecordType *pdbRecordType;
dbFldDes *pdbFldDes;
DBLINK *plink;
int ncalinks=0;
@@ -64,16 +64,16 @@ long dbcar(char *precordname,int level)
dbInitEntry(pdbbase,pdbentry);
status = dbFirstRecdes(pdbentry);
status = dbFirstRecordType(pdbentry);
while(!status) {
status = dbFirstRecord(pdbentry);
while(!status) {
if(!precordname
|| (strcmp(precordname,dbGetRecordName(pdbentry)) ==0)) {
pdbRecDes = pdbentry->precdes;
pdbRecordType = pdbentry->precordType;
precord = (dbCommon *)pdbentry->precnode->precord;
for(j=0; j<pdbRecDes->no_links; j++) {
pdbFldDes = pdbRecDes->papFldDes[pdbRecDes->link_ind[j]];
for(j=0; j<pdbRecordType->no_links; j++) {
pdbFldDes = pdbRecordType->papFldDes[pdbRecordType->link_ind[j]];
plink = (DBLINK *)((char *)precord + pdbFldDes->offset);
if (plink->type == CA_LINK) {
ncalinks++;
@@ -118,7 +118,7 @@ long dbcar(char *precordname,int level)
}
status = dbNextRecord(pdbentry);
}
status = dbNextRecdes(pdbentry);
status = dbNextRecordType(pdbentry);
}
done:
printf("ncalinks %d",ncalinks);
+47 -47
View File
@@ -1,46 +1,46 @@
include "menuGlobal.db"
include "menuConvert.db"
include "aiRecord.db"
#include "aaiRecord.db"
include "aoRecord.db"
#include "aaoRecord.db"
include "biRecord.db"
include "boRecord.db"
include "calcRecord.db"
include "compressRecord.db"
include "dfanoutRecord.db"
#include "egRecord.db"
#include "egeventRecord.db"
#include "erRecord.db"
#include "ereventRecord.db"
include "eventRecord.db"
include "fanoutRecord.db"
#include "histogramRecord.db"
include "longinRecord.db"
include "longoutRecord.db"
include "mbbiRecord.db"
include "mbbiDirectRecord.db"
include "mbboRecord.db"
include "mbboDirectRecord.db"
include "permissiveRecord.db"
include "pidRecord.db"
#include "pulseCounterRecord.db"
#include "pulseDelayRecord.db"
#include "pulseTrainRecord.db"
#include "scanRecord.db"
include "selRecord.db"
include "seqRecord.db"
include "stateRecord.db"
#include "steppermotorRecord.db"
include "stringinRecord.db"
include "stringoutRecord.db"
include "subRecord.db"
#include "gsubRecord.db"
#include "palRecord.db"
include "subArrayRecord.db"
#include "timerRecord.db"
#include "waitRecord.db"
include "waveformRecord.db"
include "menuGlobal.dbd"
include "menuConvert.dbd"
include "aiRecord.dbd"
#include "aaiRecord.dbd"
include "aoRecord.dbd"
#include "aaoRecord.dbd"
include "biRecord.dbd"
include "boRecord.dbd"
include "calcRecord.dbd"
include "compressRecord.dbd"
include "dfanoutRecord.dbd"
#include "egRecord.dbd"
#include "egeventRecord.dbd"
#include "erRecord.dbd"
#include "ereventRecord.dbd"
include "eventRecord.dbd"
include "fanoutRecord.dbd"
#include "histogramRecord.dbd"
include "longinRecord.dbd"
include "longoutRecord.dbd"
include "mbbiRecord.dbd"
include "mbbiDirectRecord.dbd"
include "mbboRecord.dbd"
include "mbboDirectRecord.dbd"
include "permissiveRecord.dbd"
include "pidRecord.dbd"
#include "pulseCounterRecord.dbd"
#include "pulseDelayRecord.dbd"
#include "pulseTrainRecord.dbd"
#include "scanRecord.dbd"
include "selRecord.dbd"
include "seqRecord.dbd"
include "stateRecord.dbd"
#include "steppermotorRecord.dbd"
include "stringinRecord.dbd"
include "stringoutRecord.dbd"
include "subRecord.dbd"
#include "gsubRecord.dbd"
#include "palRecord.dbd"
include "subArrayRecord.dbd"
#include "timerRecord.dbd"
#include "waitRecord.dbd"
include "waveformRecord.dbd"
device(ai,CONSTANT,devAiSoft,"Soft Channel")
#device(ai,CONSTANT,devAiSoftRaw,"Raw Soft Channel")
#device(ai,VME_IO,devAiXy566Se,"XYCOM-566 SE Scanned")
@@ -237,7 +237,7 @@ device(waveform,CONSTANT,devWfSoft,"Soft Channel")
#driver(drvIpac)
#driver(drvTip810)
#driver(drvVmi2534)
#include "bptTypeJdegC.db"
#include "bptTypeJdegF.db"
#include "bptTypeKdegC.db"
#include "bptTypeKdegF.db"
#include "bptTypeJdegC.dbd"
#include "bptTypeJdegF.dbd"
#include "bptTypeKdegC.dbd"
#include "bptTypeKdegF.dbd"
+37 -36
View File
@@ -306,22 +306,22 @@ LOCAL long initRecSup(void)
long status=0;
long rtnval;
STATUS vxstatus;
dbRecDes *pdbRecDes;
dbRecordType *pdbRecordType;
struct rset *prset;
for(pdbRecDes = (dbRecDes *)ellFirst(&pdbbase->recDesList); pdbRecDes;
pdbRecDes = (dbRecDes *)ellNext(&pdbRecDes->node)) {
for(pdbRecordType = (dbRecordType *)ellFirst(&pdbbase->recordTypeList); pdbRecordType;
pdbRecordType = (dbRecordType *)ellNext(&pdbRecordType->node)) {
strcpy(name,"_");
strcat(name,pdbRecDes->name);
strcat(name,pdbRecordType->name);
strcat(name,"RSET");
vxstatus = symFindByName(sysSymTbl, name,
(void *)&pdbRecDes->prset, &type);
(void *)&pdbRecordType->prset, &type);
if (vxstatus != OK) {
status = S_rec_noRSET;
errPrintf(status,__FILE__,__LINE__,"%s",pdbRecDes->name);
errPrintf(status,__FILE__,__LINE__,"%s",pdbRecordType->name);
continue;
}
prset = pdbRecDes->prset;
prset = pdbRecordType->prset;
/* If an initialization routine exists for a record type, execute it */
if(!prset->init) {
continue;
@@ -347,13 +347,13 @@ LOCAL long initDevSup(void)
long status=0;
long rtnval = 0;
STATUS vxstatus;
dbRecDes *pdbRecDes;
dbRecordType *pdbRecordType;
devSup *pdevSup;
struct dset *pdset;
for(pdbRecDes = (dbRecDes *)ellFirst(&pdbbase->recDesList); pdbRecDes;
pdbRecDes = (dbRecDes *)ellNext(&pdbRecDes->node)) {
for(pdevSup = (devSup *)ellFirst(&pdbRecDes->devList); pdevSup;
for(pdbRecordType = (dbRecordType *)ellFirst(&pdbbase->recordTypeList); pdbRecordType;
pdbRecordType = (dbRecordType *)ellNext(&pdbRecordType->node)) {
for(pdevSup = (devSup *)ellFirst(&pdbRecordType->devList); pdevSup;
pdevSup = (devSup *)ellNext(&pdevSup->node)) {
if(!(pname = pdevSup->name)) continue;
strcpy(name, "_");
@@ -381,13 +381,13 @@ LOCAL long initDevSup(void)
*/
LOCAL long finishDevSup(void)
{
dbRecDes *pdbRecDes;
dbRecordType *pdbRecordType;
devSup *pdevSup;
struct dset *pdset;
for(pdbRecDes = (dbRecDes *)ellFirst(&pdbbase->recDesList); pdbRecDes;
pdbRecDes = (dbRecDes *)ellNext(&pdbRecDes->node)) {
for(pdevSup = (devSup *)ellFirst(&pdbRecDes->devList); pdevSup;
for(pdbRecordType = (dbRecordType *)ellFirst(&pdbbase->recordTypeList); pdbRecordType;
pdbRecordType = (dbRecordType *)ellNext(&pdbRecordType->node)) {
for(pdevSup = (devSup *)ellFirst(&pdbRecordType->devList); pdevSup;
pdevSup = (devSup *)ellNext(&pdevSup->node)) {
if(!(pdset = pdevSup->pdset)) continue;
if(pdset->init) (*pdset->init)(1);
@@ -401,7 +401,7 @@ LOCAL long initDatabase(void)
{
long status=0;
long rtnval=0;
dbRecDes *pdbRecDes;
dbRecordType *pdbRecordType;
dbFldDes *pdbFldDes;
dbRecordNode *pdbRecordNode;
devSup *pdevSup;
@@ -412,10 +412,10 @@ LOCAL long initDatabase(void)
DBLINK *plink;
int j;
for(pdbRecDes = (dbRecDes *)ellFirst(&pdbbase->recDesList); pdbRecDes;
pdbRecDes = (dbRecDes *)ellNext(&pdbRecDes->node)) {
prset = pdbRecDes->prset;
for (pdbRecordNode=(dbRecordNode *)ellFirst(&pdbRecDes->recList);
for(pdbRecordType = (dbRecordType *)ellFirst(&pdbbase->recordTypeList); pdbRecordType;
pdbRecordType = (dbRecordType *)ellNext(&pdbRecordType->node)) {
prset = pdbRecordType->prset;
for (pdbRecordNode=(dbRecordNode *)ellFirst(&pdbRecordType->recList);
pdbRecordNode;
pdbRecordNode = (dbRecordNode *)ellNext(&pdbRecordNode->node)) {
if(!prset) break;
@@ -423,7 +423,7 @@ LOCAL long initDatabase(void)
precord = pdbRecordNode->precord;
if(!(precord->name[0])) continue;
precord->rset = prset;
precord->rdes = pdbRecDes;
precord->rdes = pdbRecordType;
FASTLOCKINIT(&precord->mlok);
ellInit(&(precord->mlis));
@@ -431,7 +431,7 @@ LOCAL long initDatabase(void)
precord->pact=FALSE;
/* Init DSET NOTE that result may be NULL */
pdevSup = (devSup *)ellNth(&pdbRecDes->devList,precord->dtyp+1);
pdevSup = (devSup *)ellNth(&pdbRecordType->devList,precord->dtyp+1);
pdset = (pdevSup ? pdevSup->pdset : 0);
precord->dset = pdset;
if(!prset->init_record) continue;
@@ -443,18 +443,18 @@ LOCAL long initDatabase(void)
/*
* Second pass to resolve links
*/
for(pdbRecDes = (dbRecDes *)ellFirst(&pdbbase->recDesList); pdbRecDes;
pdbRecDes = (dbRecDes *)ellNext(&pdbRecDes->node)) {
prset = pdbRecDes->prset;
for (pdbRecordNode=(dbRecordNode *)ellFirst(&pdbRecDes->recList);
for(pdbRecordType = (dbRecordType *)ellFirst(&pdbbase->recordTypeList); pdbRecordType;
pdbRecordType = (dbRecordType *)ellNext(&pdbRecordType->node)) {
prset = pdbRecordType->prset;
for (pdbRecordNode=(dbRecordNode *)ellFirst(&pdbRecordType->recList);
pdbRecordNode;
pdbRecordNode = (dbRecordNode *)ellNext(&pdbRecordNode->node)) {
precord = pdbRecordNode->precord;
if(!(precord->name[0])) continue;
/* Convert all PV_LINKs to DB_LINKs or CA_LINKs */
/* For all the links in the record type... */
for(j=0; j<pdbRecDes->no_links; j++) {
pdbFldDes = pdbRecDes->papFldDes[pdbRecDes->link_ind[j]];
for(j=0; j<pdbRecordType->no_links; j++) {
pdbFldDes = pdbRecordType->papFldDes[pdbRecordType->link_ind[j]];
plink = (DBLINK *)((char *)precord + pdbFldDes->offset);
if (plink->type == PV_LINK) {
if(!(plink->value.pv_link.pvlMask&(pvlOptCA|pvlOptCP|pvlOptCPP))
@@ -484,10 +484,10 @@ LOCAL long initDatabase(void)
}
/* Call record support init_record routine - Second pass */
for(pdbRecDes = (dbRecDes *)ellFirst(&pdbbase->recDesList); pdbRecDes;
pdbRecDes = (dbRecDes *)ellNext(&pdbRecDes->node)) {
prset = pdbRecDes->prset;
for (pdbRecordNode=(dbRecordNode *)ellFirst(&pdbRecDes->recList);
for(pdbRecordType = (dbRecordType *)ellFirst(&pdbbase->recordTypeList); pdbRecordType;
pdbRecordType = (dbRecordType *)ellNext(&pdbRecordType->node)) {
prset = pdbRecordType->prset;
for (pdbRecordNode=(dbRecordNode *)ellFirst(&pdbRecordType->recList);
pdbRecordNode;
pdbRecordNode = (dbRecordNode *)ellNext(&pdbRecordNode->node)) {
if(!prset) break;
@@ -509,13 +509,14 @@ LOCAL long initDatabase(void)
*/
LOCAL long initialProcess(void)
{
dbRecDes *pdbRecDes;
dbRecordType *pdbRecordType;
dbRecordNode *pdbRecordNode;
dbCommon *precord;
for(pdbRecDes = (dbRecDes *)ellFirst(&pdbbase->recDesList); pdbRecDes;
pdbRecDes = (dbRecDes *)ellNext(&pdbRecDes->node)) {
for (pdbRecordNode=(dbRecordNode *)ellFirst(&pdbRecDes->recList);
for(pdbRecordType = (dbRecordType *)ellFirst(&pdbbase->recordTypeList);
pdbRecordType;
pdbRecordType = (dbRecordType *)ellNext(&pdbRecordType->node)) {
for (pdbRecordNode=(dbRecordNode *)ellFirst(&pdbRecordType->recList);
pdbRecordNode;
pdbRecordNode = (dbRecordNode *)ellNext(&pdbRecordNode->node)) {
precord = pdbRecordNode->precord;
-11
View File
@@ -1,11 +0,0 @@
include "menuAlarmSevr.db"
include "menuAlarmStat.db"
include "menuArrType.db"
include "menuCompress.db"
include "menuFtype.db"
include "menuIvoa.db"
include "menuLinr.db"
include "menuOmsl.db"
include "menuPriority.db"
include "menuScan.db"
include "menuYesNo.db"
+11
View File
@@ -0,0 +1,11 @@
include "menuAlarmSevr.dbd"
include "menuAlarmStat.dbd"
include "menuArrType.dbd"
include "menuCompress.dbd"
include "menuFtype.dbd"
include "menuIvoa.dbd"
include "menuLinr.dbd"
include "menuOmsl.dbd"
include "menuPriority.dbd"
include "menuScan.dbd"
include "menuYesNo.dbd"
+4 -4
View File
@@ -112,10 +112,10 @@ void recGblRecSupError(long status,struct dbAddr *paddr,char *pcaller_name,
char buffer[200];
struct dbCommon *precord;
dbFldDes *pdbFldDes = 0;
dbRecDes *pdbRecDes = 0;
dbRecordType *pdbRecordType = 0;
if(paddr) pdbFldDes=(dbFldDes *)(paddr->pfldDes);
if(pdbFldDes) pdbRecDes = pdbFldDes->pdbRecDes;
if(pdbFldDes) pdbRecordType = pdbFldDes->pdbRecordType;
buffer[0]=0;
strcat(buffer,"Record Support Routine (");
if(psupport_name)
@@ -123,9 +123,9 @@ void recGblRecSupError(long status,struct dbAddr *paddr,char *pcaller_name,
else
strcat(buffer,"Unknown");
strcat(buffer,") not available.\n");
if(pdbRecDes) {
if(pdbRecordType) {
strcat(buffer,"Record Type is ");
strcat(buffer,pdbRecDes->name);
strcat(buffer,pdbRecordType->name);
if(paddr) { /* print process variable name */
precord=(struct dbCommon *)(paddr->precord);
strcat(buffer,", PV is ");
-230
View File
@@ -1,230 +0,0 @@
/* task_params.h */
/* $Id$ */
/* Parameters for tasks on IOC */
/*
* Authors: Andy Kozubal, Jeff Hill, and Bob Dalesio
* Date: 2-24-89
*
* Experimental Physics and Industrial Control System (EPICS)
*
* Copyright 1991, the Regents of the University of California,
* and the University of Chicago Board of Governors.
*
* This software was produced under U.S. Government contracts:
* (W-7405-ENG-36) at the Los Alamos National Laboratory,
* and (W-31-109-ENG-38) at Argonne National Laboratory.
*
* Initial development by:
* The Controls and Automation Group (AT-8)
* Ground Test Accelerator
* Accelerator Technology Division
* Los Alamos National Laboratory
*
* Co-developed with
* The Controls and Computing Group
* Accelerator Systems Division
* Advanced Photon Source
* Argonne National Laboratory
*
* Modification Log:
* -----------------
* .01 07-23-91 ges Add time-stamp task.
* .02 09-12-91 joh stack sizes increased for v5 vxWorks.
* .03 10-24-91 lrd Increased stack sizes for scan tasks
* .04 12-12-91 joh Increased stack size for the
* wfDoneTask
* .05 12-18-91 mrk Added callback task priorities
* Changed def of PERIODSCAN_PRI and SEQUENCER_PRI
* Shortened length of task names
* .06 12-18-91 jba Global change of WDSCAN to TASKWD
* .07 01-21-92 rcz Increased all stack sizes by 1000 for V5
* .08 01-21-92 jrw added the GPIB & BB driver task info
* .09 01-04-92 jba Added callback task priorities
* .10 03-16-92 jrw added BB rx and tx specific task info
* .11 05-22-92 lrd added the allen-bradley binary input Change of State scanner
* .12 08-26-92 joh added xy 240 stuff
* .13 08-26-92 joh added FP to CA repeater and on line to be safe
* .14 02-16-92 joh removed historical items
* .15 11-19-93 joh moved CA client priority up by one notch
* .16 09-13-93 joh incresed CA on line beacon maximum delay
* to 60 sec
* .17 03-18-94 mcn added entries for breakpoint tasks
* $Log$
* Revision 1.2 1996/04/22 14:31:08 mrk
* Changes for dynamic link modification
*
* Revision 1.1 1996/01/25 21:13:29 mrk
* moved includes; .ascii=> .db; path changes
*
* Revision 1.27 1995/11/29 19:27:59 jhill
* added $Log$
* added Revision 1.2 1996/04/22 14:31:08 mrk
* added Changes for dynamic link modification
* added
* added Revision 1.1 1996/01/25 21:13:29 mrk
* added moved includes; .ascii=> .db; path changes
* added
*
*/
#ifndef INCtaskLibh
#include <taskLib.h>
#endif
#define VXTASKIDSELF 0
/* Task Names */
#define IOEVENTSCAN_NAME "scanIo"
#define EVENTSCAN_NAME "scanEvent"
#define SCANONCE_NAME "scanOnce"
#define SMCMD_NAME "smCommand"
#define SMRESP_NAME "smResponse"
#define ABDONE_NAME "abDone"
#define ABSCAN_NAME "abScan"
#define ABCOS_NAME "abBiCosScanner"
#define MOMENTARY_NAME "momentary"
#define WFDONE_NAME "wfDone"
#define SEQUENCER_NAME "sequencer"
#define BKPT_CONT_NAME "bkptCont"
#define SCANNER_NAME "scanner"
#define REQ_SRVR_NAME "CA TCP"
#define CA_CLIENT_NAME "CA client"
#define CA_EVENT_NAME "CA event"
#define CAST_SRVR_NAME "CA UDP"
#define CA_REPEATER_NAME "CA repeater"
#define CA_ONLINE_NAME "CA online"
#define TASKWD_NAME "taskwd"
#define SMIOTEST_NAME "smInout"
#define SMROTTEST_NAME "smRotate"
#define EVENT_PEND_NAME "event task"
#define TIMESTAMP_NAME "timeStamp"
#define XY240_NAME "xy 240 scan"
#define GPIBLINK_NAME "gpibLink"
#define BBLINK_NAME "bbLinkTask"
#define BBTXLINK_NAME "bbTx"
#define BBRXLINK_NAME "bbRx"
#define BBWDTASK_NAME "bbwd"
#define EPICSPRINT_NAME "epicsPrint"
#define LOG_RESTART_NAME "logRestart"
/* Task priorities */
#define EPICSPRINT_PRI 70
#define SCANONCE_PRI 65 /* scan one time */
/*DO NOT RUN ANY RECORD PROCESSING TASKS AT HIGHER PRIORITY THAN _netTask=50*/
#define CALLBACK_PRI_LOW 65 /* callback task - generall callback task */
#define CALLBACK_PRI_MEDIUM 57 /* callback task - generall callback task */
#define CALLBACK_PRI_HIGH 51 /* callback task - generall callback task */
#define IOEVENTSCAN_PRI 51 /* I/O Event Scanner - Runs on I/O interrupt */
#define EVENTSCAN_PRI 52 /* Event Scanner - Runs on a global event */
#define TIMESTAMP_PRI 32 /* Time-stamp task - interrupt */
#define SMCMD_PRI 42 /* Stepper Motor Command Task - Waits for cmds */
#define SMRESP_PRI 43 /* Stepper Motor Resp Task - Waits for resps */
#define ABCOS_PRI 43 /* Allen-Bradley Binary Input COS io_event wakeup */
#define ABDONE_PRI 44 /* Allen-Bradley Resp Task - Interrupt Driven */
#define ABSCAN_PRI 45 /* Allen-Bradley Scan Task - Base Rate .1 secs */
#define BBLINK_PRI 46
#define BBWDTASK_PRI 45 /* BitBus watchdog task */
#define BBRXLINK_PRI 46 /* BitBus link task */
#define BBTXLINK_PRI 47 /* BitBus link task */
#define GPIBLINK_PRI 47 /* GPIB link task */
#define MOMENTARY_PRI 48 /* Momentary output - posted from watchdog */
#define WFDONE_PRI 49 /* Waveform Task - Base Rate of .1 second */
#define PERIODSCAN_PRI 59 /* Periodic Scanners - Slowest rate */
#define SEQUENCER_PRI 70
#define XY240_PRI 111 /* xy 240 dio scanner */
#define DB_CA_PRI 100
#define SCANNER_PRI 150
#define REQ_SRVR_PRI 181 /* Channel Access TCP request server*/
#define CA_CLIENT_PRI 180 /* Channel Access clients */
#define CA_REPEATER_PRI 181 /* Channel Access repeater */
#define CAST_SRVR_PRI 182 /* Channel Access broadcast server */
#define CA_ONLINE_PRI 183 /* Channel Access server online notify */
#define TASKWD_PRI 200 /* Watchdog Scan Task - runs every 6 seconds */
#define SMIOTEST_PRI 205 /* Stepper Mtr in/out test - runs every .1 sec */
#define SMROTTEST_PRI 205 /* Stepper Mtr rotate test - runs every .1 sec */
#define LOG_RESTART_PRI 200 /* Log server connection watch dog */
/* Task delay times (seconds) */
#define TASKWD_DELAY 6
/* Task delay times (tics) */
#define ABSCAN_RATE (sysClkRateGet()/6)
#define SEQUENCER_DELAY (sysClkRateGet()/5)
#define SCANNER_DELAY (sysClkRateGet()/5)
#define CA_ONLINE_DELAY (sysClkRateGet()*15)
#define LOG_RESTART_DELAY (sysClkRateGet()*30)
/* Task creation options */
#define EPICSPRINT_OPT VX_FP_TASK
#define IOEVENTSCAN_OPT VX_FP_TASK
#define EVENTSCAN_OPT VX_FP_TASK
#define SCANONCE_OPT VX_FP_TASK
#define CALLBACK_OPT VX_FP_TASK
#define SMCMD_OPT VX_FP_TASK
#define SMRESP_OPT VX_FP_TASK
#define ABDONE_OPT VX_FP_TASK
#define ABCOS_OPT VX_FP_TASK
#define ABSCAN_OPT VX_FP_TASK
#define MOMENTARY_OPT VX_FP_TASK
#define PERIODSCAN_OPT VX_FP_TASK
#define WFDONE_OPT VX_FP_TASK
#define SEQUENCER_OPT VX_FP_TASK | VX_STDIO
#define BKPT_CONT_OPT VX_FP_TASK
#define SCANNER_OPT VX_FP_TASK
#define REQ_SRVR_OPT VX_FP_TASK
#define CAST_SRVR_OPT VX_FP_TASK
#define CA_CLIENT_OPT VX_FP_TASK
#define CA_REPEATER_OPT VX_FP_TASK
#define CA_ONLINE_OPT VX_FP_TASK
#define TASKWD_OPT VX_FP_TASK
#define SMIOTEST_OPT VX_FP_TASK
#define SMROTTEST_OPT VX_FP_TASK
#define EVENT_PEND_OPT VX_FP_TASK
#define TIMESTAMP_OPT VX_FP_TASK
#define GPIBLINK_OPT VX_FP_TASK|VX_STDIO
#define BBLINK_OPT VX_FP_TASK|VX_STDIO
#define BBTXLINK_OPT VX_FP_TASK|VX_STDIO
#define BBRXLINK_OPT VX_FP_TASK|VX_STDIO
#define BBWDTASK_OPT VX_FP_TASK|VX_STDIO
#define DB_CA_OPT (VX_FP_TASK | VX_STDIO)
#define XY_240_OPT (0) /* none */
#define LOG_RESTART_OPT (VX_FP_TASK)
/* Task stack sizes */
#define EPICSPRINT_STACK 4000
#define EVENTSCAN_STACK 10000
#define SCANONCE_STACK 10000
#define CALLBACK_STACK 10000
#define SMCMD_STACK 3000
#define SMRESP_STACK 3000
#define ABCOS_STACK 3000
#define ABDONE_STACK 3000
#define ABSCAN_STACK 3000
#define MOMENTARY_STACK 2000
#define PERIODSCAN_STACK 10000
#define WFDONE_STACK 9000
#define SEQUENCER_STACK 5096
#define BKPT_CONT_STACK 10000
#define SCANNER_STACK 3048
#define RSP_SRVR_STACK 5096
#define REQ_SRVR_STACK 5096
#define CAST_SRVR_STACK 5096
#define CA_CLIENT_STACK 10000
#define CA_REPEATER_STACK 5096
#define CA_ONLINE_STACK 3048
#define TASKWD_STACK 2000 /* moved up by 1000 for v5 vxWorks */
#define SMIOTEST_STACK 2000
#define SMROTTEST_STACK 2000
#define EVENT_PEND_STACK 5096
#define TIMESTAMP_STACK 4000
#define GPIBLINK_STACK 5000
#define BBLINK_STACK 5000
#define BBRXLINK_STACK 5000
#define BBTXLINK_STACK 5000
#define BBWDTASK_STACK 5000
#define DB_CA_STACK 10000
#define XY_240_STACK 4096
#define LOG_RESTART_STACK 0x1000