Bugfix in 64 bit data type handling. (Thanks to Andrew Johnson)
This commit is contained in:
@ -1100,7 +1100,7 @@ getFieldAddress(const char* fieldname, StreamBuffer& address)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const unsigned char dbfMapping[] =
|
static const unsigned char dbfMapping[] =
|
||||||
#ifdef DBF_INT64
|
#ifdef DBR_INT64
|
||||||
{0, DBF_UINT64, DBF_INT64, DBF_ENUM, DBF_DOUBLE, DBF_STRING};
|
{0, DBF_UINT64, DBF_INT64, DBF_ENUM, DBF_DOUBLE, DBF_STRING};
|
||||||
#else
|
#else
|
||||||
{0, DBF_ULONG, DBF_LONG, DBF_ENUM, DBF_DOUBLE, DBF_STRING};
|
{0, DBF_ULONG, DBF_LONG, DBF_ENUM, DBF_DOUBLE, DBF_STRING};
|
||||||
|
@ -69,7 +69,7 @@ static long readData(dbCommon *record, format_t *format)
|
|||||||
case DBF_FLOAT:
|
case DBF_FLOAT:
|
||||||
((epicsFloat32 *)aai->bptr)[aai->nord] = (epicsFloat32)lval;
|
((epicsFloat32 *)aai->bptr)[aai->nord] = (epicsFloat32)lval;
|
||||||
break;
|
break;
|
||||||
#ifdef DBF_INT64
|
#ifdef DBR_INT64
|
||||||
case DBF_INT64:
|
case DBF_INT64:
|
||||||
case DBF_UINT64:
|
case DBF_UINT64:
|
||||||
((epicsInt64 *)aai->bptr)[aai->nord] = (epicsInt64)lval;
|
((epicsInt64 *)aai->bptr)[aai->nord] = (epicsInt64)lval;
|
||||||
@ -167,7 +167,7 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
case DBF_FLOAT:
|
case DBF_FLOAT:
|
||||||
dval = ((epicsFloat32 *)aai->bptr)[nowd];
|
dval = ((epicsFloat32 *)aai->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
#ifdef DBF_INT64
|
#ifdef DBR_INT64
|
||||||
case DBF_INT64:
|
case DBF_INT64:
|
||||||
dval = ((epicsInt64 *)aai->bptr)[nowd];
|
dval = ((epicsInt64 *)aai->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
@ -210,12 +210,12 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
{
|
{
|
||||||
switch (aai->ftvl)
|
switch (aai->ftvl)
|
||||||
{
|
{
|
||||||
#ifdef DBF_INT64
|
#ifdef DBR_INT64
|
||||||
case DBF_INT64:
|
case DBF_INT64:
|
||||||
lval = ((epicsInt64 *)aao->bptr)[nowd];
|
lval = ((epicsInt64 *)aai->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
case DBF_UINT64:
|
case DBF_UINT64:
|
||||||
lval = ((epicsUInt64 *)aao->bptr)[nowd];
|
lval = ((epicsUInt64 *)aai->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case DBF_LONG:
|
case DBF_LONG:
|
||||||
|
@ -68,7 +68,7 @@ static long readData(dbCommon *record, format_t *format)
|
|||||||
case DBF_FLOAT:
|
case DBF_FLOAT:
|
||||||
((epicsFloat32 *)aao->bptr)[aao->nord] = (epicsFloat32)lval;
|
((epicsFloat32 *)aao->bptr)[aao->nord] = (epicsFloat32)lval;
|
||||||
break;
|
break;
|
||||||
#ifdef DBF_INT64
|
#ifdef DBR_INT64
|
||||||
case DBF_INT64:
|
case DBF_INT64:
|
||||||
case DBF_UINT64:
|
case DBF_UINT64:
|
||||||
((epicsInt64 *)aao->bptr)[aao->nord] = (epicsInt64)lval;
|
((epicsInt64 *)aao->bptr)[aao->nord] = (epicsInt64)lval;
|
||||||
@ -196,7 +196,7 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
case DBF_FLOAT:
|
case DBF_FLOAT:
|
||||||
dval = ((epicsFloat32 *)aao->bptr)[nowd];
|
dval = ((epicsFloat32 *)aao->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
#ifdef DBF_INT64
|
#ifdef DBR_INT64
|
||||||
case DBF_INT64:
|
case DBF_INT64:
|
||||||
dval = ((epicsInt64 *)aao->bptr)[nowd];
|
dval = ((epicsInt64 *)aao->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
@ -239,7 +239,7 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
{
|
{
|
||||||
switch (aao->ftvl)
|
switch (aao->ftvl)
|
||||||
{
|
{
|
||||||
#ifdef DBF_INT64
|
#ifdef DBR_INT64
|
||||||
case DBF_INT64:
|
case DBF_INT64:
|
||||||
lval = ((epicsInt64 *)aao->bptr)[nowd];
|
lval = ((epicsInt64 *)aao->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
|
@ -70,10 +70,10 @@ static long readData(dbCommon *record, format_t *format)
|
|||||||
case DBF_FLOAT:
|
case DBF_FLOAT:
|
||||||
((epicsFloat32 *)wf->bptr)[wf->nord] = (epicsFloat32)lval;
|
((epicsFloat32 *)wf->bptr)[wf->nord] = (epicsFloat32)lval;
|
||||||
break;
|
break;
|
||||||
#ifdef DBF_INT64
|
#ifdef DBR_INT64
|
||||||
case DBF_INT64:
|
case DBF_INT64:
|
||||||
case DBF_UINT64:
|
case DBF_UINT64:
|
||||||
((epicsInt64 *)wf->bptr)[aao->nord] = (epicsInt64)lval;
|
((epicsInt64 *)wf->bptr)[wf->nord] = (epicsInt64)lval;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case DBF_LONG:
|
case DBF_LONG:
|
||||||
@ -168,7 +168,7 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
case DBF_FLOAT:
|
case DBF_FLOAT:
|
||||||
dval = ((epicsFloat32 *)wf->bptr)[nowd];
|
dval = ((epicsFloat32 *)wf->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
#ifdef DBF_INT64
|
#ifdef DBR_INT64
|
||||||
case DBF_INT64:
|
case DBF_INT64:
|
||||||
dval = ((epicsInt64 *)wf->bptr)[nowd];
|
dval = ((epicsInt64 *)wf->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
@ -211,7 +211,7 @@ static long writeData(dbCommon *record, format_t *format)
|
|||||||
{
|
{
|
||||||
switch (wf->ftvl)
|
switch (wf->ftvl)
|
||||||
{
|
{
|
||||||
#ifdef DBF_INT64
|
#ifdef DBR_INT64
|
||||||
case DBF_INT64:
|
case DBF_INT64:
|
||||||
lval = ((epicsInt64 *)wf->bptr)[nowd];
|
lval = ((epicsInt64 *)wf->bptr)[nowd];
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user