kernel: const-qualify objects used to calculate delay values
The internal API to measure time until a delay expires does not modify
the referenced timeout. Make the functions that call it take pointers
to const objects, so that they can be used with pointer to
const-qualified containers.
Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
diff --git a/include/kernel.h b/include/kernel.h
index b834cb6..b576cd0 100644
--- a/include/kernel.h
+++ b/include/kernel.h
@@ -556,10 +556,10 @@
* executes, in units of system ticks. If the thread is not waiting,
* it returns current system time.
*/
-__syscall k_ticks_t k_thread_timeout_expires_ticks(struct k_thread *t);
+__syscall k_ticks_t k_thread_timeout_expires_ticks(const struct k_thread *t);
static inline k_ticks_t z_impl_k_thread_timeout_expires_ticks(
- struct k_thread *t)
+ const struct k_thread *t)
{
return z_timeout_expires(&t->base.timeout);
}
@@ -571,10 +571,10 @@
* next executes, in units of system ticks. If the thread is not
* waiting, it returns zero.
*/
-__syscall k_ticks_t k_thread_timeout_remaining_ticks(struct k_thread *t);
+__syscall k_ticks_t k_thread_timeout_remaining_ticks(const struct k_thread *t);
static inline k_ticks_t z_impl_k_thread_timeout_remaining_ticks(
- struct k_thread *t)
+ const struct k_thread *t)
{
return z_timeout_remaining(&t->base.timeout);
}
@@ -1443,9 +1443,10 @@
* @param timer The timer object
* @return Uptime of expiration, in ticks
*/
-__syscall k_ticks_t k_timer_expires_ticks(struct k_timer *timer);
+__syscall k_ticks_t k_timer_expires_ticks(const struct k_timer *timer);
-static inline k_ticks_t z_impl_k_timer_expires_ticks(struct k_timer *timer)
+static inline k_ticks_t z_impl_k_timer_expires_ticks(
+ const struct k_timer *timer)
{
return z_timeout_expires(&timer->timeout);
}
@@ -1457,9 +1458,10 @@
* next expires, in units of system ticks. If the timer is not
* running, it returns zero.
*/
-__syscall k_ticks_t k_timer_remaining_ticks(struct k_timer *timer);
+__syscall k_ticks_t k_timer_remaining_ticks(const struct k_timer *timer);
-static inline k_ticks_t z_impl_k_timer_remaining_ticks(struct k_timer *timer)
+static inline k_ticks_t z_impl_k_timer_remaining_ticks(
+ const struct k_timer *timer)
{
return z_timeout_remaining(&timer->timeout);
}
@@ -2899,7 +2901,7 @@
* @return Uptime of execution (in ticks).
*/
static inline k_ticks_t k_delayed_work_expires_ticks(
- struct k_delayed_work *work)
+ const struct k_delayed_work *work)
{
return z_timeout_expires(&work->timeout);
}
@@ -2917,7 +2919,7 @@
* @return Remaining time (in ticks).
*/
static inline k_ticks_t k_delayed_work_remaining_ticks(
- struct k_delayed_work *work)
+ const struct k_delayed_work *work)
{
return z_timeout_remaining(&work->timeout);
}
@@ -2933,7 +2935,7 @@
*
* @return Remaining time (in milliseconds).
*/
-static inline int32_t k_delayed_work_remaining_get(struct k_delayed_work *work)
+static inline int32_t k_delayed_work_remaining_get(const struct k_delayed_work *work)
{
return k_ticks_to_ms_floor32(z_timeout_remaining(&work->timeout));
}
diff --git a/kernel/thread.c b/kernel/thread.c
index 022dbe3..47f3e41 100644
--- a/kernel/thread.c
+++ b/kernel/thread.c
@@ -1006,7 +1006,7 @@
#ifdef CONFIG_USERSPACE
static inline k_ticks_t z_vrfy_k_thread_timeout_remaining_ticks(
- struct k_thread *t)
+ const struct k_thread *t)
{
Z_OOPS(Z_SYSCALL_OBJ(t, K_OBJ_THREAD));
return z_impl_k_thread_timeout_remaining_ticks(t);
@@ -1014,7 +1014,7 @@
#include <syscalls/k_thread_timeout_remaining_ticks_mrsh.c>
static inline k_ticks_t z_vrfy_k_thread_timeout_expires_ticks(
- struct k_thread *t)
+ const struct k_thread *t)
{
Z_OOPS(Z_SYSCALL_OBJ(t, K_OBJ_THREAD));
return z_impl_k_thread_timeout_expires_ticks(t);
diff --git a/kernel/timer.c b/kernel/timer.c
index 18bf201..42e6b10 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -237,14 +237,16 @@
}
#include <syscalls/k_timer_status_sync_mrsh.c>
-static inline k_ticks_t z_vrfy_k_timer_remaining_ticks(struct k_timer *timer)
+static inline k_ticks_t z_vrfy_k_timer_remaining_ticks(
+ const struct k_timer *timer)
{
Z_OOPS(Z_SYSCALL_OBJ(timer, K_OBJ_TIMER));
return z_impl_k_timer_remaining_ticks(timer);
}
#include <syscalls/k_timer_remaining_ticks_mrsh.c>
-static inline k_ticks_t z_vrfy_k_timer_expires_ticks(struct k_timer *timer)
+static inline k_ticks_t z_vrfy_k_timer_expires_ticks(
+ const struct k_timer *timer)
{
Z_OOPS(Z_SYSCALL_OBJ(timer, K_OBJ_TIMER));
return z_impl_k_timer_expires_ticks(timer);