changed from dll to ell
This commit is contained in:
@@ -62,7 +62,7 @@
|
||||
#include <vxWorks.h>
|
||||
#include <types.h>
|
||||
#include <wdLib.h>
|
||||
#include <dllEpicsLib.h>
|
||||
#include <ellLib.h>
|
||||
#include <semLib.h>
|
||||
|
||||
#include <tsDefs.h>
|
||||
@@ -119,7 +119,7 @@ typedef struct{
|
||||
#define abort taskSuspend;
|
||||
|
||||
struct event_block{
|
||||
DLLNODE node;
|
||||
ELLNODE node;
|
||||
struct db_addr *paddr;
|
||||
void (*user_sub)();
|
||||
void *user_arg;
|
||||
@@ -403,7 +403,7 @@ register struct event_block *pevent; /* ptr to event blk (not required) */
|
||||
pevent->valque = FALSE;
|
||||
|
||||
LOCKREC(precord);
|
||||
dllAdd((DLLLIST*)&precord->mlis, (DLLNODE*)pevent);
|
||||
ellAdd((ELLLIST*)&precord->mlis, (ELLNODE*)pevent);
|
||||
UNLOCKREC(precord);
|
||||
|
||||
return OK;
|
||||
@@ -434,9 +434,9 @@ register struct event_block *pevent;
|
||||
|
||||
LOCKREC(precord);
|
||||
/* dont let a misplaced event corrupt the queue */
|
||||
status = dllFind((DLLLIST*)&precord->mlis, (DLLNODE*)pevent);
|
||||
status = ellFind((ELLLIST*)&precord->mlis, (ELLNODE*)pevent);
|
||||
if(status!=ERROR)
|
||||
dllDelete((DLLLIST*)&precord->mlis, (DLLNODE*)pevent);
|
||||
ellDelete((ELLLIST*)&precord->mlis, (ELLNODE*)pevent);
|
||||
UNLOCKREC(precord);
|
||||
if(status == ERROR)
|
||||
return ERROR;
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
#include <string.h>
|
||||
#include <semLib.h>
|
||||
#include <rngLib.h>
|
||||
#include <dllEpicsLib.h>
|
||||
#include <ellLib.h>
|
||||
#include <vxLib.h>
|
||||
#include <tickLib.h>
|
||||
|
||||
@@ -67,13 +67,13 @@ extern volatile int interruptAccept;
|
||||
|
||||
struct scan_list{
|
||||
FAST_LOCK lock;
|
||||
DLLLIST list;
|
||||
ELLLIST list;
|
||||
short modified;/*has list been modified?*/
|
||||
long ticks; /*ticks per period for periodic*/
|
||||
};
|
||||
/*scan_elements are allocated and the address stored in dbCommon.spvt*/
|
||||
struct scan_element{
|
||||
DLLNODE node;
|
||||
ELLNODE node;
|
||||
struct scan_list *pscan_list;
|
||||
struct dbCommon *precord;
|
||||
};
|
||||
@@ -177,7 +177,7 @@ void scanAdd(struct dbCommon *precord)
|
||||
psl = dbCalloc(1,sizeof(struct scan_list));
|
||||
papEvent[precord->evnt] = psl;
|
||||
FASTLOCKINIT(&psl->lock);
|
||||
dllInit(&psl->list);
|
||||
ellInit(&psl->list);
|
||||
}
|
||||
addToList(precord,psl);
|
||||
} else if(scan==SCAN_IO_EVENT) {
|
||||
@@ -338,7 +338,7 @@ void scanIoInit(IOSCANPVT *ppioscanpvt)
|
||||
priority<NUM_CALLBACK_PRIORITIES; priority++, piosl++){
|
||||
piosl->callback.callback = ioeventCallback;
|
||||
piosl->callback.priority = priority;
|
||||
dllInit(&piosl->scan_list.list);
|
||||
ellInit(&piosl->scan_list.list);
|
||||
FASTLOCKINIT(&piosl->scan_list.lock);
|
||||
piosl->next=iosl_head[priority];
|
||||
iosl_head[priority]=piosl;
|
||||
@@ -355,7 +355,7 @@ void scanIoRequest(IOSCANPVT pioscanpvt)
|
||||
if(!interruptAccept) return;
|
||||
for(priority=0, piosl=pioscanpvt;
|
||||
priority<NUM_CALLBACK_PRIORITIES; priority++, piosl++){
|
||||
if(dllCount(&piosl->scan_list.list)>0) callbackRequest((void *)piosl);
|
||||
if(ellCount(&piosl->scan_list.list)>0) callbackRequest((void *)piosl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -401,8 +401,8 @@ static void initPeriodic()
|
||||
/* look for first record */
|
||||
for (i=0; i<precHeader->number; i++) {
|
||||
if((precLoc=precHeader->papRecLoc[i])==NULL) continue;
|
||||
for(precNode=(RECNODE *)dllFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)dllNext(&precNode->node)) {
|
||||
for(precNode=(RECNODE *)ellFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)ellNext(&precNode->node)) {
|
||||
precord = precNode->precord;
|
||||
if(precord->name[0]!=0) goto got_record;
|
||||
}
|
||||
@@ -432,7 +432,7 @@ got_record:
|
||||
psl = dbCalloc(1,sizeof(struct scan_list));
|
||||
papPeriodic[i] = psl;
|
||||
FASTLOCKINIT(&psl->lock);
|
||||
dllInit(&psl->list);
|
||||
ellInit(&psl->list);
|
||||
sscanf(scanChoices.strs[i+SCAN_1ST_PERIODIC],"%f",&temp);
|
||||
psl->ticks = temp * vxTicksPerSecond;
|
||||
}
|
||||
@@ -537,7 +537,7 @@ static void printList(struct scan_list *psl,char *message)
|
||||
struct scan_element *pse;
|
||||
|
||||
FASTLOCK(&psl->lock);
|
||||
(void *)pse = dllFirst(&psl->list);
|
||||
(void *)pse = ellFirst(&psl->list);
|
||||
FASTUNLOCK(&psl->lock);
|
||||
if(pse==NULL) return;
|
||||
printf("%s\n",message);
|
||||
@@ -549,7 +549,7 @@ static void printList(struct scan_list *psl,char *message)
|
||||
printf("Returning because list changed while processing.");
|
||||
return;
|
||||
}
|
||||
(void *)pse = dllNext((void *)pse);
|
||||
(void *)pse = ellNext((void *)pse);
|
||||
FASTUNLOCK(&psl->lock);
|
||||
}
|
||||
}
|
||||
@@ -563,9 +563,9 @@ static void scanList(struct scan_list *psl)
|
||||
|
||||
FASTLOCK(&psl->lock);
|
||||
psl->modified = FALSE;
|
||||
(void *)pse = dllFirst(&psl->list);
|
||||
(void *)pse = ellFirst(&psl->list);
|
||||
prev = NULL;
|
||||
(void *)next = dllNext((void *)pse);
|
||||
(void *)next = ellNext((void *)pse);
|
||||
FASTUNLOCK(&psl->lock);
|
||||
while(pse!=NULL) {
|
||||
struct dbCommon *precord = pse->precord;
|
||||
@@ -576,27 +576,27 @@ static void scanList(struct scan_list *psl)
|
||||
FASTLOCK(&psl->lock);
|
||||
if(!psl->modified) {
|
||||
prev = pse;
|
||||
(void *)pse = dllNext((void *)pse);
|
||||
if(pse!=NULL) (void *)next = dllNext((void *)pse);
|
||||
(void *)pse = ellNext((void *)pse);
|
||||
if(pse!=NULL) (void *)next = ellNext((void *)pse);
|
||||
} else if (pse->pscan_list==psl) {
|
||||
/*This scan element is still in same scan list*/
|
||||
prev = pse;
|
||||
(void *)pse = dllNext((void *)pse);
|
||||
if(pse!=NULL) (void *)next = dllNext((void *)pse);
|
||||
(void *)pse = ellNext((void *)pse);
|
||||
if(pse!=NULL) (void *)next = ellNext((void *)pse);
|
||||
psl->modified = FALSE;
|
||||
} else if (prev!=NULL && prev->pscan_list==psl) {
|
||||
/*Previous scan element is still in same scan list*/
|
||||
(void *)pse = dllNext((void *)prev);
|
||||
(void *)pse = ellNext((void *)prev);
|
||||
if(pse!=NULL) {
|
||||
(void *)prev = dllPrevious((void *)pse);
|
||||
(void *)next = dllNext((void *)pse);
|
||||
(void *)prev = ellPrevious((void *)pse);
|
||||
(void *)next = ellNext((void *)pse);
|
||||
}
|
||||
psl->modified = FALSE;
|
||||
} else if (next!=NULL && next->pscan_list==psl) {
|
||||
/*Next scan element is still in same scan list*/
|
||||
pse = next;
|
||||
(void *)prev = dllPrevious((void *)pse);
|
||||
(void *)next = dllNext((void *)pse);
|
||||
(void *)prev = ellPrevious((void *)pse);
|
||||
(void *)next = ellNext((void *)pse);
|
||||
psl->modified = FALSE;
|
||||
} else {
|
||||
/*Too many changes. Just wait till next period*/
|
||||
@@ -623,8 +623,8 @@ static void buildScanLists(void)
|
||||
/* look through all of the database records and place them on lists */
|
||||
for (i=0; i<precHeader->number; i++) {
|
||||
if((precLoc=precHeader->papRecLoc[i])==NULL) continue;
|
||||
for(precNode=(RECNODE *)dllFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)dllNext(&precNode->node)) {
|
||||
for(precNode=(RECNODE *)ellFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)ellNext(&precNode->node)) {
|
||||
precord = precNode->precord;
|
||||
if(precord->name[0]==0) continue;
|
||||
scanAdd(precord);
|
||||
@@ -644,16 +644,16 @@ static void addToList(struct dbCommon *precord,struct scan_list *psl)
|
||||
(void *)pse->precord = precord;
|
||||
}
|
||||
pse ->pscan_list = psl;
|
||||
(void *)ptemp = dllFirst(&psl->list);
|
||||
(void *)ptemp = ellFirst(&psl->list);
|
||||
while(ptemp!=NULL) {
|
||||
if(ptemp->precord->phas>precord->phas) {
|
||||
dllInsert(&psl->list,
|
||||
dllPrevious((void *)ptemp),(void *)pse);
|
||||
ellInsert(&psl->list,
|
||||
ellPrevious((void *)ptemp),(void *)pse);
|
||||
break;
|
||||
}
|
||||
(void *)ptemp = dllNext((void *)ptemp);
|
||||
(void *)ptemp = ellNext((void *)ptemp);
|
||||
}
|
||||
if(ptemp==NULL) dllAdd(&psl->list,(void *)pse);
|
||||
if(ptemp==NULL) ellAdd(&psl->list,(void *)pse);
|
||||
psl->modified = TRUE;
|
||||
FASTUNLOCK(&psl->lock);
|
||||
return;
|
||||
@@ -675,7 +675,7 @@ static void deleteFromList(struct dbCommon *precord,struct scan_list *psl)
|
||||
return;
|
||||
}
|
||||
pse->pscan_list = NULL;
|
||||
dllDelete(&psl->list,(void *)pse);
|
||||
ellDelete(&psl->list,(void *)pse);
|
||||
psl->modified = TRUE;
|
||||
FASTUNLOCK(&psl->lock);
|
||||
return;
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
#include <math.h>
|
||||
|
||||
#include <errMdef.h>
|
||||
#include <dllEpicsLib.h>
|
||||
#include <ellLib.h>
|
||||
#include <dbDefs.h>
|
||||
#include <sdrHeader.h>
|
||||
#include <cvtFast.h>
|
||||
@@ -389,13 +389,13 @@ void dbFreeBase(pdbbase)
|
||||
DBBASE *pdbbase;
|
||||
#endif /*__STDC__*/
|
||||
{
|
||||
DLLLIST **ppvd = (DLLLIST **) pdbbase->ppvd;
|
||||
ELLLIST **ppvd = (ELLLIST **) pdbbase->ppvd;
|
||||
struct recType *precType = (struct recType *) pdbbase->precType;
|
||||
struct recLoc *precLoc;
|
||||
struct recHeader *precHeader = (struct recHeader *) pdbbase->precHeader;
|
||||
RECNODE *precnode;
|
||||
RECNODE *pnext;
|
||||
DLLLIST *preclist;
|
||||
ELLLIST *preclist;
|
||||
int recType;
|
||||
if (!pdbbase || !ppvd || !precType) return;
|
||||
dbPvdFreeMem(pdbbase);
|
||||
@@ -407,11 +407,11 @@ DBBASE *pdbbase;
|
||||
free((void *) precLoc);
|
||||
continue;
|
||||
}
|
||||
precnode = (RECNODE *) dllFirst(preclist);
|
||||
precnode = (RECNODE *) ellFirst(preclist);
|
||||
while(precnode) {
|
||||
pnext = (RECNODE *) dllNext((DLLNODE *) precnode);
|
||||
pnext = (RECNODE *) ellNext((ELLNODE *) precnode);
|
||||
free(precnode->precord);
|
||||
dllDelete(preclist, (DLLNODE*)precnode);
|
||||
ellDelete(preclist, (ELLNODE*)precnode);
|
||||
dbPvdDelete(pdbbase,precnode);
|
||||
free((void *)precnode);
|
||||
precnode = pnext;
|
||||
@@ -687,7 +687,7 @@ char *precordName;
|
||||
DBBASE *pdbbase = pdbentry->pdbbase;
|
||||
int record_type = pdbentry->record_type;
|
||||
PVDENTRY *ppvd;
|
||||
DLLLIST *preclist = NULL;
|
||||
ELLLIST *preclist = NULL;
|
||||
RECNODE *precnode = NULL;
|
||||
RECNODE *pNewRecNode = NULL;
|
||||
void *pNewRecord = NULL;
|
||||
@@ -707,8 +707,8 @@ char *precordName;
|
||||
precLoc = precHeader->papRecLoc[record_type];
|
||||
if ((precLoc->preclist) == NULL) {
|
||||
/* allocate new list for this record type */
|
||||
precLoc->preclist = dbCalloc(1,sizeof(DLLLIST));
|
||||
dllInit(precLoc->preclist);
|
||||
precLoc->preclist = dbCalloc(1,sizeof(ELLLIST));
|
||||
ellInit(precLoc->preclist);
|
||||
}
|
||||
preclist = precLoc->preclist;
|
||||
rec_size = precTypDes->rec_size;
|
||||
@@ -721,13 +721,13 @@ char *precordName;
|
||||
init_record(pdbbase, pNewRecord, record_type);
|
||||
pNewRecNode->precord = pNewRecord;
|
||||
/* install record node in list in sorted postion */
|
||||
precnode = (RECNODE *)dllFirst(preclist);
|
||||
precnode = (RECNODE *)ellFirst(preclist);
|
||||
while(precnode && strcmp(precordName,(char*)precnode->precord) > 0)
|
||||
precnode = (RECNODE *)dllNext((DLLNODE*)precnode);
|
||||
precnode = (RECNODE *)ellNext((ELLNODE*)precnode);
|
||||
if(precnode)
|
||||
dllInsert(preclist, dllPrevious((DLLNODE*)precnode) ,(DLLNODE *)pNewRecNode);
|
||||
ellInsert(preclist, ellPrevious((ELLNODE*)precnode) ,(ELLNODE *)pNewRecNode);
|
||||
else
|
||||
dllAdd(preclist, (DLLNODE*)pNewRecNode);
|
||||
ellAdd(preclist, (ELLNODE*)pNewRecNode);
|
||||
ppvd = dbPvdAdd(pdbbase,record_type,pNewRecNode);
|
||||
if(!ppvd) {errMessage(-1,"Logic Err: Could not add to PVD");return(-1);}
|
||||
pdbentry->precnode = pNewRecNode;
|
||||
@@ -745,13 +745,13 @@ DBENTRY *pdbentry;
|
||||
DBBASE *pdbbase = pdbentry->pdbbase;
|
||||
int record_type = pdbentry->record_type;
|
||||
RECNODE *precnode = pdbentry->precnode;
|
||||
DLLLIST *preclist;
|
||||
ELLLIST *preclist;
|
||||
|
||||
|
||||
if (!precnode) return (-1);
|
||||
preclist = pdbbase->precHeader->papRecLoc[record_type]->preclist;
|
||||
free(precnode->precord);
|
||||
dllDelete(preclist, (DLLNODE*)precnode);
|
||||
ellDelete(preclist, (ELLNODE*)precnode);
|
||||
dbPvdDelete(pdbbase,precnode);
|
||||
free((void *)precnode);
|
||||
pdbentry->precnode = NULL;
|
||||
@@ -807,7 +807,7 @@ DBENTRY *pdbentry;
|
||||
pdbentry->record_type = record_type;
|
||||
if(!(precLoc=GET_PRECLOC(precHeader,record_type))) return(S_dbLib_recNotFound);
|
||||
if(!precLoc->preclist) return(S_dbLib_recNotFound);
|
||||
precnode = (RECNODE *)dllFirst(precLoc->preclist);
|
||||
precnode = (RECNODE *)ellFirst(precLoc->preclist);
|
||||
if(!precnode) return(S_dbLib_recNotFound);
|
||||
pdbentry->precnode = precnode;
|
||||
return(0);
|
||||
@@ -824,7 +824,7 @@ DBENTRY *pdbentry;
|
||||
long status=0;
|
||||
|
||||
if(!precnode) return(S_dbLib_recNotFound);
|
||||
precnode = (RECNODE *)dllNext((DLLNODE *)precnode);
|
||||
precnode = (RECNODE *)ellNext((ELLNODE *)precnode);
|
||||
if(!precnode) status = S_dbLib_recNotFound;
|
||||
pdbentry->precnode = precnode;
|
||||
pdbentry->pfield = NULL;
|
||||
@@ -847,7 +847,7 @@ DBENTRY *pdbentry;
|
||||
if(!(precLoc=GET_PRECLOC(precHeader,record_type)))
|
||||
return(0);
|
||||
if(!precLoc->preclist) return(0);
|
||||
return(dllCount(precLoc->preclist));
|
||||
return(ellCount(precLoc->preclist));
|
||||
}
|
||||
|
||||
#ifdef __STDC__
|
||||
@@ -889,7 +889,7 @@ char *newName;
|
||||
struct recHeader *precHeader = (struct recHeader *) pdbbase->precHeader;
|
||||
char *precord;
|
||||
PVDENTRY *ppvd;
|
||||
DLLLIST *preclist;
|
||||
ELLLIST *preclist;
|
||||
RECNODE *plistnode;
|
||||
|
||||
if(!precnode) return(S_dbLib_recNotFound);
|
||||
@@ -900,14 +900,14 @@ char *newName;
|
||||
if(!ppvd) {errMessage(-1,"Logic Err: Could not add to PVD");return(-1);}
|
||||
/*remove from record list and reinstall in sorted order*/
|
||||
preclist = precHeader->papRecLoc[record_type]->preclist;
|
||||
dllDelete(preclist, (DLLNODE*)precnode);
|
||||
plistnode = (RECNODE *)dllFirst(preclist);
|
||||
ellDelete(preclist, (ELLNODE*)precnode);
|
||||
plistnode = (RECNODE *)ellFirst(preclist);
|
||||
while(plistnode && strcmp(newName,(char*)plistnode->precord) < 0)
|
||||
plistnode = (RECNODE *)dllNext((DLLNODE*)plistnode);
|
||||
plistnode = (RECNODE *)ellNext((ELLNODE*)plistnode);
|
||||
if(plistnode)
|
||||
dllInsert(preclist, dllPrevious((DLLNODE*)plistnode) ,(DLLNODE *)precnode);
|
||||
ellInsert(preclist, ellPrevious((ELLNODE*)plistnode) ,(ELLNODE *)precnode);
|
||||
else
|
||||
dllAdd(preclist, (DLLNODE*)precnode);
|
||||
ellAdd(preclist, (ELLNODE*)precnode);
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -3768,7 +3768,7 @@ FILE *fp;
|
||||
#endif /*__STDC__*/
|
||||
{
|
||||
RECNODE *precnode;
|
||||
DLLLIST *preclist;
|
||||
ELLLIST *preclist;
|
||||
int no_entries;
|
||||
unsigned rec_size; /* set to record size */
|
||||
struct sdrHeader sdrHeader;
|
||||
@@ -3796,7 +3796,7 @@ FILE *fp;
|
||||
if ((precLoc = GET_PRECLOC(precHeader, recType)) == NULL) continue;
|
||||
if((preclist = precLoc->preclist) == NULL) continue;
|
||||
/* set up and write the SDR_DB_RECORDS sdrHeader */
|
||||
no_entries = dllCount(preclist);
|
||||
no_entries = ellCount(preclist);
|
||||
rec_size = pRecTypDes->rec_size;
|
||||
memset((char *) &sdrHeader, '\0', sizeof(struct sdrHeader));
|
||||
sdrHeader.magic = DBMAGIC;
|
||||
@@ -3812,9 +3812,9 @@ FILE *fp;
|
||||
errMessage(-1,"dbWrite: incomplete write");
|
||||
return (-1);
|
||||
}
|
||||
for (precnode = (RECNODE *) dllFirst(preclist);
|
||||
for (precnode = (RECNODE *) ellFirst(preclist);
|
||||
precnode != NULL;
|
||||
precnode = (RECNODE *) dllNext((DLLNODE*)precnode)) {
|
||||
precnode = (RECNODE *) ellNext((ELLNODE*)precnode)) {
|
||||
/* write each record of this type contiguous */
|
||||
if ((fwrite(precnode->precord, (int) rec_size, 1, fp)) != 1) {
|
||||
errMessage(-1,"dbWrite: incomplete write");
|
||||
@@ -3902,9 +3902,9 @@ void dbPvdInitPvt(pdbbase)
|
||||
DBBASE *pdbbase;
|
||||
#endif /*__STDC__*/
|
||||
{
|
||||
DLLLIST **ppvd;
|
||||
ELLLIST **ppvd;
|
||||
|
||||
ppvd = dbCalloc(HASH_NO, sizeof(DLLLIST *));
|
||||
ppvd = dbCalloc(HASH_NO, sizeof(ELLLIST *));
|
||||
pdbbase->ppvd = (void *) ppvd;
|
||||
return;
|
||||
}
|
||||
@@ -3919,17 +3919,17 @@ int lenName;
|
||||
#endif /*__STDC__*/
|
||||
{
|
||||
unsigned short hashInd;
|
||||
DLLLIST **ppvd = (DLLLIST **) pdbbase->ppvd;
|
||||
DLLLIST *pvdlist;
|
||||
ELLLIST **ppvd = (ELLLIST **) pdbbase->ppvd;
|
||||
ELLLIST *pvdlist;
|
||||
PVDENTRY *ppvdNode;
|
||||
|
||||
hashInd = hash(name, lenName);
|
||||
if ((pvdlist=ppvd[hashInd]) == NULL) return (NULL);
|
||||
ppvdNode = (PVDENTRY *) dllFirst(pvdlist);
|
||||
ppvdNode = (PVDENTRY *) ellFirst(pvdlist);
|
||||
while(ppvdNode) {
|
||||
if(strcmp(name,(char *)ppvdNode->precnode->precord) == 0)
|
||||
return(ppvdNode);
|
||||
ppvdNode = (PVDENTRY *) dllNext((DLLNODE*)ppvdNode);
|
||||
ppvdNode = (PVDENTRY *) ellNext((ELLNODE*)ppvdNode);
|
||||
}
|
||||
return (NULL);
|
||||
}
|
||||
@@ -3944,8 +3944,8 @@ RECNODE *precnode;
|
||||
#endif /*__STDC__*/
|
||||
{
|
||||
unsigned short hashInd;
|
||||
DLLLIST **ppvd = (DLLLIST **) pdbbase->ppvd;
|
||||
DLLLIST *ppvdlist;
|
||||
ELLLIST **ppvd = (ELLLIST **) pdbbase->ppvd;
|
||||
ELLLIST *ppvdlist;
|
||||
PVDENTRY *ppvdNode;
|
||||
int lenName;
|
||||
char *name=(char *)precnode->precord;
|
||||
@@ -3953,17 +3953,17 @@ RECNODE *precnode;
|
||||
lenName=strlen(name);
|
||||
hashInd = hash(name, lenName);
|
||||
if (ppvd[hashInd] == NULL) {
|
||||
ppvd[hashInd] = dbCalloc(1, sizeof(DLLLIST));
|
||||
dllInit(ppvd[hashInd]);
|
||||
ppvd[hashInd] = dbCalloc(1, sizeof(ELLLIST));
|
||||
ellInit(ppvd[hashInd]);
|
||||
}
|
||||
ppvdlist=ppvd[hashInd];
|
||||
ppvdNode = (PVDENTRY *) dllFirst(ppvdlist);
|
||||
ppvdNode = (PVDENTRY *) ellFirst(ppvdlist);
|
||||
while(ppvdNode) {
|
||||
if(strcmp(name,(char *)ppvdNode->precnode->precord) == 0) return(NULL);
|
||||
ppvdNode = (PVDENTRY *) dllNext((DLLNODE*)ppvdNode);
|
||||
ppvdNode = (PVDENTRY *) ellNext((ELLNODE*)ppvdNode);
|
||||
}
|
||||
ppvdNode = dbCalloc(1, sizeof(PVDENTRY));
|
||||
dllAdd(ppvdlist, (DLLNODE*)ppvdNode);
|
||||
ellAdd(ppvdlist, (ELLNODE*)ppvdNode);
|
||||
ppvdNode->record_type = record_type;
|
||||
ppvdNode->precnode = precnode;
|
||||
return (ppvdNode);
|
||||
@@ -3979,8 +3979,8 @@ RECNODE *precnode;
|
||||
{
|
||||
char *name=(char *)precnode->precord;
|
||||
unsigned short hashInd;
|
||||
DLLLIST **ppvd = (DLLLIST **) pdbbase->ppvd;
|
||||
DLLLIST *ppvdlist;
|
||||
ELLLIST **ppvd = (ELLLIST **) pdbbase->ppvd;
|
||||
ELLLIST *ppvdlist;
|
||||
PVDENTRY *ppvdNode;
|
||||
int lenName;
|
||||
|
||||
@@ -3988,14 +3988,14 @@ RECNODE *precnode;
|
||||
hashInd = hash(name, lenName);
|
||||
if (ppvd[hashInd] == NULL)return;
|
||||
ppvdlist=ppvd[hashInd];
|
||||
ppvdNode = (PVDENTRY *) dllFirst(ppvdlist);
|
||||
ppvdNode = (PVDENTRY *) ellFirst(ppvdlist);
|
||||
while(ppvdNode) {
|
||||
if(strcmp(name,(char *)ppvdNode->precnode->precord) == 0) {
|
||||
dllDelete(ppvdlist, (DLLNODE*)ppvdNode);
|
||||
ellDelete(ppvdlist, (ELLNODE*)ppvdNode);
|
||||
free((void *)ppvdNode);
|
||||
return;
|
||||
}
|
||||
ppvdNode = (PVDENTRY *) dllNext((DLLNODE*)ppvdNode);
|
||||
ppvdNode = (PVDENTRY *) ellNext((ELLNODE*)ppvdNode);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -4008,8 +4008,8 @@ DBBASE *pdbbase;
|
||||
#endif /*__STDC__*/
|
||||
{
|
||||
unsigned short hashInd;
|
||||
DLLLIST **ppvd = (DLLLIST **) pdbbase->ppvd;
|
||||
DLLLIST *ppvdlist;
|
||||
ELLLIST **ppvd = (ELLLIST **) pdbbase->ppvd;
|
||||
ELLLIST *ppvdlist;
|
||||
PVDENTRY *ppvdNode;
|
||||
PVDENTRY *next;
|
||||
|
||||
@@ -4017,10 +4017,10 @@ DBBASE *pdbbase;
|
||||
for (hashInd=0; hashInd<HASH_NO; hashInd++) {
|
||||
if(ppvd[hashInd] == NULL) continue;
|
||||
ppvdlist=ppvd[hashInd];
|
||||
ppvdNode = (PVDENTRY *) dllFirst(ppvdlist);
|
||||
ppvdNode = (PVDENTRY *) ellFirst(ppvdlist);
|
||||
while(ppvdNode) {
|
||||
next = (PVDENTRY *) dllNext((DLLNODE*)ppvdNode);
|
||||
dllDelete(ppvdlist,(DLLNODE*)ppvdNode);
|
||||
next = (PVDENTRY *) ellNext((ELLNODE*)ppvdNode);
|
||||
ellDelete(ppvdlist,(ELLNODE*)ppvdNode);
|
||||
free((void *)ppvdNode);
|
||||
ppvdNode = next;
|
||||
}
|
||||
@@ -4037,8 +4037,8 @@ DBBASE *pdbbase;
|
||||
#endif /*__STDC__*/
|
||||
{
|
||||
unsigned short hashInd;
|
||||
DLLLIST **ppvd = (DLLLIST **) pdbbase->ppvd;
|
||||
DLLLIST *ppvdlist;
|
||||
ELLLIST **ppvd = (ELLLIST **) pdbbase->ppvd;
|
||||
ELLLIST *ppvdlist;
|
||||
PVDENTRY *ppvdNode;
|
||||
int number;
|
||||
|
||||
@@ -4047,13 +4047,13 @@ DBBASE *pdbbase;
|
||||
for (hashInd=0; hashInd<HASH_NO; hashInd++) {
|
||||
if(ppvd[hashInd] == NULL) continue;
|
||||
ppvdlist=ppvd[hashInd];
|
||||
ppvdNode = (PVDENTRY *) dllFirst(ppvdlist);
|
||||
printf(" %3.3hd=%3.3d\n",hashInd,dllCount(ppvdlist));
|
||||
ppvdNode = (PVDENTRY *) ellFirst(ppvdlist);
|
||||
printf(" %3.3hd=%3.3d\n",hashInd,ellCount(ppvdlist));
|
||||
number=0;
|
||||
while(ppvdNode) {
|
||||
printf(" %s",(char *)ppvdNode->precnode->precord);
|
||||
if(number++ ==2) {number=0;printf("\n ");}
|
||||
ppvdNode = (PVDENTRY *) dllNext((DLLNODE*)ppvdNode);
|
||||
ppvdNode = (PVDENTRY *) ellNext((ELLNODE*)ppvdNode);
|
||||
}
|
||||
}
|
||||
printf("\nEnd of Process Variable Directory\n");
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <dllEpicsLib.h>
|
||||
#include <ellLib.h>
|
||||
#include <fast_lock.h>
|
||||
#include <dbDefs.h>
|
||||
#include <dbAccess.h>
|
||||
@@ -188,8 +188,8 @@ long dbl(char *ptypeName)
|
||||
got_it:
|
||||
for(rectype=beg; rectype<=end; rectype++) {
|
||||
if(!(precLoc=GET_PRECLOC(precHeader,rectype))) continue;
|
||||
for(precNode=(RECNODE *)dllFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)dllNext(&precNode->node)) {
|
||||
for(precNode=(RECNODE *)ellFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)ellNext(&precNode->node)) {
|
||||
precord = precNode->precord;
|
||||
if(precord->name[0] == 0) continue; /*deleted record*/
|
||||
strncpy(name,precord->name,PVNAME_SZ);
|
||||
@@ -629,8 +629,8 @@ long dblls(int lockset)
|
||||
printf(" lset lcnt disv disa pact\n");
|
||||
for(rectype=beg; rectype<=end; rectype++) {
|
||||
if(!(precLoc=GET_PRECLOC(precHeader,rectype))) continue;
|
||||
for(precNode=(RECNODE *)dllFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)dllNext(&precNode->node)) {
|
||||
for(precNode=(RECNODE *)ellFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)ellNext(&precNode->node)) {
|
||||
precord = precNode->precord;
|
||||
if(precord->name[0] == 0) continue; /*deleted record*/
|
||||
if(lockset>0 && lockset!=precord->lset) continue;
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <dllEpicsLib.h>
|
||||
#include <ellLib.h>
|
||||
#include <sysLib.h>
|
||||
#include <symLib.h>
|
||||
#include <sysSymTbl.h> /* for sysSymTbl*/
|
||||
@@ -394,8 +394,8 @@ static long initDatabase(void)
|
||||
}
|
||||
precTypDes = precDes->papRecTypDes[i];
|
||||
pdevSup = GET_PDEVSUP(pdbBase->precDevSup,i);
|
||||
for(precNode=(RECNODE *)dllFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)dllNext(&precNode->node)) {
|
||||
for(precNode=(RECNODE *)ellFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)ellNext(&precNode->node)) {
|
||||
precord = precNode->precord;
|
||||
/* If NAME is null then skip this record*/
|
||||
if(!(precord->name[0])) continue;
|
||||
@@ -403,7 +403,7 @@ static long initDatabase(void)
|
||||
(struct rset *)(precord->rset) = prset;
|
||||
/* initialize mlok and mlis*/
|
||||
FASTLOCKINIT(&precord->mlok);
|
||||
dllInit(&(precord->mlis));
|
||||
ellInit(&(precord->mlis));
|
||||
precord->pact=FALSE;
|
||||
/* set lset=0 See determine lock set below*/
|
||||
precord->lset = 0;
|
||||
@@ -420,8 +420,8 @@ static long initDatabase(void)
|
||||
for(i=0; i< (precHeader->number); i++) {
|
||||
if(!(precLoc = precHeader->papRecLoc[i]))continue;
|
||||
precTypDes = precDes->papRecTypDes[i];
|
||||
for(precNode=(RECNODE *)dllFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)dllNext(&precNode->node)) {
|
||||
for(precNode=(RECNODE *)ellFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)ellNext(&precNode->node)) {
|
||||
precord = precNode->precord;
|
||||
/* If NAME is null then skip this record*/
|
||||
if(!(precord->name[0])) continue;
|
||||
@@ -479,8 +479,8 @@ static long initDatabase(void)
|
||||
if(!(precLoc = precHeader->papRecLoc[i]))continue;
|
||||
if(!(prset=GET_PRSET(precSup,i))) continue;
|
||||
precTypDes = precDes->papRecTypDes[i];
|
||||
for(precNode=(RECNODE *)dllFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)dllNext(&precNode->node)) {
|
||||
for(precNode=(RECNODE *)ellFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)ellNext(&precNode->node)) {
|
||||
precord = precNode->precord;
|
||||
/* If NAME is null then skip this record*/
|
||||
if(!(precord->name[0])) continue;
|
||||
@@ -504,8 +504,8 @@ static long initDatabase(void)
|
||||
for(i=0; i<precHeader->number; i++) {
|
||||
if(!(precLoc = precHeader->papRecLoc[i]))continue;
|
||||
precTypDes = precDes->papRecTypDes[i];
|
||||
for(precNode=(RECNODE *)dllFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)dllNext(&precNode->node)) {
|
||||
for(precNode=(RECNODE *)ellFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)ellNext(&precNode->node)) {
|
||||
precord = precNode->precord;
|
||||
/* If NAME is null then skip this record*/
|
||||
if(!(precord->name[0])) continue;
|
||||
@@ -576,14 +576,14 @@ static long addToSet(
|
||||
/* unless (!process_passive && !maximize_sevr) or no_elements>1*/
|
||||
/* remember that all earlier records already have lock set determined*/
|
||||
if(!lookAhead) return(0);
|
||||
precNode = (RECNODE *)dllNext(&prootNode->node);
|
||||
precNode = (RECNODE *)ellNext(&prootNode->node);
|
||||
if(!(precHeader = pdbBase->precHeader)) return(0);
|
||||
for(in=i; in<precHeader->number; in++) {
|
||||
struct dbCommon *pn;
|
||||
|
||||
if(!(precLoc = precHeader->papRecLoc[in])) continue;
|
||||
precTypDes = precDes->papRecTypDes[in];
|
||||
if(!precNode) precNode = (RECNODE *)dllFirst(precLoc->preclist);
|
||||
if(!precNode) precNode = (RECNODE *)ellFirst(precLoc->preclist);
|
||||
while(precNode) {
|
||||
pn = precNode->precord;
|
||||
/* If NAME is null then skip this record*/
|
||||
@@ -611,7 +611,7 @@ static long addToSet(
|
||||
status = addToSet(pn,in,TRUE,i,prootNode,lset);
|
||||
if(status) return(status);
|
||||
}
|
||||
precNode = (RECNODE *)dllNext(&precNode->node);
|
||||
precNode = (RECNODE *)ellNext(&precNode->node);
|
||||
}
|
||||
precNode = NULL;
|
||||
}
|
||||
@@ -629,8 +629,8 @@ static long initialProcess(void)
|
||||
if(!(precHeader = pdbBase->precHeader)) return(0);
|
||||
for(i=0; i< (precHeader->number); i++) {
|
||||
if(!(precLoc = precHeader->papRecLoc[i]))continue;
|
||||
for(precNode=(RECNODE *)dllFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)dllNext(&precNode->node)) {
|
||||
for(precNode=(RECNODE *)ellFirst(precLoc->preclist);
|
||||
precNode; precNode = (RECNODE *)ellNext(&precNode->node)) {
|
||||
precord = precNode->precord;
|
||||
/* If NAME is null then skip this record*/
|
||||
if(!(precord->name[0])) continue;
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
#include <vxLib.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <dllEpicsLib.h>
|
||||
#include <ellLib.h>
|
||||
#include <taskLib.h>
|
||||
|
||||
#include <dbDefs.h>
|
||||
@@ -46,15 +46,15 @@
|
||||
#include <fast_lock.h>
|
||||
|
||||
struct task_list {
|
||||
DLLNODE node;
|
||||
ELLNODE node;
|
||||
VOIDFUNCPTR callback;
|
||||
void *arg;
|
||||
int tid;
|
||||
int suspended;
|
||||
};
|
||||
|
||||
static DLLLIST list;
|
||||
static DLLLIST anylist;
|
||||
static ELLLIST list;
|
||||
static ELLLIST anylist;
|
||||
static FAST_LOCK lock;
|
||||
static int taskwdid=0;
|
||||
volatile int taskwdOn=TRUE;
|
||||
@@ -71,8 +71,8 @@ static void freeList(struct task_list *pt);
|
||||
void taskwdInit()
|
||||
{
|
||||
FASTLOCKINIT(&lock);
|
||||
dllInit(&list);
|
||||
dllInit(&anylist);
|
||||
ellInit(&list);
|
||||
ellInit(&anylist);
|
||||
taskwdid = taskSpawn(TASKWD_NAME,TASKWD_PRI,
|
||||
TASKWD_OPT,TASKWD_STACK,(FUNCPTR )taskwdTask,
|
||||
0,0,0,0,0,0,0,0,0,0);
|
||||
@@ -84,7 +84,7 @@ void taskwdInsert(int tid,VOIDFUNCPTR callback,void *arg)
|
||||
|
||||
FASTLOCK(&lock);
|
||||
pt = allocList();
|
||||
dllAdd(&list,(void *)pt);
|
||||
ellAdd(&list,(void *)pt);
|
||||
pt->suspended = FALSE;
|
||||
pt->tid = tid;
|
||||
pt->callback = callback;
|
||||
@@ -98,7 +98,7 @@ void taskwdAnyInsert(int tid,VOIDFUNCPTR callback,void *arg)
|
||||
|
||||
FASTLOCK(&lock);
|
||||
pt = allocList();
|
||||
dllAdd(&anylist,(void *)pt);
|
||||
ellAdd(&anylist,(void *)pt);
|
||||
pt->tid = tid;
|
||||
pt->callback = callback;
|
||||
pt->arg = arg;
|
||||
@@ -110,15 +110,15 @@ void taskwdRemove(int tid)
|
||||
struct task_list *pt;
|
||||
|
||||
FASTLOCK(&lock);
|
||||
pt = (struct task_list *)dllFirst(&list);
|
||||
pt = (struct task_list *)ellFirst(&list);
|
||||
while(pt!=NULL) {
|
||||
if (tid == pt->tid) {
|
||||
dllDelete(&list,(void *)pt);
|
||||
ellDelete(&list,(void *)pt);
|
||||
freeList(pt);
|
||||
FASTUNLOCK(&lock);
|
||||
return;
|
||||
}
|
||||
pt = (struct task_list *)dllNext((DLLNODE *)pt);
|
||||
pt = (struct task_list *)ellNext((ELLNODE *)pt);
|
||||
}
|
||||
FASTUNLOCK(&lock);
|
||||
errMessage(-1,"taskwdRemove failed");
|
||||
@@ -129,15 +129,15 @@ void taskwdAnyRemove(int tid)
|
||||
struct task_list *pt;
|
||||
|
||||
FASTLOCK(&lock);
|
||||
pt = (struct task_list *)dllFirst(&anylist);
|
||||
pt = (struct task_list *)ellFirst(&anylist);
|
||||
while(pt!=NULL) {
|
||||
if (tid == pt->tid) {
|
||||
dllDelete(&anylist,(void *)pt);
|
||||
ellDelete(&anylist,(void *)pt);
|
||||
freeList(pt);
|
||||
FASTUNLOCK(&lock);
|
||||
return;
|
||||
}
|
||||
pt = (struct task_list *)dllNext((void *)pt);
|
||||
pt = (struct task_list *)ellNext((void *)pt);
|
||||
}
|
||||
FASTUNLOCK(&lock);
|
||||
errMessage(-1,"taskwdanyRemove failed");
|
||||
@@ -150,9 +150,9 @@ static void taskwdTask(void)
|
||||
while(TRUE) {
|
||||
if(taskwdOn) {
|
||||
FASTLOCK(&lock);
|
||||
pt = (struct task_list *)dllFirst(&list);
|
||||
pt = (struct task_list *)ellFirst(&list);
|
||||
while(pt) {
|
||||
next = (struct task_list *)dllNext((void *)pt);
|
||||
next = (struct task_list *)ellNext((void *)pt);
|
||||
if(taskIsSuspended(pt->tid)) {
|
||||
char *pname;
|
||||
char message[100];
|
||||
@@ -164,10 +164,10 @@ static void taskwdTask(void)
|
||||
sprintf(message,"task %x %s suspended",pt->tid,pname);
|
||||
errMessage(-1,message);
|
||||
if(pt->callback) (pt->callback)(pt->arg);
|
||||
ptany = (struct task_list *)dllFirst(&anylist);
|
||||
ptany = (struct task_list *)ellFirst(&anylist);
|
||||
while(ptany) {
|
||||
if(ptany->callback) (ptany->callback)(ptany->arg,pt->tid);
|
||||
ptany = (struct task_list *)dllNext((DLLNODE *)ptany);
|
||||
ptany = (struct task_list *)ellNext((ELLNODE *)ptany);
|
||||
}
|
||||
}
|
||||
pt->suspended = TRUE;
|
||||
|
||||
Reference in New Issue
Block a user