honor the MASK and SHFT fields
This commit is contained in:
@@ -80,6 +80,9 @@ static long init_record(pmbbi)
|
||||
"devMbbiDirectSoftRaw (init_record) Illegal INP field");
|
||||
return(S_db_badField);
|
||||
}
|
||||
/*to preserve old functionality*/
|
||||
if(pmbbi->nobt == 0) pmbbi->mask = 0xffffffff;
|
||||
pmbbi->mask <<= pmbbi->shft;
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -89,5 +92,6 @@ static long read_mbbi(pmbbi)
|
||||
long status;
|
||||
|
||||
status = dbGetLink(&pmbbi->inp,DBR_LONG,&pmbbi->rval,0,0);
|
||||
if(status==0) pmbbi->rval &= pmbbi->mask;
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -72,6 +72,9 @@ static long init_record(pmbbi)
|
||||
if (pmbbi->inp.type == CONSTANT) {
|
||||
recGblInitConstantLink(&pmbbi->inp,DBF_ULONG,&pmbbi->rval);
|
||||
}
|
||||
/*to preserve old functionality*/
|
||||
if(pmbbi->nobt == 0) pmbbi->mask = 0xffffffff;
|
||||
pmbbi->mask <<= pmbbi->shft;
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -81,5 +84,6 @@ static long read_mbbi(pmbbi)
|
||||
long status;
|
||||
|
||||
status = dbGetLink(&pmbbi->inp,DBR_LONG,&pmbbi->rval,0,0);
|
||||
if(status==0) pmbbi->rval &= pmbbi->mask;
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -70,6 +70,9 @@ struct mbboDirectRecord *pmbbo;
|
||||
|
||||
if (pmbbo->out.type != PV_LINK)
|
||||
status = 2;
|
||||
/*to preserve old functionality*/
|
||||
if(pmbbo->nobt == 0) pmbbo->mask = 0xffffffff;
|
||||
pmbbo->mask <<= pmbbo->shft;
|
||||
return status;
|
||||
} /* end init_record() */
|
||||
|
||||
@@ -77,7 +80,9 @@ static long write_mbbo(pmbbo)
|
||||
struct mbboDirectRecord *pmbbo;
|
||||
{
|
||||
long status;
|
||||
unsigned long data;
|
||||
|
||||
status = dbPutLink(&pmbbo->out,DBR_LONG, &pmbbo->rval,1);
|
||||
data = pmbbo->rval & pmbbo->mask;
|
||||
status = dbPutLink(&pmbbo->out,DBR_LONG, &data,1);
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -68,6 +68,9 @@ struct mbboRecord *pmbbo;
|
||||
|
||||
long status;
|
||||
|
||||
/*to preserve old functionality*/
|
||||
if(pmbbo->nobt == 0) pmbbo->mask = 0xffffffff;
|
||||
pmbbo->mask <<= pmbbo->shft;
|
||||
/*dont convert*/
|
||||
status = 2;
|
||||
return status;
|
||||
@@ -78,7 +81,9 @@ static long write_mbbo(pmbbo)
|
||||
struct mbboRecord *pmbbo;
|
||||
{
|
||||
long status;
|
||||
unsigned long data;
|
||||
|
||||
status = dbPutLink(&pmbbo->out,DBR_LONG, &pmbbo->rval,1);
|
||||
data = pmbbo->rval & pmbbo->mask;
|
||||
status = dbPutLink(&pmbbo->out,DBR_LONG, &data,1);
|
||||
return(0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user