From 32c3231f5dfb5b9aa6005cd8b00170ed239070c4 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Thu, 24 Mar 2016 10:08:58 -0400 Subject: [PATCH] link: not pv_link backend type informational, and a hint at what pvt points to --- src/ioc/db/dbLink.c | 3 +++ src/ioc/dbStatic/link.h | 1 + src/ioc/misc/iocInit.c | 3 +-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ioc/db/dbLink.c b/src/ioc/db/dbLink.c index 1aa9105b3..85e4b910c 100644 --- a/src/ioc/db/dbLink.c +++ b/src/ioc/db/dbLink.c @@ -172,6 +172,7 @@ static long dbDbInitLink(struct link *plink, short dbfType) pdbAddr = dbCalloc(1, sizeof(struct dbAddr)); *pdbAddr = dbaddr; /* structure copy */ plink->value.pv_link.pvt = pdbAddr; + plink->value.pv_link.backend = "db"; ellAdd(&dbaddr.precord->bklnk, &plink->value.pv_link.backlinknode); /* merging into the same lockset is deferred to the caller. * cf. initPVLinks() @@ -186,6 +187,7 @@ static void dbDbAddLink(dbLocker *locker, struct link *plink, short dbfType, DBA plink->lset = &dbDb_lset; plink->type = DB_LINK; plink->value.pv_link.pvt = ptarget; + plink->value.pv_link.backend = "db"; ellAdd(&ptarget->precord->bklnk, &plink->value.pv_link.backlinknode); /* target record is already locked in dbPutFieldLink() */ @@ -196,6 +198,7 @@ static void dbDbRemoveLink(dbLocker *locker, struct link *plink) { DBADDR *pdbAddr = (DBADDR *) plink->value.pv_link.pvt; plink->value.pv_link.pvt = 0; + plink->value.pv_link.backend = NULL; plink->value.pv_link.getCvt = 0; plink->value.pv_link.pvlMask = 0; plink->value.pv_link.lastGetdbrType = 0; diff --git a/src/ioc/dbStatic/link.h b/src/ioc/dbStatic/link.h index e0063a68b..6207000f5 100644 --- a/src/ioc/dbStatic/link.h +++ b/src/ioc/dbStatic/link.h @@ -85,6 +85,7 @@ struct pv_link { LINKCVT getCvt; /* input conversion function */ short pvlMask; /* Options mask */ short lastGetdbrType; /* last dbrType for DB or CA get */ + const char *backend;/* informational string describing the backend */ }; /* structure of a VME io channel */ diff --git a/src/ioc/misc/iocInit.c b/src/ioc/misc/iocInit.c index 1b804757d..d60d1b2b3 100644 --- a/src/ioc/misc/iocInit.c +++ b/src/ioc/misc/iocInit.c @@ -641,8 +641,7 @@ static void doCloseLinks(dbRecordType *pdbRecordType, dbCommon *precord, dbScanLock(precord); locked = 1; } - if(plink->lset) - (*plink->lset->removeLink)(NULL, plink); + dbRemoveLink(NULL, plink); } else if (iocBuildMode==buildIsolated && plink->type == DB_LINK) { /* free link, but don't split lockset like dbDbRemoveLink() */