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.
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
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.