3 #include "tools/ToolsConfig.h"
4 #include "tools/epicsTimeHelper.h"
6 #ifdef CONVERSION_REQUIRED
13 #include <db_access.h>
15 inline void ULONGFromDisk(uint32_t &item)
16 { item = ntohl (item); }
18 inline void ULONGToDisk(uint32_t &item)
19 { item = htonl (item); }
21 inline void USHORTFromDisk(uint16_t &item)
22 { item = ntohs (item); }
24 inline void USHORTToDisk(uint16_t &item)
27 uint8_t *p = (uint8_t *)&big_endian;
33 inline void DoubleFromDisk(
double &d)
35 uint32_t cvrt_tmp = ntohl(((uint32_t *)&d)[0]);
36 ((uint32_t *)&d)[0] = ntohl(((uint32_t *)&d)[1]);
37 ((uint32_t *)&d)[1] = cvrt_tmp;
40 inline void DoubleToDisk(
double &d)
42 uint32_t cvrt_tmp = htonl(((uint32_t *)&d)[0]);
43 ((uint32_t *)&d)[0] = htonl(((uint32_t *)&d)[1]);
44 ((uint32_t *)&d)[1] = cvrt_tmp;
47 inline void FloatFromDisk(
float &d)
48 { *((uint32_t *)&d) = ntohl(*((uint32_t *)&d)); }
50 inline void FloatToDisk(
float &d)
51 { *((uint32_t *)&d) = htonl(*((uint32_t *)&d)); }
53 inline void epicsTimeStampFromDisk(epicsTimeStamp &ts)
55 ts.secPastEpoch = ntohl(ts.secPastEpoch);
56 ts.nsec = ntohl(ts.nsec);
59 inline void epicsTimeStampToDisk(epicsTimeStamp &ts)
61 ts.secPastEpoch = ntohl(ts.secPastEpoch);
62 ts.nsec = ntohl(ts.nsec);
65 #define SHORTFromDisk(s) USHORTFromDisk((uint16_t &)s)
66 #define SHORTToDisk(s) USHORTToDisk((uint16_t &)s)
67 #define LONGFromDisk(l) ULONGFromDisk((uint32_t &)l)
68 #define LONGToDisk(l) ULONGToDisk((uint32_t &)l)
72 #define ULONGFromDisk(s) {}
73 #define ULONGToDisk(i) {}
74 #define USHORTFromDisk(i) {}
75 #define USHORTToDisk(i) {}
76 #define DoubleFromDisk(i) {}
77 #define DoubleToDisk(i) {}
78 #define FloatFromDisk(i) {}
79 #define FloatToDisk(i) {}
80 #define epicsTimeStampFromDisk(i) {}
81 #define epicsTimeStampToDisk(i) {}
82 #define SHORTFromDisk(i) {}
83 #define SHORTToDisk(i) {}
84 #define LONGFromDisk(i) {}
85 #define LONGToDisk(i) {}
87 #endif // CONVERSION_REQUIRED
100 bool safeEpicsTimeStampFromDisk(epicsTimeStamp &stamp);
102 #define FileOffsetFromDisk ULONGFromDisk
103 #define FileOffsetToDisk ULONGToDisk