summaryrefslogtreecommitdiff
path: root/usr/src/cmd/fm/modules/common/eversholt/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/fm/modules/common/eversholt/eval.c')
-rw-r--r--usr/src/cmd/fm/modules/common/eversholt/eval.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/usr/src/cmd/fm/modules/common/eversholt/eval.c b/usr/src/cmd/fm/modules/common/eversholt/eval.c
index f7bd53227c..54b24f8513 100644
--- a/usr/src/cmd/fm/modules/common/eversholt/eval.c
+++ b/usr/src/cmd/fm/modules/common/eversholt/eval.c
@@ -649,6 +649,18 @@ eval_func(struct node *funcnp, struct lut *ex, struct node *events[],
serdvalp->v = (uintptr_t)stable(buf);
FREE(buf);
}
+ if (funcname == L_setserdsuffix &&
+ serdvalp->t == UINT64) {
+ int len = snprintf(NULL, 0, "%lld",
+ serdvalp->v);
+ char *buf = MALLOC(len + 1);
+
+ (void) snprintf(buf, len + 1, "%lld",
+ serdvalp->v);
+ serdvalp->t = STRING;
+ serdvalp->v = (uintptr_t)stable(buf);
+ FREE(buf);
+ }
if (serdvalp->t == UINT64)
out(O_ALTFP|O_VERB2, " (%llu)", serdvalp->v);