EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: [Merge] ~bfrk/epics-base:reformat-dbAccess into epics-base:7.0
From: Ben Franksen via Core-talk <core-talk at aps.anl.gov>
To: mp+381153 at code.launchpad.net
Date: Wed, 25 Mar 2020 08:09:25 -0000
Ben Franksen has proposed merging ~bfrk/epics-base:reformat-dbAccess into epics-base:7.0.

Requested reviews:
  EPICS Core Developers (epics-core)

For more details, see:
https://code.launchpad.net/~bfrk/epics-base/+git/epics-base/+merge/381153
-- 
Your team EPICS Core Developers is requested to review the proposed merge of ~bfrk/epics-base:reformat-dbAccess into epics-base:7.0.
diff --git a/modules/database/src/ioc/db/dbAccess.c b/modules/database/src/ioc/db/dbAccess.c
index 19f6038..cf1dd62 100644
--- a/modules/database/src/ioc/db/dbAccess.c
+++ b/modules/database/src/ioc/db/dbAccess.c
@@ -34,7 +34,7 @@
 #include "errlog.h"
 #include "errMdef.h"
 
-#include "epicsExport.h" /* #define epicsExportSharedSymbols */
+#include "epicsExport.h"                /* #define epicsExportSharedSymbols */
 #include "caeventmask.h"
 #include "callback.h"
 #include "dbAccessDefs.h"
@@ -63,7 +63,7 @@
 #include "special.h"
 
 epicsShareDef struct dbBase *pdbbase = 0;
-epicsShareDef volatile int interruptAccept=FALSE;
+epicsShareDef volatile int interruptAccept = FALSE;
 
 epicsShareDef int dbAccessDebugPUTF = 0;
 epicsExportAddress(int, dbAccessDebugPUTF);
@@ -73,24 +73,24 @@ epicsExportAddress(int, dbAccessDebugPUTF);
 epicsShareDef DB_LOAD_RECORDS_HOOK_ROUTINE dbLoadRecordsHook = NULL;
 
 static short mapDBFToDBR[DBF_NTYPES] = {
-    /* DBF_STRING   => */    DBR_STRING,
-    /* DBF_CHAR     => */    DBR_CHAR,
-    /* DBF_UCHAR    => */    DBR_UCHAR,
-    /* DBF_SHORT    => */    DBR_SHORT,
-    /* DBF_USHORT   => */    DBR_USHORT,
-    /* DBF_LONG     => */    DBR_LONG,
-    /* DBF_ULONG    => */    DBR_ULONG,
-    /* DBF_INT64    => */    DBR_INT64,
-    /* DBF_UINT64   => */    DBR_UINT64,
-    /* DBF_FLOAT    => */    DBR_FLOAT,
-    /* DBF_DOUBLE   => */    DBR_DOUBLE,
-    /* DBF_ENUM,    => */    DBR_ENUM,
-    /* DBF_MENU,    => */    DBR_ENUM,
-    /* DBF_DEVICE   => */    DBR_ENUM,
-    /* DBF_INLINK   => */    DBR_STRING,
-    /* DBF_OUTLINK  => */    DBR_STRING,
-    /* DBF_FWDLINK  => */    DBR_STRING,
-    /* DBF_NOACCESS => */    DBR_NOACCESS
+    /* DBF_STRING   => */ DBR_STRING,
+    /* DBF_CHAR     => */ DBR_CHAR,
+    /* DBF_UCHAR    => */ DBR_UCHAR,
+    /* DBF_SHORT    => */ DBR_SHORT,
+    /* DBF_USHORT   => */ DBR_USHORT,
+    /* DBF_LONG     => */ DBR_LONG,
+    /* DBF_ULONG    => */ DBR_ULONG,
+    /* DBF_INT64    => */ DBR_INT64,
+    /* DBF_UINT64   => */ DBR_UINT64,
+    /* DBF_FLOAT    => */ DBR_FLOAT,
+    /* DBF_DOUBLE   => */ DBR_DOUBLE,
+    /* DBF_ENUM,    => */ DBR_ENUM,
+    /* DBF_MENU,    => */ DBR_ENUM,
+    /* DBF_DEVICE   => */ DBR_ENUM,
+    /* DBF_INLINK   => */ DBR_STRING,
+    /* DBF_OUTLINK  => */ DBR_STRING,
+    /* DBF_FWDLINK  => */ DBR_STRING,
+    /* DBF_NOACCESS => */ DBR_NOACCESS
 };
 
 /*
@@ -109,217 +109,219 @@ void dbSpcAsRegisterCallback(SPC_ASCALLBACK func)
     spcAsCallback = func;
 }
 
-long dbPutSpecial(DBADDR *paddr,int pass)
+long dbPutSpecial(DBADDR *paddr, int pass)
 {
-    long int	(*pspecial)()=NULL;
-    rset        *prset;
-    dbCommon 	*precord = paddr->precord;
-    long	status=0;
-    long	special=paddr->special;
+    long int (*pspecial) () = NULL;
+    rset *prset;
+    dbCommon *precord = paddr->precord;
+    long status = 0;
+    long special = paddr->special;
 
     prset = dbGetRset(paddr);
-    if(special<100) { /*global processing*/
-	if((special==SPC_NOMOD) && (pass==0)) {
-	    status = S_db_noMod;
-	    recGblDbaddrError(status,paddr,"dbPut");
-	    return(status);
-	}else if(special==SPC_SCAN){
-	    if(pass==0)
-		scanDelete(precord);
-	    else
-		scanAdd(precord);
-	}else if((special==SPC_AS) && (pass==1)) {
-            if(spcAsCallback) (*spcAsCallback)(precord);
-	}
-    }else {
-	if( prset && (pspecial = (prset->special))) {
-	    status=(*pspecial)(paddr,pass);
-	    if(status) return(status);
-	} else if(pass==0){
-	    recGblRecSupError(S_db_noSupport,paddr,"dbPut", "special");
-	    return(S_db_noSupport);
-	}
+    if (special < 100) {                /*global processing */
+        if ((special == SPC_NOMOD) && (pass == 0)) {
+            status = S_db_noMod;
+            recGblDbaddrError(status, paddr, "dbPut");
+            return (status);
+        } else if (special == SPC_SCAN) {
+            if (pass == 0)
+                scanDelete(precord);
+            else
+                scanAdd(precord);
+        } else if ((special == SPC_AS) && (pass == 1)) {
+            if (spcAsCallback)
+                (*spcAsCallback) (precord);
+        }
+    } else {
+        if (prset && (pspecial = (prset->special))) {
+            status = (*pspecial) (paddr, pass);
+            if (status)
+                return (status);
+        } else if (pass == 0) {
+            recGblRecSupError(S_db_noSupport, paddr, "dbPut", "special");
+            return (S_db_noSupport);
+        }
     }
-    return(0);
+    return (0);
 }
 
 static void get_enum_strs(DBADDR *paddr, char **ppbuffer,
-    rset *prset,long	*options)
+    rset * prset, long *options)
 {
-	short		field_type=paddr->field_type;
-	dbFldDes	*pdbFldDes = paddr->pfldDes;
-	dbMenu		*pdbMenu;
-	dbDeviceMenu	*pdbDeviceMenu;
-	char		**papChoice;
-	unsigned long	no_str;
-	char		*ptemp;
-	struct dbr_enumStrs *pdbr_enumStrs=(struct dbr_enumStrs*)(*ppbuffer);
+    short field_type = paddr->field_type;
+    dbFldDes *pdbFldDes = paddr->pfldDes;
+    dbMenu *pdbMenu;
+    dbDeviceMenu *pdbDeviceMenu;
+    char **papChoice;
+    unsigned long no_str;
+    char *ptemp;
+    struct dbr_enumStrs *pdbr_enumStrs = (struct dbr_enumStrs *)(*ppbuffer);
     unsigned int i;
 
-	memset(pdbr_enumStrs,'\0',dbr_enumStrs_size);
-	switch(field_type) {
-		case DBF_ENUM:
-		    if( prset && prset->get_enum_strs ) {
-			(*prset->get_enum_strs)(paddr,pdbr_enumStrs);
-		    } else {
-			*options = (*options)^DBR_ENUM_STRS;/*Turn off option*/
-		    }
-		    break;
-		case DBF_MENU:
-		    pdbMenu = (dbMenu *)pdbFldDes->ftPvt;
-		    no_str = pdbMenu->nChoice;
-		    papChoice= pdbMenu->papChoiceValue;
-		    goto choice_common;
-		case DBF_DEVICE:
-		    pdbDeviceMenu = (dbDeviceMenu *)pdbFldDes->ftPvt;
-                    if(!pdbDeviceMenu) {
-                        *options = (*options)^DBR_ENUM_STRS;/*Turn off option*/
-                        break;
-                    }
-		    no_str = pdbDeviceMenu->nChoice;
-		    papChoice = pdbDeviceMenu->papChoice;
-		    goto choice_common;
-choice_common:
-		    i = sizeof(pdbr_enumStrs->strs)/
-			sizeof(pdbr_enumStrs->strs[0]);
-		    if(i<no_str) no_str = i;
-		    pdbr_enumStrs->no_str = no_str;
-		    ptemp = &(pdbr_enumStrs->strs[0][0]);
-		    for (i=0; i<no_str; i++) {
-			if(papChoice[i]==NULL) *ptemp=0;
-			else {
-			    strncpy(ptemp,papChoice[i],
-				sizeof(pdbr_enumStrs->strs[0]));
-			    *(ptemp+sizeof(pdbr_enumStrs->strs[0])-1) = 0;
-			}
-			ptemp += sizeof(pdbr_enumStrs->strs[0]);
-		    }
-		    break;
-		default:
-		    *options = (*options)^DBR_ENUM_STRS;/*Turn off option*/
-		    break;
-	}
-	*ppbuffer = ((char *)*ppbuffer) + dbr_enumStrs_size;
-	return;
+    memset(pdbr_enumStrs, '\0', dbr_enumStrs_size);
+    switch (field_type) {
+    case DBF_ENUM:
+        if (prset && prset->get_enum_strs) {
+            (*prset->get_enum_strs) (paddr, pdbr_enumStrs);
+        } else {
+            *options = (*options) ^ DBR_ENUM_STRS; /*Turn off option */
+        }
+        break;
+    case DBF_MENU:
+        pdbMenu = (dbMenu *) pdbFldDes->ftPvt;
+        no_str = pdbMenu->nChoice;
+        papChoice = pdbMenu->papChoiceValue;
+        goto choice_common;
+    case DBF_DEVICE:
+        pdbDeviceMenu = (dbDeviceMenu *) pdbFldDes->ftPvt;
+        if (!pdbDeviceMenu) {
+            *options = (*options) ^ DBR_ENUM_STRS; /*Turn off option */
+            break;
+        }
+        no_str = pdbDeviceMenu->nChoice;
+        papChoice = pdbDeviceMenu->papChoice;
+        goto choice_common;
+      choice_common:
+        i = sizeof(pdbr_enumStrs->strs) / sizeof(pdbr_enumStrs->strs[0]);
+        if (i < no_str)
+            no_str = i;
+        pdbr_enumStrs->no_str = no_str;
+        ptemp = &(pdbr_enumStrs->strs[0][0]);
+        for (i = 0; i < no_str; i++) {
+            if (papChoice[i] == NULL)
+                *ptemp = 0;
+            else {
+                strncpy(ptemp, papChoice[i], sizeof(pdbr_enumStrs->strs[0]));
+                *(ptemp + sizeof(pdbr_enumStrs->strs[0]) - 1) = 0;
+            }
+            ptemp += sizeof(pdbr_enumStrs->strs[0]);
+        }
+        break;
+    default:
+        *options = (*options) ^ DBR_ENUM_STRS; /*Turn off option */
+        break;
+    }
+    *ppbuffer = ((char *)*ppbuffer) + dbr_enumStrs_size;
+    return;
 }
 
 static void get_graphics(DBADDR *paddr, char **ppbuffer,
-    rset *prset,long	*options)
+    rset * prset, long *options)
 {
-	struct			dbr_grDouble grd;
-	int			got_data=FALSE;
-
-        grd.upper_disp_limit = grd.lower_disp_limit = 0.0;
-	if( prset && prset->get_graphic_double ) {
-		(*prset->get_graphic_double)(paddr,&grd);
-		got_data=TRUE;
-	}
-	if( (*options) & (DBR_GR_LONG) ) {
-		char	*pbuffer=*ppbuffer;
-
-		if(got_data) {
-		    struct dbr_grLong *pgr=(struct dbr_grLong*)pbuffer;
-		    pgr->upper_disp_limit = (epicsInt32)grd.upper_disp_limit;
-		    pgr->lower_disp_limit = (epicsInt32)grd.lower_disp_limit;
-		} else {
-		    memset(pbuffer,'\0',dbr_grLong_size);
-		    *options = (*options) ^ DBR_GR_LONG; /*Turn off option*/
-		}
-		*ppbuffer = ((char *)*ppbuffer) + dbr_grLong_size;
-	}
-	if( (*options) & (DBR_GR_DOUBLE) ) {
-		char	*pbuffer=*ppbuffer;
-
-		if(got_data) {
-		    struct dbr_grDouble *pgr=(struct dbr_grDouble*)pbuffer;
-		    pgr->upper_disp_limit = grd.upper_disp_limit;
-		    pgr->lower_disp_limit = grd.lower_disp_limit;
-		} else {
-		    memset(pbuffer,'\0',dbr_grDouble_size);
-		    *options = (*options) ^ DBR_GR_DOUBLE; /*Turn off option*/
-		}
-		*ppbuffer = ((char *)*ppbuffer) + dbr_grDouble_size;
-	}
-	return;
+    struct dbr_grDouble grd;
+    int got_data = FALSE;
+
+    grd.upper_disp_limit = grd.lower_disp_limit = 0.0;
+    if (prset && prset->get_graphic_double) {
+        (*prset->get_graphic_double) (paddr, &grd);
+        got_data = TRUE;
+    }
+    if ((*options) & (DBR_GR_LONG)) {
+        char *pbuffer = *ppbuffer;
+
+        if (got_data) {
+            struct dbr_grLong *pgr = (struct dbr_grLong *)pbuffer;
+            pgr->upper_disp_limit = (epicsInt32) grd.upper_disp_limit;
+            pgr->lower_disp_limit = (epicsInt32) grd.lower_disp_limit;
+        } else {
+            memset(pbuffer, '\0', dbr_grLong_size);
+            *options = (*options) ^ DBR_GR_LONG; /*Turn off option */
+        }
+        *ppbuffer = ((char *)*ppbuffer) + dbr_grLong_size;
+    }
+    if ((*options) & (DBR_GR_DOUBLE)) {
+        char *pbuffer = *ppbuffer;
+
+        if (got_data) {
+            struct dbr_grDouble *pgr = (struct dbr_grDouble *)pbuffer;
+            pgr->upper_disp_limit = grd.upper_disp_limit;
+            pgr->lower_disp_limit = grd.lower_disp_limit;
+        } else {
+            memset(pbuffer, '\0', dbr_grDouble_size);
+            *options = (*options) ^ DBR_GR_DOUBLE; /*Turn off option */
+        }
+        *ppbuffer = ((char *)*ppbuffer) + dbr_grDouble_size;
+    }
+    return;
 }
 
 static void get_control(DBADDR *paddr, char **ppbuffer,
-    rset *prset,long	*options)
+    rset * prset, long *options)
 {
-	struct dbr_ctrlDouble	ctrld;
-	int			got_data=FALSE;
-
-        ctrld.upper_ctrl_limit = ctrld.lower_ctrl_limit = 0.0;
-	if( prset && prset->get_control_double ) {
-		(*prset->get_control_double)(paddr,&ctrld);
-		got_data=TRUE;
-	}
-	if( (*options) & (DBR_CTRL_LONG) ) {
-		char	*pbuffer=*ppbuffer;
-
-		if(got_data) {
-		    struct dbr_ctrlLong *pctrl=(struct dbr_ctrlLong*)pbuffer;
-		    pctrl->upper_ctrl_limit = (epicsInt32)ctrld.upper_ctrl_limit;
-		    pctrl->lower_ctrl_limit = (epicsInt32)ctrld.lower_ctrl_limit;
-		} else {
-		    memset(pbuffer,'\0',dbr_ctrlLong_size);
-		    *options = (*options) ^ DBR_CTRL_LONG; /*Turn off option*/
-		}
-		*ppbuffer = ((char *)*ppbuffer) + dbr_ctrlLong_size;
-	}
-	if( (*options) & (DBR_CTRL_DOUBLE) ) {
-		char	*pbuffer=*ppbuffer;
-
-		if(got_data) {
-		   struct dbr_ctrlDouble *pctrl=(struct dbr_ctrlDouble*)pbuffer;
-		   pctrl->upper_ctrl_limit = ctrld.upper_ctrl_limit;
-		   pctrl->lower_ctrl_limit = ctrld.lower_ctrl_limit;
-		} else {
-		    memset(pbuffer,'\0',dbr_ctrlDouble_size);
-		    *options = (*options) ^ DBR_CTRL_DOUBLE; /*Turn off option*/
-		}
-		*ppbuffer = ((char *)*ppbuffer) + dbr_ctrlDouble_size;
-	}
-	return;
+    struct dbr_ctrlDouble ctrld;
+    int got_data = FALSE;
+
+    ctrld.upper_ctrl_limit = ctrld.lower_ctrl_limit = 0.0;
+    if (prset && prset->get_control_double) {
+        (*prset->get_control_double) (paddr, &ctrld);
+        got_data = TRUE;
+    }
+    if ((*options) & (DBR_CTRL_LONG)) {
+        char *pbuffer = *ppbuffer;
+
+        if (got_data) {
+            struct dbr_ctrlLong *pctrl = (struct dbr_ctrlLong *)pbuffer;
+            pctrl->upper_ctrl_limit = (epicsInt32) ctrld.upper_ctrl_limit;
+            pctrl->lower_ctrl_limit = (epicsInt32) ctrld.lower_ctrl_limit;
+        } else {
+            memset(pbuffer, '\0', dbr_ctrlLong_size);
+            *options = (*options) ^ DBR_CTRL_LONG; /*Turn off option */
+        }
+        *ppbuffer = ((char *)*ppbuffer) + dbr_ctrlLong_size;
+    }
+    if ((*options) & (DBR_CTRL_DOUBLE)) {
+        char *pbuffer = *ppbuffer;
+
+        if (got_data) {
+            struct dbr_ctrlDouble *pctrl = (struct dbr_ctrlDouble *)pbuffer;
+            pctrl->upper_ctrl_limit = ctrld.upper_ctrl_limit;
+            pctrl->lower_ctrl_limit = ctrld.lower_ctrl_limit;
+        } else {
+            memset(pbuffer, '\0', dbr_ctrlDouble_size);
+            *options = (*options) ^ DBR_CTRL_DOUBLE; /*Turn off option */
+        }
+        *ppbuffer = ((char *)*ppbuffer) + dbr_ctrlDouble_size;
+    }
+    return;
 }
 
 static void get_alarm(DBADDR *paddr, char **ppbuffer,
-    rset *prset, long *options)
+    rset * prset, long *options)
 {
     char *pbuffer = *ppbuffer;
-    struct dbr_alDouble ald = {epicsNAN, epicsNAN, epicsNAN, epicsNAN};
+    struct dbr_alDouble ald = { epicsNAN, epicsNAN, epicsNAN, epicsNAN };
     long no_data = TRUE;
 
     if (prset && prset->get_alarm_double)
         no_data = prset->get_alarm_double(paddr, &ald);
 
     if (*options & DBR_AL_LONG) {
-        struct dbr_alLong *pal = (struct dbr_alLong*) pbuffer;
+        struct dbr_alLong *pal = (struct dbr_alLong *)pbuffer;
 
-        pal->upper_alarm_limit   = finite(ald.upper_alarm_limit) ?
+        pal->upper_alarm_limit = finite(ald.upper_alarm_limit) ?
             (epicsInt32) ald.upper_alarm_limit : 0;
         pal->upper_warning_limit = finite(ald.upper_warning_limit) ?
             (epicsInt32) ald.upper_warning_limit : 0;
         pal->lower_warning_limit = finite(ald.lower_warning_limit) ?
             (epicsInt32) ald.lower_warning_limit : 0;
-        pal->lower_alarm_limit   = finite(ald.lower_alarm_limit) ?
+        pal->lower_alarm_limit = finite(ald.lower_alarm_limit) ?
             (epicsInt32) ald.lower_alarm_limit : 0;
 
         if (no_data)
-            *options ^= DBR_AL_LONG; /*Turn off option*/
+            *options ^= DBR_AL_LONG;    /*Turn off option */
 
         *ppbuffer += dbr_alLong_size;
     }
     if (*options & DBR_AL_DOUBLE) {
-        struct dbr_alDouble *pal = (struct dbr_alDouble*) pbuffer;
+        struct dbr_alDouble *pal = (struct dbr_alDouble *)pbuffer;
 
-        pal->upper_alarm_limit   = ald.upper_alarm_limit;
+        pal->upper_alarm_limit = ald.upper_alarm_limit;
         pal->upper_warning_limit = ald.upper_warning_limit;
         pal->lower_warning_limit = ald.lower_warning_limit;
-        pal->lower_alarm_limit   = ald.lower_alarm_limit;
+        pal->lower_alarm_limit = ald.lower_alarm_limit;
 
         if (no_data)
-            *options ^= DBR_AL_DOUBLE; /*Turn off option*/
+            *options ^= DBR_AL_DOUBLE;  /*Turn off option */
 
         *ppbuffer += dbr_alDouble_size;
     }
@@ -330,88 +332,89 @@ static void get_alarm(DBADDR *paddr, char **ppbuffer,
  * blocks only changing the buffer pointer in a way that does not break alignment.
  */
 static void getOptions(DBADDR *paddr, char **poriginal, long *options,
-        void *pflin)
+    void *pflin)
 {
-	db_field_log	*pfl= (db_field_log *)pflin;
-    rset	*prset;
-        short		field_type;
-	dbCommon	*pcommon;
-	char		*pbuffer = *poriginal;
-
-        if (!pfl || pfl->type == dbfl_type_rec)
-            field_type = paddr->field_type;
-        else
-            field_type = pfl->field_type;
-	prset=dbGetRset(paddr);
-	/* Process options */
-	pcommon = paddr->precord;
-	if( (*options) & DBR_STATUS ) {
-	    unsigned short *pushort = (unsigned short *)pbuffer;
-
-            if (!pfl || pfl->type == dbfl_type_rec) {
-                *pushort++ = pcommon->stat;
-                *pushort++ = pcommon->sevr;
-            } else {
-                *pushort++ = pfl->stat;
-                *pushort++ = pfl->sevr;
-            }
-	    *pushort++ = pcommon->acks;
-	    *pushort++ = pcommon->ackt;
-	    pbuffer = (char *)pushort;
-	}
-	if( (*options) & DBR_UNITS ) {
-	    memset(pbuffer,'\0',dbr_units_size);
-	    if( prset && prset->get_units ){
-		(*prset->get_units)(paddr, pbuffer);
-		pbuffer[DB_UNITS_SIZE-1] = '\0';
-	    } else {
-		*options ^= DBR_UNITS; /*Turn off DBR_UNITS*/
-	    }
-	    pbuffer += dbr_units_size;
-	}
-	if( (*options) & DBR_PRECISION ) {
-	    memset(pbuffer, '\0', dbr_precision_size);
-	    if((field_type==DBF_FLOAT || field_type==DBF_DOUBLE)
-	    &&  prset && prset->get_precision ){
-                (*prset->get_precision)(paddr,(long *)pbuffer);
-	    } else {
-		*options ^= DBR_PRECISION; /*Turn off DBR_PRECISION*/
-	    }
-	    pbuffer += dbr_precision_size;
-	}
-	if( (*options) & DBR_TIME ) {
-	    epicsUInt32 *ptime = (epicsUInt32 *)pbuffer;
-
-            if (!pfl || pfl->type == dbfl_type_rec) {
-                *ptime++ = pcommon->time.secPastEpoch;
-                *ptime++ = pcommon->time.nsec;
-            } else {
-                *ptime++ = pfl->time.secPastEpoch;
-                *ptime++ = pfl->time.nsec;
-	    }
-	    pbuffer = (char *)ptime;
-	}
-	if( (*options) & DBR_ENUM_STRS )
-	    get_enum_strs(paddr, &pbuffer, prset, options);
-	if( (*options) & (DBR_GR_LONG|DBR_GR_DOUBLE ))
-	    get_graphics(paddr, &pbuffer, prset, options);
-	if((*options) & (DBR_CTRL_LONG | DBR_CTRL_DOUBLE ))
-	    get_control(paddr, &pbuffer, prset, options);
-	if((*options) & (DBR_AL_LONG | DBR_AL_DOUBLE ))
-	    get_alarm(paddr, &pbuffer, prset, options);
-	*poriginal = pbuffer;
+    db_field_log *pfl = (db_field_log *) pflin;
+    rset *prset;
+    short field_type;
+    dbCommon *pcommon;
+    char *pbuffer = *poriginal;
+
+    if (!pfl || pfl->type == dbfl_type_rec)
+        field_type = paddr->field_type;
+    else
+        field_type = pfl->field_type;
+    prset = dbGetRset(paddr);
+    /* Process options */
+    pcommon = paddr->precord;
+    if ((*options) & DBR_STATUS) {
+        unsigned short *pushort = (unsigned short *)pbuffer;
+
+        if (!pfl || pfl->type == dbfl_type_rec) {
+            *pushort++ = pcommon->stat;
+            *pushort++ = pcommon->sevr;
+        } else {
+            *pushort++ = pfl->stat;
+            *pushort++ = pfl->sevr;
+        }
+        *pushort++ = pcommon->acks;
+        *pushort++ = pcommon->ackt;
+        pbuffer = (char *)pushort;
+    }
+    if ((*options) & DBR_UNITS) {
+        memset(pbuffer, '\0', dbr_units_size);
+        if (prset && prset->get_units) {
+            (*prset->get_units) (paddr, pbuffer);
+            pbuffer[DB_UNITS_SIZE - 1] = '\0';
+        } else {
+            *options ^= DBR_UNITS;      /*Turn off DBR_UNITS */
+        }
+        pbuffer += dbr_units_size;
+    }
+    if ((*options) & DBR_PRECISION) {
+        memset(pbuffer, '\0', dbr_precision_size);
+        if ((field_type == DBF_FLOAT || field_type == DBF_DOUBLE)
+            && prset && prset->get_precision) {
+            (*prset->get_precision) (paddr, (long *)pbuffer);
+        } else {
+            *options ^= DBR_PRECISION;  /*Turn off DBR_PRECISION */
+        }
+        pbuffer += dbr_precision_size;
+    }
+    if ((*options) & DBR_TIME) {
+        epicsUInt32 *ptime = (epicsUInt32 *) pbuffer;
+
+        if (!pfl || pfl->type == dbfl_type_rec) {
+            *ptime++ = pcommon->time.secPastEpoch;
+            *ptime++ = pcommon->time.nsec;
+        } else {
+            *ptime++ = pfl->time.secPastEpoch;
+            *ptime++ = pfl->time.nsec;
+        }
+        pbuffer = (char *)ptime;
+    }
+    if ((*options) & DBR_ENUM_STRS)
+        get_enum_strs(paddr, &pbuffer, prset, options);
+    if ((*options) & (DBR_GR_LONG | DBR_GR_DOUBLE))
+        get_graphics(paddr, &pbuffer, prset, options);
+    if ((*options) & (DBR_CTRL_LONG | DBR_CTRL_DOUBLE))
+        get_control(paddr, &pbuffer, prset, options);
+    if ((*options) & (DBR_AL_LONG | DBR_AL_DOUBLE))
+        get_alarm(paddr, &pbuffer, prset, options);
+    *poriginal = pbuffer;
 }
 
-rset * dbGetRset(const struct dbAddr *paddr)
+rset *dbGetRset(const struct dbAddr *paddr)
 {
-	struct dbFldDes *pfldDes = paddr->pfldDes;
+    struct dbFldDes *pfldDes = paddr->pfldDes;
 
-	if(!pfldDes) return(0);
-	return(pfldDes->pdbRecordType->prset);
+    if (!pfldDes)
+        return (0);
+    return (pfldDes->pdbRecordType->prset);
 }
 
-long dbPutAttribute(
-    const char *recordTypename, const char *name, const char *value)
+long dbPutAttribute(const char *recordTypename, const char *name,
+    const char *value)
 {
     DBENTRY dbEntry;
     DBENTRY *pdbEntry = &dbEntry;
@@ -430,7 +433,7 @@ long dbPutAttribute(
     if (!status)
         status = dbPutRecordAttribute(pdbEntry, name, value);
     dbFinishEntry(pdbEntry);
-done:
+  done:
     if (status)
         errMessage(status, "dbPutAttribute failure");
     return status;
@@ -458,7 +461,7 @@ int dbGetFieldIndex(const struct dbAddr *paddr)
  *     5.  Run the process routine specific to the record type.
  *     6.  Check to see if record contents should be automatically printed.
  */
-long dbProcess(dbCommon *precord)
+long dbProcess(dbCommon * precord)
 {
     rset *prset = precord->rset;
     dbRecordType *pdbRecordType = precord->rdes;
@@ -466,7 +469,7 @@ long dbProcess(dbCommon *precord)
     char context[40] = "";
     long status = 0;
     int *ptrace;
-    int	set_trace = FALSE;
+    int set_trace = FALSE;
     dbFldDes *pdbFldDes;
     int callNotifyCompletion = FALSE;
 
@@ -492,7 +495,7 @@ long dbProcess(dbCommon *precord)
             goto all_done;
     }
 
-    /* check for trace processing*/
+    /* check for trace processing */
     if (tpro) {
         if (!*ptrace) {
             *ptrace = 1;
@@ -519,19 +522,17 @@ long dbProcess(dbCommon *precord)
 
         /* raise scan alarm after MAX_LOCK times */
         if ((precord->stat == SCAN_ALARM) ||
-            (precord->lcnt++ < MAX_LOCK) ||
-            (precord->sevr >= INVALID_ALARM)) goto all_done;
+            (precord->lcnt++ < MAX_LOCK) || (precord->sevr >= INVALID_ALARM))
+            goto all_done;
 
         recGblSetSevr(precord, SCAN_ALARM, INVALID_ALARM);
         monitor_mask = recGblResetAlarms(precord);
-        monitor_mask |= DBE_VALUE|DBE_LOG;
+        monitor_mask |= DBE_VALUE | DBE_LOG;
         pdbFldDes = pdbRecordType->papFldDes[pdbRecordType->indvalFlddes];
         db_post_events(precord,
-                (void *)(((char *)precord) + pdbFldDes->offset),
-                monitor_mask);
+            (void *)(((char *)precord) + pdbFldDes->offset), monitor_mask);
         goto all_done;
-    }
-    else
+    } else
         precord->lcnt = 0;
 
     /*
@@ -547,7 +548,7 @@ long dbProcess(dbCommon *precord)
             printf("%s: dbProcess of Disabled '%s'\n",
                 context, precord->name);
 
-        /*take care of caching and notifyCompletion*/
+        /*take care of caching and notifyCompletion */
         precord->rpro = FALSE;
         precord->putf = FALSE;
         callNotifyCompletion = TRUE;
@@ -564,8 +565,8 @@ long dbProcess(dbCommon *precord)
         db_post_events(precord, &precord->sevr, DBE_VALUE);
         pdbFldDes = pdbRecordType->papFldDes[pdbRecordType->indvalFlddes];
         db_post_events(precord,
-                (void *)(((char *)precord) + pdbFldDes->offset),
-                DBE_VALUE|DBE_ALARM);
+            (void *)(((char *)precord) + pdbFldDes->offset),
+            DBE_VALUE | DBE_ALARM);
         goto all_done;
     }
 
@@ -573,7 +574,7 @@ long dbProcess(dbCommon *precord)
     /* FIXME: put this in iocInit() !!! */
     if (!prset || !prset->process) {
         callNotifyCompletion = TRUE;
-        precord->pact = 1;/*set pact so error is issued only once*/
+        precord->pact = 1;              /*set pact so error is issued only once */
         recGblRecordError(S_db_noRSET, (void *)precord, "dbProcess");
         status = S_db_noRSET;
         if (*ptrace)
@@ -592,7 +593,7 @@ long dbProcess(dbCommon *precord)
         dbPrint(precord);
     }
 
-all_done:
+  all_done:
     if (set_trace)
         *ptrace = 0;
     if (callNotifyCompletion && precord->ppn)
@@ -601,7 +602,7 @@ all_done:
     return status;
 }
 
-long dbEntryToAddr(const DBENTRY *pdbentry, DBADDR *paddr)
+long dbEntryToAddr(const DBENTRY * pdbentry, DBADDR *paddr)
 {
     dbFldDes *pflddes = pdbentry->pflddes;
     short dbfType = pflddes->field_type;
@@ -610,9 +611,9 @@ long dbEntryToAddr(const DBENTRY *pdbentry, DBADDR *paddr)
     paddr->pfield = pdbentry->pfield;
     paddr->pfldDes = pflddes;
     paddr->no_elements = 1;
-    paddr->field_type  = dbfType;
-    paddr->field_size  = pflddes->size;
-    paddr->special     = pflddes->special;
+    paddr->field_type = dbfType;
+    paddr->field_size = pflddes->size;
+    paddr->special = pflddes->special;
     paddr->dbr_field_type = mapDBFToDBR[dbfType];
 
     if (paddr->special == SPC_DBADDR) {
@@ -643,16 +644,20 @@ long dbNameToAddr(const char *pname, DBADDR *paddr)
 
     dbInitEntry(pdbbase, &dbEntry);
     status = dbFindRecordPart(&dbEntry, &pname);
-    if (status) goto finish;
+    if (status)
+        goto finish;
 
-    if (*pname == '.') ++pname;
+    if (*pname == '.')
+        ++pname;
     status = dbFindFieldPart(&dbEntry, &pname);
     if (status == S_dbLib_fieldNotFound)
         status = dbGetAttributePart(&dbEntry, &pname);
-    if (status) goto finish;
+    if (status)
+        goto finish;
 
     status = dbEntryToAddr(&dbEntry, paddr);
-    if (status) goto finish;
+    if (status)
+        goto finish;
 
     /* Handle field modifiers */
     if (*pname++ == '$') {
@@ -664,29 +669,27 @@ long dbNameToAddr(const char *pname, DBADDR *paddr)
             paddr->field_type = DBF_CHAR;
             paddr->field_size = 1;
             paddr->dbr_field_type = DBR_CHAR;
-        }
-        else if (dbfType >= DBF_INLINK && dbfType <= DBF_FWDLINK) {
+        } else if (dbfType >= DBF_INLINK && dbfType <= DBF_FWDLINK) {
             /* Clients see a char array, but keep original dbfType */
             paddr->no_elements = PVLINK_STRINGSZ;
             paddr->field_size = 1;
             paddr->dbr_field_type = DBR_CHAR;
-        }
-        else {
+        } else {
             status = S_dbLib_fieldNotFound;
         }
     }
 
-finish:
+  finish:
     dbFinishEntry(&dbEntry);
     return status;
 }
 
-void dbInitEntryFromAddr(struct dbAddr *paddr, DBENTRY *pdbentry)
+void dbInitEntryFromAddr(struct dbAddr *paddr, DBENTRY * pdbentry)
 {
     struct dbCommon *prec = paddr->precord;
     dbCommonPvt *ppvt = dbRec2Pvt(prec);
 
-    memset((char *)pdbentry,'\0',sizeof(DBENTRY));
+    memset((char *)pdbentry, '\0', sizeof(DBENTRY));
 
     pdbentry->pdbbase = pdbbase;
     pdbentry->precordType = prec->rdes;
@@ -696,24 +699,24 @@ void dbInitEntryFromAddr(struct dbAddr *paddr, DBENTRY *pdbentry)
     pdbentry->indfield = paddr->pfldDes->indRecordType;
 }
 
-void dbInitEntryFromRecord(struct dbCommon *prec, DBENTRY *pdbentry)
+void dbInitEntryFromRecord(struct dbCommon *prec, DBENTRY * pdbentry)
 {
     dbCommonPvt *ppvt = dbRec2Pvt(prec);
 
-    memset((char *)pdbentry,'\0',sizeof(DBENTRY));
+    memset((char *)pdbentry, '\0', sizeof(DBENTRY));
 
     pdbentry->pdbbase = pdbbase;
     pdbentry->precordType = prec->rdes;
     pdbentry->precnode = ppvt->recnode;
 }
 
-struct link* dbGetDevLink(struct dbCommon* prec)
+struct link *dbGetDevLink(struct dbCommon *prec)
 {
     DBLINK *plink = 0;
     DBENTRY entry;
     dbInitEntryFromRecord(prec, &entry);
-    if(dbFindField(&entry, "INP")==0 || dbFindField(&entry, "OUT")==0) {
-        plink = (DBLINK*)entry.pfield;
+    if (dbFindField(&entry, "INP") == 0 || dbFindField(&entry, "OUT") == 0) {
+        plink = (DBLINK *) entry.pfield;
     }
     dbFinishEntry(&entry);
     return plink;
@@ -723,41 +726,53 @@ long dbValueSize(short dbr_type)
 {
     /* sizes for value associated with each DBR request type */
     static long size[] = {
-        MAX_STRING_SIZE,             /* STRING       */
-        sizeof(epicsInt8),           /* CHAR         */
-        sizeof(epicsUInt8),          /* UCHAR        */
-        sizeof(epicsInt16),          /* SHORT        */
-        sizeof(epicsUInt16),         /* USHORT       */
-        sizeof(epicsInt32),          /* LONG         */
-        sizeof(epicsUInt32),         /* ULONG        */
-        sizeof(epicsInt64),          /* INT64        */
-        sizeof(epicsUInt64),         /* UINT64       */
-        sizeof(epicsFloat32),        /* FLOAT        */
-        sizeof(epicsFloat64),        /* DOUBLE       */
-        sizeof(epicsEnum16)};        /* ENUM         */
-
-    return(size[dbr_type]);
+        MAX_STRING_SIZE,                /* STRING       */
+        sizeof(epicsInt8),              /* CHAR         */
+        sizeof(epicsUInt8),             /* UCHAR        */
+        sizeof(epicsInt16),             /* SHORT        */
+        sizeof(epicsUInt16),            /* USHORT       */
+        sizeof(epicsInt32),             /* LONG         */
+        sizeof(epicsUInt32),            /* ULONG        */
+        sizeof(epicsInt64),             /* INT64        */
+        sizeof(epicsUInt64),            /* UINT64       */
+        sizeof(epicsFloat32),           /* FLOAT        */
+        sizeof(epicsFloat64),           /* DOUBLE       */
+        sizeof(epicsEnum16)
+    };                                  /* ENUM         */
+
+    return (size[dbr_type]);
 }
 
-
 long dbBufferSize(short dbr_type, long options, long no_elements)
 {
-    long nbytes=0;
+    long nbytes = 0;
 
     nbytes += dbValueSize(dbr_type) * no_elements;
-    if (options & DBR_STATUS)      nbytes += dbr_status_size;
-    if (options & DBR_UNITS)       nbytes += dbr_units_size;
-    if (options & DBR_PRECISION)   nbytes += dbr_precision_size;
-    if (options & DBR_TIME)        nbytes += dbr_time_size;
-    if (options & DBR_ENUM_STRS)   nbytes += dbr_enumStrs_size;
-    if (options & DBR_GR_LONG)     nbytes += dbr_grLong_size;
-    if (options & DBR_GR_DOUBLE)   nbytes += dbr_grDouble_size;
-    if (options & DBR_CTRL_LONG)   nbytes += dbr_ctrlLong_size;
-    if (options & DBR_CTRL_DOUBLE) nbytes += dbr_ctrlDouble_size;
-    if (options & DBR_AL_LONG)     nbytes += dbr_alLong_size;
-    if (options & DBR_AL_DOUBLE)   nbytes += dbr_alDouble_size;
-    return(nbytes);
+    if (options & DBR_STATUS)
+        nbytes += dbr_status_size;
+    if (options & DBR_UNITS)
+        nbytes += dbr_units_size;
+    if (options & DBR_PRECISION)
+        nbytes += dbr_precision_size;
+    if (options & DBR_TIME)
+        nbytes += dbr_time_size;
+    if (options & DBR_ENUM_STRS)
+        nbytes += dbr_enumStrs_size;
+    if (options & DBR_GR_LONG)
+        nbytes += dbr_grLong_size;
+    if (options & DBR_GR_DOUBLE)
+        nbytes += dbr_grDouble_size;
+    if (options & DBR_CTRL_LONG)
+        nbytes += dbr_ctrlLong_size;
+    if (options & DBR_CTRL_DOUBLE)
+        nbytes += dbr_ctrlDouble_size;
+    if (options & DBR_AL_LONG)
+        nbytes += dbr_alLong_size;
+    if (options & DBR_AL_DOUBLE)
+        nbytes += dbr_alDouble_size;
+    return (nbytes);
 }
+
 int dbLoadDatabase(const char *file, const char *path, const char *subs)
 {
     if (!file) {
@@ -767,7 +782,7 @@ int dbLoadDatabase(const char *file, const char *path, const char *subs)
     return dbReadDatabase(&pdbbase, file, path, subs);
 }
 
-int dbLoadRecords(const char* file, const char* subs)
+int dbLoadRecords(const char *file, const char *subs)
 {
     int status;
 
@@ -781,7 +796,6 @@ int dbLoadRecords(const char* file, const char* subs)
     return status;
 }
 
-
 static long getLinkValue(DBADDR *paddr, short dbrType,
     char *pbuf, long *nRequest)
 {
@@ -797,7 +811,7 @@ static long getLinkValue(DBADDR *paddr, short dbrType,
      * valid DBADDR, so no point to check again.
      * Request for zero elements always succeeds
      */
-    if(!nReq)
+    if (!nReq)
         return 0;
 
     switch (dbrType) {
@@ -806,8 +820,9 @@ static long getLinkValue(DBADDR *paddr, short dbrType,
         nReq = 1;
         break;
 
-    case DBR_DOUBLE:    /* Needed for dbCa links */
-        if (nRequest) *nRequest = 1;
+    case DBR_DOUBLE:                   /* Needed for dbCa links */
+        if (nRequest)
+            *nRequest = 1;
         *(double *)pbuf = epicsNAN;
         return 0;
 
@@ -821,27 +836,30 @@ static long getLinkValue(DBADDR *paddr, short dbrType,
 
     dbInitEntry(pdbbase, &dbEntry);
     status = dbFindRecord(&dbEntry, precord->name);
-    if (!status) status = dbFindField(&dbEntry, pfldDes->name);
+    if (!status)
+        status = dbFindField(&dbEntry, pfldDes->name);
     if (!status) {
         const char *rtnString = dbGetString(&dbEntry);
 
-        strncpy(pbuf, rtnString, maxlen-1);
-        pbuf[maxlen-1] = 0;
-        if(dbrType!=DBR_STRING)
-            nReq = strlen(pbuf)+1;
-        if(nRequest) *nRequest = nReq;
+        strncpy(pbuf, rtnString, maxlen - 1);
+        pbuf[maxlen - 1] = 0;
+        if (dbrType != DBR_STRING)
+            nReq = strlen(pbuf) + 1;
+        if (nRequest)
+            *nRequest = nReq;
     }
     dbFinishEntry(&dbEntry);
     return status;
 }
 
 static long getAttrValue(DBADDR *paddr, short dbrType,
-        char *pbuf, long *nRequest)
+    char *pbuf, long *nRequest)
 {
     int maxlen;
     long nReq = nRequest ? *nRequest : 1;
 
-    if (!paddr->pfield) return S_db_badField;
+    if (!paddr->pfield)
+        return S_db_badField;
 
     switch (dbrType) {
     case DBR_STRING:
@@ -859,15 +877,16 @@ static long getAttrValue(DBADDR *paddr, short dbrType,
         return S_db_badDbrtype;
     }
 
-    strncpy(pbuf, paddr->pfield, maxlen-1);
-    pbuf[maxlen-1] = 0;
-    if(dbrType!=DBR_STRING)
-        nReq = strlen(pbuf)+1;
-    if(nRequest) *nRequest = nReq;
+    strncpy(pbuf, paddr->pfield, maxlen - 1);
+    pbuf[maxlen - 1] = 0;
+    if (dbrType != DBR_STRING)
+        nReq = strlen(pbuf) + 1;
+    if (nRequest)
+        *nRequest = nReq;
     return 0;
 }
 
-long dbGetField(DBADDR *paddr,short dbrType,
+long dbGetField(DBADDR *paddr, short dbrType,
     void *pbuffer, long *options, long *nRequest, void *pflin)
 {
     dbCommon *precord = paddr->precord;
@@ -884,7 +903,7 @@ long dbGet(DBADDR *paddr, short dbrType,
 {
     char *pbuf = pbuffer;
     void *pfieldsave = paddr->pfield;
-    db_field_log *pfl = (db_field_log *)pflin;
+    db_field_log *pfl = (db_field_log *) pflin;
     short field_type;
     long capacity, no_elements, offset;
     rset *prset;
@@ -903,8 +922,7 @@ long dbGet(DBADDR *paddr, short dbrType,
          * may modify paddr->pfield
          */
         if (paddr->pfldDes->special == SPC_DBADDR &&
-            (prset = dbGetRset(paddr)) &&
-            prset->get_array_info) {
+            (prset = dbGetRset(paddr)) && prset->get_array_info) {
             status = prset->get_array_info(paddr, &no_elements, &offset);
         } else
             offset = 0;
@@ -941,15 +959,15 @@ long dbGet(DBADDR *paddr, short dbrType,
             status = dbFastGetConvertRoutine[field_type][dbrType]
                 (paddr->pfield, pbuf, paddr);
         } else {
-            DBADDR localAddr = *paddr; /* Structure copy */
+            DBADDR localAddr = *paddr;  /* Structure copy */
 
             localAddr.field_type = pfl->field_type;
             localAddr.field_size = pfl->field_size;
             localAddr.no_elements = pfl->no_elements;
             if (pfl->type == dbfl_type_val)
-                localAddr.pfield = (char *) &pfl->u.v.field;
+                localAddr.pfield = (char *)&pfl->u.v.field;
             else
-                localAddr.pfield = (char *)  pfl->u.r.field;
+                localAddr.pfield = (char *)pfl->u.r.field;
             status = dbFastGetConvertRoutine[field_type][dbrType]
                 (localAddr.pfield, pbuf, &localAddr);
         }
@@ -969,52 +987,54 @@ long dbGet(DBADDR *paddr, short dbrType,
             char message[80];
 
             sprintf(message, "dbGet: Missing conversion for [%d][%d]\n",
-                    field_type, dbrType);
+                field_type, dbrType);
             recGblDbaddrError(S_db_badDbrtype, paddr, message);
             status = S_db_badDbrtype;
             goto done;
         }
         /* convert data into the caller's buffer */
         if (n <= 0) {
-            ;/*do nothing*/
+            ;                           /*do nothing */
         } else if (!pfl || pfl->type == dbfl_type_rec) {
             status = convert(paddr, pbuf, n, capacity, offset);
         } else {
-            DBADDR localAddr = *paddr; /* Structure copy */
+            DBADDR localAddr = *paddr;  /* Structure copy */
 
             localAddr.field_type = pfl->field_type;
             localAddr.field_size = pfl->field_size;
             localAddr.no_elements = pfl->no_elements;
             if (pfl->type == dbfl_type_val)
-                localAddr.pfield = (char *) &pfl->u.v.field;
+                localAddr.pfield = (char *)&pfl->u.v.field;
             else
-                localAddr.pfield = (char *)  pfl->u.r.field;
+                localAddr.pfield = (char *)pfl->u.r.field;
             status = convert(&localAddr, pbuf, n, capacity, offset);
         }
 
-        if(!status && dbrType==DBF_CHAR && nRequest &&
-                paddr->pfldDes && paddr->pfldDes->field_type==DBF_STRING)
-        {
+        if (!status && dbrType == DBF_CHAR && nRequest &&
+            paddr->pfldDes && paddr->pfldDes->field_type == DBF_STRING) {
             /* long string ensure nil and truncate to actual length */
             long nReq = *nRequest;
-            pbuf[nReq-1] = '\0';
-            *nRequest = strlen(pbuf)+1;
+            pbuf[nReq - 1] = '\0';
+            *nRequest = strlen(pbuf) + 1;
         }
     }
-done:
+  done:
     paddr->pfield = pfieldsave;
     return status;
 }
 
-devSup* dbDTYPtoDevSup(dbRecordType *prdes, int dtyp) {
-    return (devSup *)ellNth(&prdes->devList, dtyp+1);
+devSup *dbDTYPtoDevSup(dbRecordType * prdes, int dtyp)
+{
+    return (devSup *) ellNth(&prdes->devList, dtyp + 1);
 }
 
-devSup* dbDSETtoDevSup(dbRecordType *prdes, dset *pdset) {
-    devSup *pdevSup = (devSup *)ellFirst(&prdes->devList);
+devSup *dbDSETtoDevSup(dbRecordType * prdes, dset * pdset)
+{
+    devSup *pdevSup = (devSup *) ellFirst(&prdes->devList);
     while (pdevSup) {
-        if (pdset == pdevSup->pdset) return pdevSup;
-        pdevSup = (devSup *)ellNext(&pdevSup->node);
+        if (pdset == pdevSup->pdset)
+            return pdevSup;
+        pdevSup = (devSup *) ellNext(&pdevSup->node);
     }
     return NULL;
 }
@@ -1022,24 +1042,24 @@ devSup* dbDSETtoDevSup(dbRecordType *prdes, dset *pdset) {
 static long dbPutFieldLink(DBADDR *paddr,
     short dbrType, const void *pbuffer, long nRequest)
 {
-    dbLinkInfo  link_info;
-    DBADDR      *pdbaddr = NULL;
-    dbCommon    *precord = paddr->precord;
-    dbCommon    *lockrecs[2];
-    dbLocker    locker;
-    dbFldDes    *pfldDes = paddr->pfldDes;
-    long        special = paddr->special;
+    dbLinkInfo link_info;
+    DBADDR *pdbaddr = NULL;
+    dbCommon *precord = paddr->precord;
+    dbCommon *lockrecs[2];
+    dbLocker locker;
+    dbFldDes *pfldDes = paddr->pfldDes;
+    long special = paddr->special;
     struct link *plink = (struct link *)paddr->pfield;
-    const char  *pstring = (const char *)pbuffer;
+    const char *pstring = (const char *)pbuffer;
     struct dsxt *old_dsxt = NULL;
     dset *new_dset = NULL;
     struct dsxt *new_dsxt = NULL;
-    devSup      *new_devsup = NULL;
-    long        status;
-    int         isDevLink;
-    short       scan;
+    devSup *new_devsup = NULL;
+    long status;
+    int isDevLink;
+    short scan;
 
-    STATIC_ASSERT(DBLOCKER_NALLOC>=2);
+    STATIC_ASSERT(DBLOCKER_NALLOC >= 2);
 
     switch (dbrType) {
     case DBR_CHAR:
@@ -1063,19 +1083,18 @@ static long dbPutFieldLink(DBADDR *paddr,
         (link_info.modifiers & (pvlOptCA | pvlOptCP | pvlOptCPP)) == 0) {
         DBADDR tempaddr;
 
-        if (dbNameToAddr(link_info.target, &tempaddr)==0) {
+        if (dbNameToAddr(link_info.target, &tempaddr) == 0) {
             /* This will become a DB link. */
             pdbaddr = malloc(sizeof(*pdbaddr));
             if (!pdbaddr) {
                 status = S_db_noMemory;
                 goto cleanup;
             }
-            *pdbaddr = tempaddr; /* struct copy */
+            *pdbaddr = tempaddr;        /* struct copy */
         }
     }
 
-    isDevLink = ellCount(&precord->rdes->devList) > 0 &&
-                pfldDes->isDevLink;
+    isDevLink = ellCount(&precord->rdes->devList) > 0 && pfldDes->isDevLink;
 
     memset(&locker, 0, sizeof(locker));
     lockrecs[0] = precord;
@@ -1130,17 +1149,19 @@ static long dbPutFieldLink(DBADDR *paddr,
 
     if (dbLinkIsDefined(plink)) {
         dbRemoveLink(&locker, plink);   /* Clear out old link */
-    }
-    else if (!isDevLink) {
+    } else if (!isDevLink) {
         status = S_db_badHWaddr;
         goto restoreScan;
     }
 
-    if (special) status = dbPutSpecial(paddr, 0);
+    if (special)
+        status = dbPutSpecial(paddr, 0);
 
-    if (!status) status = dbSetLink(plink, &link_info, new_devsup);
+    if (!status)
+        status = dbSetLink(plink, &link_info, new_devsup);
 
-    if (!status && special) status = dbPutSpecial(paddr, 1);
+    if (!status && special)
+        status = dbPutSpecial(paddr, 1);
 
     if (status) {
         if (isDevLink) {
@@ -1163,7 +1184,7 @@ static long dbPutFieldLink(DBADDR *paddr,
         }
     }
 
-    switch (plink->type) { /* New link type */
+    switch (plink->type) {              /* New link type */
     case PV_LINK:
     case CONSTANT:
     case JSON_LINK:
@@ -1173,9 +1194,9 @@ static long dbPutFieldLink(DBADDR *paddr,
     case DB_LINK:
     case CA_LINK:
     case MACRO_LINK:
-        break;  /* should never get here */
+        break;                          /* should never get here */
 
-    default: /* Hardware address */
+    default:                           /* Hardware address */
         if (!isDevLink) {
             status = S_db_badHWaddr;
             goto postScanEvent;
@@ -1184,19 +1205,18 @@ static long dbPutFieldLink(DBADDR *paddr,
     }
     db_post_events(precord, plink, DBE_VALUE | DBE_LOG);
 
-restoreScan:
-    if (isDevLink &&
-        scan == menuScanI_O_Intr) { /* undo scanDelete() */
+  restoreScan:
+    if (isDevLink && scan == menuScanI_O_Intr) { /* undo scanDelete() */
         precord->scan = scan;
         scanAdd(precord);
     }
-postScanEvent:
+  postScanEvent:
     if (scan != precord->scan)
         db_post_events(precord, &precord->scan, DBE_VALUE | DBE_LOG);
-unlock:
+  unlock:
     dbScanUnlockMany(&locker);
     dbLockerFinalize(&locker);
-cleanup:
+  cleanup:
     free(link_info.target);
     return status;
 }
@@ -1204,16 +1224,16 @@ cleanup:
 long dbPutField(DBADDR *paddr, short dbrType,
     const void *pbuffer, long nRequest)
 {
-    long	status = 0;
-    long	special  = paddr->special;
-    dbFldDes	*pfldDes = paddr->pfldDes;
-    dbCommon	*precord = paddr->precord;
-    short	dbfType  = paddr->field_type;
+    long status = 0;
+    long special = paddr->special;
+    dbFldDes *pfldDes = paddr->pfldDes;
+    dbCommon *precord = paddr->precord;
+    short dbfType = paddr->field_type;
 
     if (special == SPC_ATTRIBUTE)
         return S_db_noMod;
 
-    /*check for putField disabled*/
+    /*check for putField disabled */
     if (precord->disp && paddr->pfield != &precord->disp)
         return S_db_putDisabled;
 
@@ -1225,8 +1245,7 @@ long dbPutField(DBADDR *paddr, short dbrType,
     if (status == 0) {
         if (paddr->pfield == &precord->proc ||
             (pfldDes->process_passive &&
-             precord->scan == 0 &&
-             dbrType < DBR_PUT_ACKT)) {
+                precord->scan == 0 && dbrType < DBR_PUT_ACKT)) {
             if (precord->pact) {
                 if (dbAccessDebugPUTF && precord->tpro)
                     printf("%s: dbPutField to Active '%s', setting RPRO=1\n",
@@ -1249,11 +1268,11 @@ static long putAckt(DBADDR *paddr, const void *pbuffer, long nRequest,
     dbCommon *precord = paddr->precord;
     const unsigned short *ptrans = pbuffer;
 
-    if (*ptrans == precord->ackt) return 0;
+    if (*ptrans == precord->ackt)
+        return 0;
     precord->ackt = *ptrans;
     db_post_events(precord, &precord->ackt, DBE_VALUE | DBE_ALARM);
-    if (!precord->ackt &&
-        precord->acks > precord->sevr) {
+    if (!precord->ackt && precord->acks > precord->sevr) {
         precord->acks = precord->sevr;
         db_post_events(precord, &precord->acks, DBE_VALUE | DBE_ALARM);
     }
@@ -1275,14 +1294,13 @@ static long putAcks(DBADDR *paddr, const void *pbuffer, long nRequest,
     return 0;
 }
 
-long dbPut(DBADDR *paddr, short dbrType,
-    const void *pbuffer, long nRequest)
+long dbPut(DBADDR *paddr, short dbrType, const void *pbuffer, long nRequest)
 {
     dbCommon *precord = paddr->precord;
-    short field_type  = paddr->field_type;
-    long no_elements  = paddr->no_elements;
-    long special      = paddr->special;
-    void *pfieldsave  = paddr->pfield;
+    short field_type = paddr->field_type;
+    long no_elements = paddr->no_elements;
+    long special = paddr->special;
+    void *pfieldsave = paddr->pfield;
     rset *prset = dbGetRset(paddr);
     long status = 0;
     long offset;
@@ -1306,7 +1324,8 @@ long dbPut(DBADDR *paddr, short dbrType,
 
     if (special) {
         status = dbPutSpecial(paddr, 0);
-        if (status) return status;
+        if (status)
+            return status;
     }
 
     if (paddr->pfldDes->special == SPC_DBADDR &&
@@ -1315,18 +1334,19 @@ long dbPut(DBADDR *paddr, short dbrType,
 
         status = prset->get_array_info(paddr, &dummy, &offset);
         /* paddr->pfield may be modified */
-        if (status) goto done;
+        if (status)
+            goto done;
     } else
         offset = 0;
 
     if (no_elements <= 1) {
-        status = dbFastPutConvertRoutine[dbrType][field_type](pbuffer,
+        status = dbFastPutConvertRoutine[dbrType][field_type] (pbuffer,
             paddr->pfield, paddr);
         nRequest = 1;
     } else {
         if (no_elements < nRequest)
             nRequest = no_elements;
-        status = dbPutConvertRoutine[dbrType][field_type](paddr, pbuffer,
+        status = dbPutConvertRoutine[dbrType][field_type] (paddr, pbuffer,
             nRequest, no_elements, offset);
     }
 
@@ -1340,17 +1360,19 @@ long dbPut(DBADDR *paddr, short dbrType,
     /* Always do special processing if needed */
     if (special) {
         long status2 = dbPutSpecial(paddr, 1);
-        if (status2) goto done;
+        if (status2)
+            goto done;
     }
-    if (status) goto done;
+    if (status)
+        goto done;
 
     /* Propagate monitor events for this field, */
     /* unless the field is VAL and PP is true. */
     pfldDes = paddr->pfldDes;
     isValueField = dbIsValueField(pfldDes);
-    if (isValueField) precord->udf = FALSE;
-    if (precord->mlis.count &&
-        !(isValueField && pfldDes->process_passive))
+    if (isValueField)
+        precord->udf = FALSE;
+    if (precord->mlis.count && !(isValueField && pfldDes->process_passive))
         db_post_events(precord, pfieldsave, DBE_VALUE | DBE_LOG);
     /* If this field is a property (metadata) field,
      * then post a property change event (even if the field
@@ -1358,7 +1380,7 @@ long dbPut(DBADDR *paddr, short dbrType,
      */
     if (precord->mlis.count && pfldDes->prop)
         db_post_events(precord, NULL, DBE_PROPERTY);
-done:
+  done:
     paddr->pfield = pfieldsave;
     return status;
 }

Navigate by Date:
Prev: Re: [Merge] ~bfrk/epics-base:write-filters-rebased into epics-base:7.0 Ben Franksen via Core-talk
Next: Re: write to a single element of an array field Timo Korhonen via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: [Merge] ~bfrk/epics-base:write-filters-rebased into epics-base:7.0 Ben Franksen via Core-talk
Next: How to work with EPICS repo document Timo Korhonen via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
ANJ, 26 Mar 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·