9
9
#include <toolchain.h>
10
10
#include <ksched.h>
11
11
#include <wait_q.h>
12
+ #include <syscall_handler.h>
12
13
13
14
static struct k_spinlock lock ;
14
15
@@ -19,6 +20,15 @@ int z_impl_k_condvar_init(struct k_condvar *condvar)
19
20
return 0 ;
20
21
}
21
22
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
+
22
32
int z_impl_k_condvar_signal (struct k_condvar * condvar )
23
33
{
24
34
k_spinlock_key_t key = k_spin_lock (& lock );
@@ -34,6 +44,15 @@ int z_impl_k_condvar_signal(struct k_condvar *condvar)
34
44
return 0 ;
35
45
}
36
46
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
+
37
56
int z_impl_k_condvar_broadcast (struct k_condvar * condvar )
38
57
{
39
58
struct k_thread * pending_thread ;
@@ -54,6 +73,14 @@ int z_impl_k_condvar_broadcast(struct k_condvar *condvar)
54
73
55
74
return woken ;
56
75
}
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
57
84
58
85
int z_impl_k_condvar_wait (struct k_condvar * condvar , struct k_mutex * mutex ,
59
86
k_timeout_t timeout )
@@ -69,3 +96,13 @@ int z_impl_k_condvar_wait(struct k_condvar *condvar, struct k_mutex *mutex,
69
96
70
97
return ret ;
71
98
}
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