| // SPDX-License-Identifier: GPL-2.0 | |
| //! Synchronisation primitives. | |
| //! | |
| //! This module contains the kernel APIs related to synchronisation that have been ported or | |
| //! wrapped for usage by Rust code in the kernel. | |
| mod arc; | |
| pub mod aref; | |
| pub mod atomic; | |
| pub mod barrier; | |
| pub mod completion; | |
| mod condvar; | |
| pub mod lock; | |
| pub mod lockdep; | |
| mod locked_by; | |
| pub mod poll; | |
| pub mod rcu; | |
| mod refcount; | |
| mod set_once; | |
| pub mod srcu; | |
| pub use arc::{Arc, ArcBorrow, UniqueArc}; | |
| pub use completion::Completion; | |
| pub use condvar::{new_condvar, CondVar, CondVarTimeoutResult}; | |
| pub use lock::global::{global_lock, GlobalGuard, GlobalLock, GlobalLockBackend, GlobalLockedBy}; | |
| pub use lock::mutex::{new_mutex, Mutex, MutexGuard}; | |
| pub use lock::spinlock::{ | |
| new_spinlock, | |
| new_spinlock_irq, | |
| SpinLock, | |
| SpinLockGuard, | |
| SpinLockIrq, | |
| SpinLockIrqGuard, // | |
| }; | |
| pub use lockdep::{ | |
| static_lock_class, | |
| LockClassKey, // | |
| }; | |
| pub use locked_by::LockedBy; | |
| pub use refcount::Refcount; | |
| pub use set_once::SetOnce; | |
| pub use srcu::Srcu; |