Since the field defined by the NVMe timestamp feature.
Signed-off-by: Tokunori Ikegami <ikegami.t@gmail.com>
#include "util/mem.h"
#include "util/argconfig.h"
#include "util/cleanup.h"
+#include "util/types.h"
enum nvme_print_flags {
NORMAL = 0,
void d(unsigned char *buf, int len, int width, int group);
void d_raw(unsigned char *buf, unsigned len);
-uint64_t int48_to_long(uint8_t *data);
int get_reg_size(int offset);
bool nvme_is_ctrl_reg(int offset);
*
* Authors: karl.dedow@solidigm.com
*/
+#include <libnvme.h>
#include "common.h"
#include "linux/types.h"
__u8 entry_length;
__le16 reserved1;
__le16 activation_count;
- __le64 timestamp;
+ struct nvme_timestamp ts;
__le64 reserved2;
__le64 power_cycle_count;
char previous_fw[8];
json_object_add_value_uint(entry_obj, "activation count",
le16_to_cpu(entry->activation_count));
json_object_add_value_uint64(entry_obj, "timestamp",
- (0x0000FFFFFFFFFFFF & le64_to_cpu(entry->timestamp)));
+ int48_to_long(entry->ts.timestamp));
json_object_add_value_uint(entry_obj, "power cycle count",
le64_to_cpu(entry->power_cycle_count));
printf(" %-22s%d\n", "entry length:", entry->entry_length);
printf(" %-22s%d\n", "activation count:",
le16_to_cpu(entry->activation_count));
- printf(" %-22s%"PRIu64"\n", "timestamp:",
- (0x0000FFFFFFFFFFFF & le64_to_cpu(entry->timestamp)));
+ printf(" %-22s%"PRIu64"\n", "timestamp:", int48_to_long(entry->ts.timestamp));
printf(" %-22s%"PRIu64"\n", "power cycle count:",
le64_to_cpu(entry->power_cycle_count));
printf(" %-22s%.*s\n", "previous firmware:", (int)sizeof(entry->previous_fw),
return result;
}
-uint64_t int48_to_long(__u8 *data)
+uint64_t int48_to_long(const __u8 *data)
{
int i;
uint64_t result = 0;
nvme_uint128_t le128_to_cpu(__u8 *data);
long double int128_to_double(__u8 *data);
-uint64_t int48_to_long(__u8 *data);
+uint64_t int48_to_long(const __u8 *data);
char *uint128_t_to_string(nvme_uint128_t val);
char *uint128_t_to_l10n_string(nvme_uint128_t val);