summaryrefslogtreecommitdiff
path: root/rust/helpers/refcount.c
diff options
context:
space:
mode:
authorGary Guo <gary@garyguo.net>2025-09-04 21:41:37 -0700
committerPeter Zijlstra <peterz@infradead.org>2025-09-15 09:38:35 +0200
commitbb38f35b35f9de0cebc4d62ea73482454e38cef3 (patch)
tree215a5213716338325853e173d21f1c7cd3d82c61 /rust/helpers/refcount.c
parentd9ea5a41cef80dc8103f4114b072b27364f2e06a (diff)
rust: implement `kernel::sync::Refcount`
This is a wrapping layer of `include/linux/refcount.h`. Currently the kernel refcount has already been used in `Arc`, however it calls into FFI directly. [boqun: Add the missing <> for the link in comment] Signed-off-by: Gary Guo <gary@garyguo.net> Signed-off-by: Boqun Feng <boqun.feng@gmail.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Alice Ryhl <aliceryhl@google.com> Reviewed-by: Boqun Feng <boqun.feng@gmail.com> Reviewed-by: Fiona Behrens <me@kloenk.dev> Reviewed-by: Benno Lossin <lossin@kernel.org> Reviewed-by: Elle Rhumsaa <elle@weathered-steel.dev> Link: https://lore.kernel.org/r/20250723233312.3304339-2-gary@kernel.org
Diffstat (limited to 'rust/helpers/refcount.c')
-rw-r--r--rust/helpers/refcount.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/rust/helpers/refcount.c b/rust/helpers/refcount.c
index d6adbd2e45a1..d175898ad7b8 100644
--- a/rust/helpers/refcount.c
+++ b/rust/helpers/refcount.c
@@ -7,11 +7,21 @@ refcount_t rust_helper_REFCOUNT_INIT(int n)
return (refcount_t)REFCOUNT_INIT(n);
}
+void rust_helper_refcount_set(refcount_t *r, int n)
+{
+ refcount_set(r, n);
+}
+
void rust_helper_refcount_inc(refcount_t *r)
{
refcount_inc(r);
}
+void rust_helper_refcount_dec(refcount_t *r)
+{
+ refcount_dec(r);
+}
+
bool rust_helper_refcount_dec_and_test(refcount_t *r)
{
return refcount_dec_and_test(r);