]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
util/types: Move convert_ts to util/types
authorWei Hou <wei.hou@scaleflux.com>
Thu, 1 Jun 2023 18:07:07 +0000 (20:07 +0200)
committerDaniel Wagner <wagi@monom.org>
Fri, 2 Jun 2023 11:45:51 +0000 (13:45 +0200)
The time stamp converting function can be reused by various plugins.
Thus move it to the util section.

Signed-off-by: Wei Hou <wei.hou@scaleflux.com>
Signed-off-by: Daniel Wagner <dwagner@suse.de>
plugins/ocp/ocp-nvme.c
plugins/wdc/wdc-nvme.c
util/types.c
util/types.h

index ad2cf847d6202f2bd0d27077b60376e848bc68f8..edf75fc34f0d5debc37825f8df843176a40ac17c 100644 (file)
@@ -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)
 {
index b4f3c939aade893dd290e4e54e82e5e17c52fcf4..6317baf4fb380a4996a84f3b881bd155424d9320 100644 (file)
@@ -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);
                    }
                }
index 8899fd281da8707678714ab778b479e68aaf8cd0..2278252255545690bced47f730b59683d8425045 100644 (file)
@@ -4,6 +4,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <locale.h>
+#include <time.h>
 
 #include <ccan/endian/endian.h>
 
@@ -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;
+}
index f7fe9fce7fd308e357616d8381a9cbec023be4aa..6bb67c513188e54cd926e667fd8fc5a32ce3cd09 100644 (file)
@@ -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 */