57 #if __cplusplus>=201103L    59 using auto_ptr = std::unique_ptr<T>;
    60 #define PTRMOVE(AUTO) std::move(AUTO)    63 #define PTRMOVE(AUTO) (AUTO)    73 #include  <epicsVersion.h>          74 #include  <epicsTypes.h>            75 #include  <epicsTime.h>             76 #include  <epicsMath.h>             77 #include  <epicsInterrupt.h>    78 #include  <epicsStdlib.h>    79 #include  <epicsThread.h>    86 #include  <menuYesNo.h>             96 #define MRF_NUM_EVENTS              256            97 #define MRF_EVENT_FIFO_SIZE         512            98 #define MRF_MAX_DATA_BUFFER        2048            99 #define MRF_FRAC_SYNTH_REF         24.0           100 #define MRF_DEF_CLOCK_SPEED       125.0           101 #define MRF_SN_BYTES                  6           102 #define MRF_SN_STRING_SIZE           18           103 #define MRF_DESCRIPTION_SIZE         80           109 #define MRF_EVENT_NULL             0x00   113 #define MRF_EVENT_TS_SHIFT_0       0x70   114 #define MRF_EVENT_TS_SHIFT_1       0x71   116 #define MRF_EVENT_HEARTBEAT        0x7A   118 #define MRF_EVENT_RST_PRESCALERS   0x7B   120 #define MRF_EVENT_TS_COUNTER_INC   0x7C   124 #define MRF_EVENT_TS_COUNTER_RST   0x7D   126 #define MRF_EVENT_END_OF_SEQUENCE  0x7F   131 #define ER_PROVIDER_PRIORITY 50   137 #define MRF_BUS_COMPACT_PCI           0           138 #define MRF_BUS_PMC                   1           139 #define MRF_BUS_VME                   2           146 #define MRF_CARD_TYPE_EVR             1           147 #define MRF_CARD_TYPE_EVG             2           154 #define MRF_SERIES_200       0x000000C8           155 #define MRF_SERIES_220       0x000000DC           156 #define MRF_SERIES_230       0x000000E6           167 #ifdef EVENT_CLOCK_FREQ   168     #define EVENT_CLOCK_DEFAULT    EVENT_CLOCK_FREQ        170     #define EVENT_CLOCK_DEFAULT    0.00                    190 #  if __cplusplus>=201103L   197 #  if __cplusplus>=201103L   198 #    define OVERRIDE override   204 template<
class Mutex>
   210     scopedLock(Mutex& 
mutex, 
bool lock=
true) : m(mutex), locked(lock)
   218     inline void lock(){
if (!locked) m.lock();locked=
true;}
   219     inline void unlock(){
if (locked) m.unlock();locked=
false;}
   221 #define SCOPED_LOCK2(m, name) scopedLock<epicsMutex> name(m)   222 #define SCOPED_LOCK(m) SCOPED_LOCK2(m, m##_guard)   229         :key(epicsInterruptLock())
   232     { epicsInterruptUnlock(key); }
   239     std::ostringstream strm;
   241     operator std::string()
 const { 
return strm.str(); }
   259 class epicsShareClass MRFVersion
   261     const epicsUInt16 m_major;
   262     const epicsInt8 m_minor;
   265     explicit MRFVersion(epicsUInt32 regval)
   266         :m_major(regval&0xffff) ,m_minor((regval>>16)&0xff)
   268     inline MRFVersion(
unsigned fw, 
unsigned rev, 
unsigned sub=0)
   269         :m_major((fw<<8)|rev), m_minor(sub)
   272     inline unsigned firmware()
 const { 
return m_major>>8; }
   273     inline unsigned revision()
 const { 
return m_major&0xff; }
   274     inline int subrelease()
 const { 
return m_minor; }
   276     int compare(
const MRFVersion& o) 
const;
   277     inline bool operator>(
const MRFVersion& o)
 const { 
return compare(o)==1; }
   278     inline bool operator<(
const MRFVersion& o)
 const { 
return compare(o)==-1; }
   279     inline bool operator==(
const MRFVersion& o)
 const { 
return compare(o)==0; }
   280     inline bool operator>=(
const MRFVersion& o)
 const { 
return compare(o)!=-1; }
   281     inline bool operator<=(
const MRFVersion& o)
 const { 
return compare(o)!=1; }
   283     std::string str() 
const;
   287 std::ostream& 
operator<<(std::ostream& strm, 
const MRFVersion& ver);
   291 template<
class C,
void (C::*Method)()>
   292 class epicsShareClass epicsThreadRunableMethod : 
public epicsThreadRunable
   296     explicit epicsThreadRunableMethod(C& o)
   299     virtual ~epicsThreadRunableMethod(){}
   317 #  define VERSION_INT(V,R,M,P) ( ((V)<<24) | ((R)<<16) | ((M)<<8) | (P))   318 #  define EPICS_VERSION_INT  VERSION_INT(EPICS_VERSION, EPICS_REVISION, EPICS_MODIFICATION, EPICS_PATCH_LEVEL)   326 #  define isfinite finite   333 epicsShareFunc epicsUInt32 
roundToUInt(
double val, epicsUInt32 maxresult=0xffffffff);
   335 epicsShareFunc 
char *
allocSNPrintf(
size_t N, 
const char *fmt, ...) EPICS_PRINTF_STYLE(2,3);
   347 #if (EPICS_VERSION_INT < VERSION_INT(3,15,0,2))   348 #if (__STDC_VERSION__ < 19990L) || (EPICS_VERSION_INT < VERSION_INT(3,14,9,0))   354 #  if __STDC_VERSION__ >= 1990L   355 #    include  <inttypes.h>   363 #  elif  LONG_MAX > 0x7fffffffL   373 #define M_stdlib        (527 <<16)    375 #define S_stdlib_noConversion (M_stdlib | 1)    376 #define S_stdlib_extraneous   (M_stdlib | 2)    377 #define S_stdlib_underflow    (M_stdlib | 3)    378 #define S_stdlib_overflow     (M_stdlib | 4)    379 #define S_stdlib_badBase      (M_stdlib | 5)  std::ostream & operator<<(std::ostream &strm, const MRFVersion &ver)
 
char * allocSNPrintf(size_t N, const char *fmt,...)
 
unsigned long long epicsUInt64
 
epicsShareFunc int epicsParseUInt32(const char *str, epicsUInt32 *to, int base, char **units)
 
epicsUInt32 roundToUInt(double val, epicsUInt32 max)