99#include <toolchain.h>
1010#include <ksched.h>
1111#include <wait_q.h>
12+ #include <syscall_handler.h>
1213
1314static struct k_spinlock lock ;
1415
@@ -19,6 +20,15 @@ int z_impl_k_condvar_init(struct k_condvar *condvar)
1920 return 0 ;
2021}
2122
23+ #ifdef CONFIG_USERSPACE
24+ int z_vrfy_k_condvar_init (struct k_condvar * condvar )
25+ {
26+ Z_OOPS (Z_SYSCALL_OBJ_INIT (condvar , K_OBJ_CONDVAR ));
27+ return z_impl_k_condvar_init (condvar );
28+ }
29+ #include <syscalls/k_condvar_init_mrsh.c>
30+ #endif
31+
2232int z_impl_k_condvar_signal (struct k_condvar * condvar )
2333{
2434 k_spinlock_key_t key = k_spin_lock (& lock );
@@ -34,6 +44,15 @@ int z_impl_k_condvar_signal(struct k_condvar *condvar)
3444 return 0 ;
3545}
3646
47+ #ifdef CONFIG_USERSPACE
48+ int z_vrfy_k_condvar_signal (struct k_condvar * condvar )
49+ {
50+ Z_OOPS (Z_SYSCALL_OBJ (condvar , K_OBJ_CONDVAR ));
51+ return z_impl_k_condvar_signal (condvar );
52+ }
53+ #include <syscalls/k_condvar_signal_mrsh.c>
54+ #endif
55+
3756int z_impl_k_condvar_broadcast (struct k_condvar * condvar )
3857{
3958 struct k_thread * pending_thread ;
@@ -54,6 +73,14 @@ int z_impl_k_condvar_broadcast(struct k_condvar *condvar)
5473
5574 return woken ;
5675}
76+ #ifdef CONFIG_USERSPACE
77+ int z_vrfy_k_condvar_broadcast (struct k_condvar * condvar )
78+ {
79+ Z_OOPS (Z_SYSCALL_OBJ (condvar , K_OBJ_CONDVAR ));
80+ return z_impl_k_condvar_broadcast (condvar );
81+ }
82+ #include <syscalls/k_condvar_broadcast_mrsh.c>
83+ #endif
5784
5885int z_impl_k_condvar_wait (struct k_condvar * condvar , struct k_mutex * mutex ,
5986 k_timeout_t timeout )
@@ -69,3 +96,13 @@ int z_impl_k_condvar_wait(struct k_condvar *condvar, struct k_mutex *mutex,
6996
7097 return ret ;
7198}
99+ #ifdef CONFIG_USERSPACE
100+ int z_vrfy_k_condvar_wait (struct k_condvar * condvar , struct k_mutex * mutex ,
101+ k_timeout_t timeout )
102+ {
103+ Z_OOPS (Z_SYSCALL_OBJ (condvar , K_OBJ_CONDVAR ));
104+ Z_OOPS (Z_SYSCALL_OBJ (mutex , K_OBJ_MUTEX ));
105+ return z_impl_k_condvar_wait (condvar , mutex , timeout );
106+ }
107+ #include <syscalls/k_condvar_wait_mrsh.c>
108+ #endif
0 commit comments