Convert INST_IO links to regular PV_LINK types, for VDCT support.
Added new PN_LINK type in link.h, make dbStaticLib display it. Made all device support extended so links can be changed at runtime. Modified startup so add_record() always called before regular link processing. Incomplete, stilll need to add MS/MSS/MSI support, currently disabled.
This commit is contained in:
+13
-8
@@ -426,7 +426,6 @@ static void doInitRecord0(dbRecordType *pdbRecordType, dbCommon *precord,
|
||||
static void doResolveLinks(dbRecordType *pdbRecordType, dbCommon *precord,
|
||||
void *user)
|
||||
{
|
||||
devSup *pdevSup;
|
||||
int j;
|
||||
|
||||
/* Convert all PV_LINKs to DB_LINKs or CA_LINKs */
|
||||
@@ -435,6 +434,19 @@ static void doResolveLinks(dbRecordType *pdbRecordType, dbCommon *precord,
|
||||
dbFldDes *pdbFldDes =
|
||||
pdbRecordType->papFldDes[pdbRecordType->link_ind[j]];
|
||||
DBLINK *plink = (DBLINK *)((char *)precord + pdbFldDes->offset);
|
||||
int isDevLink = ellCount(&precord->rdes->devList) > 0 &&
|
||||
(strcmp(pdbFldDes->name, "INP") == 0 || strcmp(pdbFldDes->name, "OUT") == 0);
|
||||
|
||||
if (isDevLink) {
|
||||
devSup *pdevSup = dbDTYPtoDevSup(pdbRecordType, precord->dtyp);
|
||||
|
||||
if (pdevSup) {
|
||||
struct dsxt *pdsxt = pdevSup->pdsxt;
|
||||
if (pdsxt && pdsxt->add_record) {
|
||||
pdsxt->add_record(precord);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (plink->type == PV_LINK) {
|
||||
DBADDR dbaddr;
|
||||
@@ -469,13 +481,6 @@ static void doResolveLinks(dbRecordType *pdbRecordType, dbCommon *precord,
|
||||
}
|
||||
}
|
||||
}
|
||||
pdevSup = dbDTYPtoDevSup(pdbRecordType, precord->dtyp);
|
||||
if (pdevSup) {
|
||||
struct dsxt *pdsxt = pdevSup->pdsxt;
|
||||
if (pdsxt && pdsxt->add_record) {
|
||||
pdsxt->add_record(precord);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void doInitRecord1(dbRecordType *pdbRecordType, dbCommon *precord,
|
||||
|
||||
Reference in New Issue
Block a user