xref: /linux/rust/helpers/srcu.c (revision 8f63d947bedfddefeb1c10f1dfc36f16407ce22c)
1*8f63d947SOnur Özkan // SPDX-License-Identifier: GPL-2.0
2*8f63d947SOnur Özkan 
3*8f63d947SOnur Özkan #include <linux/srcu.h>
4*8f63d947SOnur Özkan 
5*8f63d947SOnur Özkan __rust_helper int rust_helper_init_srcu_struct_with_key(struct srcu_struct *ssp,
6*8f63d947SOnur Özkan 							const char *name,
7*8f63d947SOnur Özkan 							struct lock_class_key *key)
8*8f63d947SOnur Özkan {
9*8f63d947SOnur Özkan 	return __init_srcu_struct(ssp, name, key);
10*8f63d947SOnur Özkan }
11*8f63d947SOnur Özkan 
12*8f63d947SOnur Özkan __rust_helper int rust_helper_srcu_read_lock(struct srcu_struct *ssp)
13*8f63d947SOnur Özkan {
14*8f63d947SOnur Özkan 	return srcu_read_lock(ssp);
15*8f63d947SOnur Özkan }
16*8f63d947SOnur Özkan 
17*8f63d947SOnur Özkan __rust_helper void rust_helper_srcu_read_unlock(struct srcu_struct *ssp, int idx)
18*8f63d947SOnur Özkan {
19*8f63d947SOnur Özkan 	srcu_read_unlock(ssp, idx);
20*8f63d947SOnur Özkan }
21*8f63d947SOnur Özkan 
22*8f63d947SOnur Özkan __rust_helper void rust_helper_srcu_barrier(struct srcu_struct *ssp)
23*8f63d947SOnur Özkan {
24*8f63d947SOnur Özkan 	srcu_barrier(ssp);
25*8f63d947SOnur Özkan }
26*8f63d947SOnur Özkan 
27*8f63d947SOnur Özkan __rust_helper void rust_helper_synchronize_srcu_expedited(struct srcu_struct *ssp)
28*8f63d947SOnur Özkan {
29*8f63d947SOnur Özkan 	synchronize_srcu_expedited(ssp);
30*8f63d947SOnur Özkan }
31