/*
 * Copyright (c) 2018 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */
#include <kernel.h>
#include <errno.h>
#include <posix/time.h>
#include <posix/sys/types.h>

/**
 * @brief Get clock time specified by clock_id.
 *
 * See IEEE 1003.1
 */
int clock_gettime(clockid_t clock_id, struct timespec *ts)
{
	s64_t elapsed_msecs, elapsed_secs;
	s64_t elapsed_nsec, elapsed_cycles;

	if (clock_id != CLOCK_MONOTONIC) {
		errno = EINVAL;
		return -1;
	}

	elapsed_msecs = k_uptime_get();
	elapsed_secs = elapsed_msecs / MSEC_PER_SEC;

	elapsed_cycles = (s64_t) (k_cycle_get_32() %
				  sys_clock_hw_cycles_per_sec);
	elapsed_nsec = (s64_t) ((elapsed_cycles * NSEC_PER_SEC) /
				sys_clock_hw_cycles_per_sec);

	ts->tv_sec = (s32_t) elapsed_secs;
	ts->tv_nsec = (s32_t) elapsed_nsec;
	return 0;
}
