Skip to main content

Crate ax_kspin

Crate ax_kspin 

Source
Expand description

ax-kspin

Spinlocks used for kernel space that can disable preemption or IRQs in the critical section

Crates.io Docs.rs Rust License

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

Online documentation: docs.rs/ax-kspin

§Contributing

  1. Fork the repository and create a branch
  2. Run local format and checks
  3. Run local tests relevant to this crate
  4. Submit a PR and ensure CI passes

§License

Licensed under the Apache License, Version 2.0. See LICENSE for details.

Structs§

BaseSpinLock
A spin lock providing mutually exclusive access to data.
BaseSpinLockGuard
A guard that provides mutable data access.

Type Aliases§

SpinNoIrq
A spin lock that disables kernel preemption and local IRQs while trying to lock, and re-enables it after unlocking.
SpinNoIrqGuard
A guard that provides mutable data access for SpinNoIrq.
SpinNoPreempt
A spin lock that disables kernel preemption while trying to lock, and re-enables it after unlocking.
SpinNoPreemptGuard
A guard that provides mutable data access for SpinNoPreempt.
SpinRaw
A raw spin lock that does nothing while trying to lock.
SpinRawGuard
A guard that provides mutable data access for SpinRaw.