From: Wei Hou Date: Thu, 1 Jun 2023 18:07:07 +0000 (+0200) Subject: util/types: Move convert_ts to util/types X-Git-Tag: v2.5~71 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=7c784bca3ffe5cd437b8615b23fae3e870cb27a2;p=users%2Fsagi%2Fnvme-cli.git util/types: Move convert_ts to util/types The time stamp converting function can be reused by various plugins. Thus move it to the util section. Signed-off-by: Wei Hou Signed-off-by: Daniel Wagner --- diff --git a/plugins/ocp/ocp-nvme.c b/plugins/ocp/ocp-nvme.c index ad2cf847..edf75fc3 100644 --- a/plugins/ocp/ocp-nvme.c +++ b/plugins/ocp/ocp-nvme.c @@ -112,23 +112,6 @@ struct __packed feature_latency_monitor { __u8 reserved[4083]; }; -static int convert_ts(time_t time, char *ts_buf) -{ - struct tm gmTimeInfo; - time_t time_Human, time_ms; - char buf[80]; - - time_Human = time/1000; - time_ms = time % 1000; - - gmtime_r((const time_t *)&time_Human, &gmTimeInfo); - - strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", &gmTimeInfo); - sprintf(ts_buf, "%s.%03ld GMT", buf, time_ms); - - return 0; -} - static int ocp_print_C3_log_normal(struct nvme_dev *dev, struct ssd_latency_monitor_log *log_data) { diff --git a/plugins/wdc/wdc-nvme.c b/plugins/wdc/wdc-nvme.c index b4f3c939..6317baf4 100644 --- a/plugins/wdc/wdc-nvme.c +++ b/plugins/wdc/wdc-nvme.c @@ -4062,23 +4062,6 @@ static int wdc_print_log(struct wdc_ssd_perf_stats *perf, int fmt) return 0; } -static int wdc_convert_ts(time_t time, char *ts_buf) -{ - struct tm gmTimeInfo; - time_t time_Human, time_ms; - char buf[80]; - - time_Human = time/1000; - time_ms = time % 1000; - - gmtime_r((const time_t *)&time_Human, &gmTimeInfo); - - strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", &gmTimeInfo); - sprintf(ts_buf, "%s.%03ld GMT", buf, time_ms); - - return 0; -} - static int wdc_print_latency_monitor_log_normal(struct nvme_dev *dev, struct wdc_ssd_latency_monitor_log *log_data) { @@ -4130,7 +4113,7 @@ static int wdc_print_latency_monitor_log_normal(struct nvme_dev *dev, if (le64_to_cpu(log_data->active_latency_timestamp[i][j]) == -1) printf(" N/A "); else { - wdc_convert_ts(le64_to_cpu(log_data->active_latency_timestamp[i][j]), ts_buf); + convert_ts(le64_to_cpu(log_data->active_latency_timestamp[i][j]), ts_buf); printf("%s ", ts_buf); } } @@ -4157,7 +4140,7 @@ static int wdc_print_latency_monitor_log_normal(struct nvme_dev *dev, if (le64_to_cpu(log_data->static_latency_timestamp[i][j]) == -1) printf(" N/A "); else { - wdc_convert_ts(le64_to_cpu(log_data->static_latency_timestamp[i][j]), ts_buf); + convert_ts(le64_to_cpu(log_data->static_latency_timestamp[i][j]), ts_buf); printf("%s ", ts_buf); } } diff --git a/util/types.c b/util/types.c index 8899fd28..22782522 100644 --- a/util/types.c +++ b/util/types.c @@ -4,6 +4,7 @@ #include #include #include +#include #include @@ -151,3 +152,20 @@ const char *util_fw_to_string(char *c) ret[i] = '\0'; return ret; } + +int convert_ts(time_t time, char *ts_buf) +{ + struct tm time_info; + time_t time_human, time_ms; + char buf[80]; + + time_human = time / 1000; + time_ms = time % 1000; + + gmtime_r((const time_t *)&time_human, &time_info); + + strftime(buf, sizeof(buf), "%Y-%m-%dD|%H:%M:%S", &time_info); + sprintf(ts_buf, "%s:%03ld", buf, time_ms); + + return 0; +} diff --git a/util/types.h b/util/types.h index f7fe9fce..6bb67c51 100644 --- a/util/types.h +++ b/util/types.h @@ -34,4 +34,15 @@ char *uint128_t_to_si_string(nvme_uint128_t val, __u32 bytes_per_unit); const char *util_uuid_to_string(unsigned char uuid[NVME_UUID_LEN]); const char *util_fw_to_string(char *c); +/** + * @brief convert time_t format time to a human readable string + * + * @param time, input time_t time + * @param ts_buf, output time string + * @Note, time string format is "Y-M-D|H:M:S:MS" + * + * @return 0 success + */ +int convert_ts(time_t time, char *ts_buf); + #endif /* _MISC_H */