35 lines
611 B
C
35 lines
611 B
C
/*
|
|
* Copyright (c) 2016, Xilinx Inc. and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
/*
|
|
* @file linux/time.c
|
|
* @brief Linux libmetal time handling.
|
|
*/
|
|
|
|
#include <unistd.h>
|
|
#include <time.h>
|
|
#include <metal/time.h>
|
|
|
|
#define NS_PER_S (1000 * 1000 * 1000)
|
|
|
|
unsigned long long metal_get_timestamp(void)
|
|
{
|
|
unsigned long long t = 0;
|
|
struct timespec tp;
|
|
int r;
|
|
|
|
r = clock_gettime(CLOCK_MONOTONIC, &tp);
|
|
if (r == -1) {
|
|
metal_log(METAL_LOG_ERROR,"clock_gettime failed!\n");
|
|
return t;
|
|
} else {
|
|
t = tp.tv_sec * (NS_PER_S);
|
|
t += tp.tv_nsec;
|
|
}
|
|
return t;
|
|
}
|
|
|