kernel: add k_uptime_get() as a system call
Uses new infrastructure for system calls with a 64-bit return value. Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This commit is contained in:
parent
3ff41b9484
commit
a73d3737f1
2 changed files with 13 additions and 2 deletions
|
@ -1334,7 +1334,7 @@ static inline void *_impl_k_timer_user_data_get(struct k_timer *timer)
|
|||
*
|
||||
* @return Current uptime.
|
||||
*/
|
||||
extern s64_t k_uptime_get(void);
|
||||
__syscall s64_t k_uptime_get(void);
|
||||
|
||||
#ifdef CONFIG_TICKLESS_KERNEL
|
||||
/**
|
||||
|
|
|
@ -116,7 +116,7 @@ s64_t _tick_get(void)
|
|||
}
|
||||
FUNC_ALIAS(_tick_get, sys_tick_get, s64_t);
|
||||
|
||||
s64_t k_uptime_get(void)
|
||||
s64_t _impl_k_uptime_get(void)
|
||||
{
|
||||
#ifdef CONFIG_TICKLESS_KERNEL
|
||||
__ASSERT(_sys_clock_always_on,
|
||||
|
@ -125,6 +125,17 @@ s64_t k_uptime_get(void)
|
|||
return __ticks_to_ms(_tick_get());
|
||||
}
|
||||
|
||||
#ifdef CONFIG_USERSPACE
|
||||
_SYSCALL_HANDLER1(k_uptime_get, ret_p)
|
||||
{
|
||||
u64_t *ret = (u64_t *)ret_p;
|
||||
|
||||
_SYSCALL_MEMORY_WRITE(ret, sizeof(*ret));
|
||||
*ret = _impl_k_uptime_get();
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
*
|
||||
* @brief Return number of ticks since a reference time
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue