Print this page
codereview and testing fixes.
6558 kstat: desire type for timestamps
*** 20,29 ****
--- 20,30 ----
*/
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Copyright 2013 David Hoeppner. All rights reserved.
* Copyright 2013 Nexenta Systems, Inc. All rights reserved.
+ * Copyright 2016 Garrett D'Amore
*/
#ifndef _STAT_KSTAT_H
#define _STAT_KSTAT_H
*** 44,55 ****
#include <sys/simmstat.h>
#include <sys/sysctrl.h>
#include <sys/fhc.h>
#endif
- #define KSTAT_DATA_HRTIME (KSTAT_DATA_STRING + 1)
-
typedef union ks_value {
char c[16];
int32_t i32;
uint32_t ui32;
struct {
--- 45,54 ----
*** 60,76 ****
--- 59,80 ----
uint32_t len;
} str;
int64_t i64;
uint64_t ui64;
+ hrtime_t t;
} ks_value_t;
#define SAVE_HRTIME(I, S, N) \
{ \
ks_value_t v; \
v.ui64 = S->N; \
+ if (g_hrtime_fmt == KS_HRFMT_DEFAULT) { \
nvpair_insert(I, #N, &v, KSTAT_DATA_UINT64); \
+ } else { \
+ nvpair_insert(I, #N, &v, KSTAT_DATA_TIME); \
+ } \
}
#define SAVE_INT32(I, S, N) \
{ \
ks_value_t v; \
*** 113,123 ****
#define SAVE_HRTIME_X(I, N, V) \
{ \
ks_value_t v; \
v.ui64 = V; \
! nvpair_insert(I, N, &v, KSTAT_DATA_HRTIME); \
}
#define SAVE_INT32_X(I, N, V) \
{ \
ks_value_t v; \
--- 117,127 ----
#define SAVE_HRTIME_X(I, N, V) \
{ \
ks_value_t v; \
v.ui64 = V; \
! nvpair_insert(I, N, &v, KSTAT_DATA_TIME); \
}
#define SAVE_INT32_X(I, N, V) \
{ \
ks_value_t v; \
*** 168,177 ****
--- 172,189 ----
#define KS_DFMT "\t%-30s "
#define KS_JFMT "\t\t\"%s\": "
#define KS_PFMT "%s:%d:%s:%s"
+ #define KS_HRFMT_DEFAULT 'o'
+ #define KS_HRFMT_BOOT 'b'
+ #define KS_HRFMT_UNIX 'u'
+ #define KS_HRFMT_DATE 'd'
+ #define KS_HRFMT_NANO 'n'
+ #define KS_HRFMT_ISO 'I'
+ #define KS_HRFMT_ZISO 'Z'
+
typedef struct ks_instance {
list_node_t ks_next;
char ks_name[KSTAT_STRLEN];
char ks_module[KSTAT_STRLEN];
char ks_class[KSTAT_STRLEN];