composefs_ioctls/lib.rs
1//! Low-level ioctl wrappers for composefs operations.
2//!
3//! This crate provides safe Rust wrappers around Linux ioctls used by composefs:
4//!
5//! - **fs-verity ioctls**: Enable and measure fs-verity on files
6//! - **Loop device ioctls**: Create loop devices (behind `loop-device` feature)
7//!
8//! # Safety
9//!
10//! All unsafe ioctl code is contained within this crate, allowing dependent
11//! crates to use `#![forbid(unsafe_code)]`.
12//!
13//! # Example
14//!
15//! ```ignore
16//! use composefs_ioctls::fsverity::{fs_ioc_enable_verity, fs_ioc_measure_verity};
17//!
18//! // Enable verity on a file
19//! fs_ioc_enable_verity(&file, 1, 4096)?; // SHA-256, 4K blocks
20//!
21//! // Measure the verity digest
22//! let digest: [u8; 32] = fs_ioc_measure_verity(&file, 1)?;
23//! ```
24
25#![deny(unsafe_code)]
26
27pub mod fsverity;
28pub mod mount;
29
30#[cfg(feature = "loop-device")]
31pub mod loop_device;
32
33#[cfg(test)]
34mod test_utils;
35
36// Re-export test utilities for use in other crates' tests
37#[doc(hidden)]
38pub mod test_utils_pub;