xref: /linux/rust/helpers/srcu.c (revision 91d5185187e97611e328d03ee5e00e54b5d6d2b0)
18f63d947SOnur Özkan // SPDX-License-Identifier: GPL-2.0
28f63d947SOnur Özkan 
38f63d947SOnur Özkan #include <linux/srcu.h>
48f63d947SOnur Özkan 
58f63d947SOnur Özkan __rust_helper int rust_helper_init_srcu_struct_with_key(struct srcu_struct *ssp,
68f63d947SOnur Özkan 							const char *name,
78f63d947SOnur Özkan 							struct lock_class_key *key)
88f63d947SOnur Özkan {
98f63d947SOnur Özkan 	return __init_srcu_struct(ssp, name, key);
108f63d947SOnur Özkan }
118f63d947SOnur Özkan 
12*91d51851SOnur Özkan __rust_helper bool rust_helper_srcu_readers_active(struct srcu_struct *ssp)
13*91d51851SOnur Özkan {
14*91d51851SOnur Özkan 	return srcu_readers_active(ssp);
15*91d51851SOnur Özkan }
16*91d51851SOnur Özkan 
178f63d947SOnur Özkan __rust_helper int rust_helper_srcu_read_lock(struct srcu_struct *ssp)
188f63d947SOnur Özkan {
198f63d947SOnur Özkan 	return srcu_read_lock(ssp);
208f63d947SOnur Özkan }
218f63d947SOnur Özkan 
228f63d947SOnur Özkan __rust_helper void rust_helper_srcu_read_unlock(struct srcu_struct *ssp, int idx)
238f63d947SOnur Özkan {
248f63d947SOnur Özkan 	srcu_read_unlock(ssp, idx);
258f63d947SOnur Özkan }
268f63d947SOnur Özkan 
278f63d947SOnur Özkan __rust_helper void rust_helper_srcu_barrier(struct srcu_struct *ssp)
288f63d947SOnur Özkan {
298f63d947SOnur Özkan 	srcu_barrier(ssp);
308f63d947SOnur Özkan }
318f63d947SOnur Özkan 
328f63d947SOnur Özkan __rust_helper void rust_helper_synchronize_srcu_expedited(struct srcu_struct *ssp)
338f63d947SOnur Özkan {
348f63d947SOnur Özkan 	synchronize_srcu_expedited(ssp);
358f63d947SOnur Özkan }
36