Expand description
ax-kspin
Spinlocks used for kernel space that can disable preemption or IRQs in the critical section
English | 中文
§Introduction
ax-kspin provides Spinlocks used for kernel space that can disable preemption or IRQs in the critical section. It is maintained as part of the TGOSKits component set and is intended for Rust projects that integrate with ArceOS, AxVisor, or related low-level systems software.
ax-kspin was derived from https://github.com/arceos-org/kspin
§Quick Start
§Installation
Add this crate to your Cargo.toml:
[dependencies]
ax-kspin = "0.3.1"§Run Check and Test
# Enter the crate directory
cd components/kspin
# Format code
cargo fmt --all
# Run clippy
cargo clippy --all-targets --all-features
# Run tests
cargo test --all-features
# Build documentation
cargo doc --no-deps§Integration
§Example
use ax_kspin as _;
fn main() {
// Integrate `ax-kspin` into your project here.
}§Documentation
Generate and view API documentation:
cargo doc --no-deps --openOnline documentation: docs.rs/ax-kspin
§Contributing
- Fork the repository and create a branch
- Run local format and checks
- Run local tests relevant to this crate
- Submit a PR and ensure CI passes
§License
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Structs§
- Base
Spin Lock - A spin lock providing mutually exclusive access to data.
- Base
Spin Lock Guard - A guard that provides mutable data access.
- Base
Spin RwLock - A spin-based read-write lock.
- Base
Spin RwLock Read Guard - A guard that provides shared data access.
- Base
Spin RwLock Write Guard - A guard that provides exclusive data access.
Functions§
- dump_
lockdep_ trace - Dumps the buffered phase-3 trace stream to the raw trace sink.
- set_
lockdep_ trace_ enabled - Enables or disables the phase-3 lock flow tracing path.
Type Aliases§
- Spin
NoIrq - A spin lock that disables kernel preemption and local IRQs while trying to lock, and re-enables it after unlocking.
- Spin
NoIrq Guard - A guard that provides mutable data access for
SpinNoIrq. - Spin
NoIrq RwLock - A spin read-write lock that disables kernel preemption and local IRQs while held.
- Spin
NoIrq RwLock Read Guard - A guard that provides shared data access for
SpinNoIrqRwLock. - Spin
NoIrq RwLock Write Guard - A guard that provides exclusive data access for
SpinNoIrqRwLock. - Spin
NoPreempt - A spin lock that disables kernel preemption while trying to lock, and re-enables it after unlocking.
- Spin
NoPreempt Guard - A guard that provides mutable data access for
SpinNoPreempt. - SpinRaw
- A raw spin lock that does nothing while trying to lock.
- Spin
RawGuard - A guard that provides mutable data access for
SpinRaw. - Spin
RawRw Lock - A raw spin read-write lock that does nothing while held.
- Spin
RawRw Lock Read Guard - A guard that provides shared data access for
SpinRawRwLock. - Spin
RawRw Lock Write Guard - A guard that provides exclusive data access for
SpinRawRwLock. - Spin
RwLock - A spin read-write lock with raw spin semantics.
- Spin
RwLock Read Guard - A guard that provides shared data access for
SpinRwLock. - Spin
RwLock Write Guard - A guard that provides exclusive data access for
SpinRwLock.