From 92f0f65d2c9cb7f344b383327be5aa3c6964a256 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
If the code uses the old db_access.h types (probably because it's calling +Channel Access APIs) then it will have to test against the EPICS version number +instead, like this:
+ +++#include <epicsVersion.h> + +#ifndef VERSION_INT +# define VERSION_INT(V,R,M,P) ( ((V)<<24) | ((R)<<16) | ((M)<<8) | (P)) +#endif +#ifndef EPICS_VERSION_INT +# define EPICS_VERSION_INT VERSION_INT(EPICS_VERSION, EPICS_REVISION, EPICS_MODIFICATION, EPICS_PATCH_LEVEL) +#endif + +#if EPICS_VERSION_INT >= VERSION_INT(3,16,1,0) + /* Code where Base has INT64 support */ +#else + /* Code for older versions */ +#endif +
Channel Access does not (and probably never will) directly support 64-bit integer types, so the new field types are presented to the CA server as DBF_DOUBLE values. This means that field values larger than 2^52