UTAG uint64

This commit is contained in:
Michael Davidsaver
2020-12-02 13:57:40 -08:00
parent 1ceb26eeb8
commit b94afaa045
12 changed files with 25 additions and 20 deletions
+8 -4
View File
@@ -390,18 +390,22 @@ static void getOptions(DBADDR *paddr, char **poriginal, long *options,
}
if( (*options) & DBR_TIME ) {
epicsUInt32 *ptime = (epicsUInt32 *)pbuffer;
epicsUInt64 *ptime64;
if (!pfl) {
*ptime++ = pcommon->time.secPastEpoch;
*ptime++ = pcommon->time.nsec;
*ptime++ = pcommon->utag;
} else {
*ptime++ = pfl->time.secPastEpoch;
*ptime++ = pfl->time.nsec;
*ptime++ = pfl->utag;
}
*ptime++ = 0; /* padding */
pbuffer = (char *)ptime;
ptime64 = (epicsUInt64*)ptime;
if (!pfl || pfl->type == dbfl_type_rec) {
*ptime64++ = pcommon->utag;
} else {
*ptime64++ = pfl->utag;
}
pbuffer = (char *)ptime64;
}
if( (*options) & DBR_ENUM_STRS )
get_enum_strs(paddr, &pbuffer, prset, options);
+1 -2
View File
@@ -114,8 +114,7 @@ DBCORE_API extern int dbAccessDebugPUTF;
* maintain 8-byte alignment. */
#define DBRtime \
epicsTimeStamp time; /* time stamp*/\
epicsInt32 utag;\
epicsInt32 padTime;
epicsUTag utag;
#define DBRenumStrs \
epicsUInt32 no_str; /* number of strings*/\
epicsInt32 padenumStrs; /*padding to force 8 byte align*/\
+1 -1
View File
@@ -524,7 +524,7 @@ field which is then used to acquire a timestamp.
interest(2)
extra("epicsTimeStamp time")
}
field(UTAG,DBF_LONG) {
field(UTAG,DBF_UINT64) {
prompt("Time Tag")
special(SPC_NOMOD)
interest(3)
+1 -1
View File
@@ -359,7 +359,7 @@ static long dbDbGetAlarm(const struct link *plink, epicsEnum16 *status,
return dbDbGetAlarmMsg(plink, status, severity, NULL, 0u);
}
static long dbDbGetTimeStampTag(const struct link *plink, epicsTimeStamp *pstamp, epicsInt32 *ptag)
static long dbDbGetTimeStampTag(const struct link *plink, epicsTimeStamp *pstamp, epicsUTag *ptag)
{
dbChannel *chan = linkChannel(plink);
dbCommon *precord = dbChannelRecord(chan);
+1 -1
View File
@@ -427,7 +427,7 @@ long dbGetTimeStamp(const struct link *plink, epicsTimeStamp *pstamp)
}
long dbGetTimeStampTag(const struct link *plink,
epicsTimeStamp *pstamp, epicsInt32 *ptag)
epicsTimeStamp *pstamp, epicsUTag *ptag)
{
lset *plset = plink->lset;
+2 -2
View File
@@ -385,7 +385,7 @@ typedef struct lset {
*
* @since Added after UNRELEASED
*/
long (*getTimeStampTag)(const struct link *plink, epicsTimeStamp *pstamp, epicsInt32 *ptag);
long (*getTimeStampTag)(const struct link *plink, epicsTimeStamp *pstamp, epicsUTag *ptag);
} lset;
#define dbGetSevr(link, sevr) \
@@ -439,7 +439,7 @@ DBCORE_API long dbGetTimeStamp(const struct link *plink,
epicsTimeStamp *pstamp);
/** @since UNRELEASED */
DBCORE_API long dbGetTimeStampTag(const struct link *plink,
epicsTimeStamp *pstamp, epicsInt32 *ptag);
epicsTimeStamp *pstamp, epicsUTag *ptag);
#define dbGetTimeStampTag(LINK, STAMP, TAG) dbGetTimeStampTag(LINK, STAMP, TAG)
DBCORE_API long dbPutLink(struct link *plink, short dbrType,
const void *pbuffer, long nRequest);
+1 -1
View File
@@ -113,7 +113,7 @@ typedef struct db_field_log {
unsigned char mask; /* DBE_* mask */
/* the following are used for value and reference types */
epicsTimeStamp time; /* Time stamp */
epicsInt32 utag;
epicsUTag utag;
unsigned short stat; /* Alarm Status */
unsigned short sevr; /* Alarm Severity */
char amsg[40];
+1 -1
View File
@@ -47,7 +47,7 @@ static int parse_ok(void *raw)
static db_field_log* filter(void* raw, dbChannel *chan, db_field_log *pfl)
{
utagPvt *pvt = (utagPvt*)raw;
epicsInt32 utag = pfl->type==dbfl_type_rec ? dbChannelRecord(chan)->utag : pfl->utag;
epicsUTag utag = pfl->type==dbfl_type_rec ? dbChannelRecord(chan)->utag : pfl->utag;
int drop = (utag&pvt->mask)!=pvt->value;
if(pfl->ctx!=dbfl_context_event || pfl->mask&DBE_PROPERTY) {
+3 -3
View File
@@ -67,7 +67,7 @@ typedef struct calc_link {
struct link out;
double arg[CALCPERFORM_NARGS];
epicsTimeStamp time;
epicsInt32 utag;
epicsUTag utag;
double val;
} calc_link;
@@ -535,7 +535,7 @@ static long lnkCalc_getElements(const struct link *plink, long *nelements)
struct lcvt {
double *pval;
epicsTimeStamp *ptime;
epicsInt32 *ptag;
epicsUTag *ptag;
};
static long readLocked(struct link *pinp, void *vvt)
@@ -754,7 +754,7 @@ static long lnkCalc_getAlarm(const struct link *plink, epicsEnum16 *status,
return lnkCalc_getAlarmMsg(plink, status, severity, NULL, 0u);
}
static long lnkCalc_getTimestampTag(const struct link *plink, epicsTimeStamp *pstamp, epicsInt32 *ptag)
static long lnkCalc_getTimestampTag(const struct link *plink, epicsTimeStamp *pstamp, epicsUTag *ptag)
{
calc_link *clink = CONTAINER(plink->value.json.jlink,
struct calc_link, jlink);