// When DebugFS is disabled, many parameters are dead. Linting for this isn't helpful.
#![cfg_attr(not(CONFIG_DEBUG_FS), allow(unused_variables))]
-use crate::fmt;
-use crate::prelude::*;
-use crate::str::CStr;
#[cfg(CONFIG_DEBUG_FS)]
use crate::sync::Arc;
-use crate::uaccess::UserSliceReader;
-use core::marker::PhantomData;
-use core::marker::PhantomPinned;
+use crate::{
+ fmt,
+ prelude::*,
+ str::CStr,
+ uaccess::UserSliceReader, //
+};
+
#[cfg(CONFIG_DEBUG_FS)]
use core::mem::ManuallyDrop;
-use core::ops::Deref;
+use core::{
+ marker::{
+ PhantomData,
+ PhantomPinned, //
+ },
+ ops::Deref,
+};
mod traits;
-pub use traits::{BinaryReader, BinaryReaderMut, BinaryWriter, Reader, Writer};
+pub use traits::{
+ BinaryReader,
+ BinaryReaderMut,
+ BinaryWriter,
+ Reader,
+ Writer, //
+};
mod callback_adapters;
-use callback_adapters::{FormatAdapter, NoWriter, WritableAdapter};
+use callback_adapters::{
+ FormatAdapter,
+ NoWriter,
+ WritableAdapter, //
+};
+
mod file_ops;
use file_ops::{
- BinaryReadFile, BinaryReadWriteFile, BinaryWriteFile, FileOps, ReadFile, ReadWriteFile,
- WriteFile,
+ BinaryReadFile,
+ BinaryReadWriteFile,
+ BinaryWriteFile,
+ FileOps,
+ ReadFile,
+ ReadWriteFile,
+ WriteFile, //
};
+
#[cfg(CONFIG_DEBUG_FS)]
mod entry;
#[cfg(CONFIG_DEBUG_FS)]
//! Adapters which allow the user to supply a write or read implementation as a value rather
//! than a trait implementation. If provided, it will override the trait implementation.
-use super::{Reader, Writer};
-use crate::fmt;
-use crate::prelude::*;
-use crate::uaccess::UserSliceReader;
-use core::marker::PhantomData;
-use core::ops::Deref;
+use super::{
+ Reader,
+ Writer, //
+};
+
+use crate::{
+ fmt,
+ prelude::*,
+ uaccess::UserSliceReader, //
+};
+
+use core::{
+ marker::PhantomData,
+ ops::Deref, //
+};
/// # Safety
///
// SPDX-License-Identifier: GPL-2.0
// Copyright (C) 2025 Google LLC.
-use crate::debugfs::file_ops::FileOps;
-use crate::ffi::c_void;
-use crate::str::{CStr, CStrExt as _};
-use crate::sync::Arc;
+use crate::{
+ debugfs::file_ops::FileOps,
+ prelude::*,
+ str::{
+ CStr,
+ CStrExt as _, //
+ },
+ sync::Arc,
+};
+
use core::marker::PhantomData;
/// Owning handle to a DebugFS entry.
// SPDX-License-Identifier: GPL-2.0
// Copyright (C) 2025 Google LLC.
-use super::{BinaryReader, BinaryWriter, Reader, Writer};
-use crate::debugfs::callback_adapters::Adapter;
-use crate::fmt;
-use crate::fs::file;
-use crate::prelude::*;
-use crate::seq_file::SeqFile;
-use crate::seq_print;
-use crate::uaccess::UserSlice;
+use super::{
+ BinaryReader,
+ BinaryWriter,
+ Reader,
+ Writer, //
+};
+
+use crate::{
+ debugfs::callback_adapters::Adapter,
+ fmt,
+ fs::file,
+ prelude::*,
+ seq_file::SeqFile,
+ seq_print,
+ uaccess::UserSlice, //
+};
+
use core::marker::PhantomData;
#[cfg(CONFIG_DEBUG_FS)]
//! Traits for rendering or updating values exported to DebugFS.
-use crate::alloc::Allocator;
-use crate::fmt;
-use crate::fs::file;
-use crate::prelude::*;
-use crate::sync::atomic::{Atomic, AtomicBasicOps, AtomicType, Relaxed};
-use crate::sync::Arc;
-use crate::sync::Mutex;
-use crate::transmute::{AsBytes, FromBytes};
-use crate::uaccess::{UserSliceReader, UserSliceWriter};
-use core::ops::{Deref, DerefMut};
-use core::str::FromStr;
+use crate::{
+ alloc::Allocator,
+ fmt,
+ fs::file,
+ prelude::*,
+ sync::{
+ atomic::{
+ Atomic,
+ AtomicBasicOps,
+ AtomicType,
+ Relaxed, //
+ },
+ Arc,
+ Mutex, //
+ },
+ transmute::{
+ AsBytes,
+ FromBytes, //
+ },
+ uaccess::{
+ UserSliceReader,
+ UserSliceWriter, //
+ },
+};
+
+use core::{
+ ops::{
+ Deref,
+ DerefMut, //
+ },
+ str::FromStr,
+};
/// A trait for types that can be written into a string.
///
//! ```
use core::str::FromStr;
-use kernel::c_str;
-use kernel::debugfs::{Dir, File};
-use kernel::new_mutex;
-use kernel::prelude::*;
-use kernel::sizes::*;
-use kernel::sync::aref::ARef;
-use kernel::sync::atomic::{Atomic, Relaxed};
-use kernel::sync::Mutex;
-use kernel::{acpi, device::Core, of, platform, str::CString};
+use kernel::{
+ acpi,
+ c_str,
+ debugfs::{
+ Dir,
+ File, //
+ },
+ device::Core,
+ new_mutex,
+ of,
+ platform,
+ prelude::*,
+ sizes::*,
+ str::CString,
+ sync::{
+ aref::ARef,
+ atomic::{
+ Atomic,
+ Relaxed, //
+ },
+ Mutex,
+ }, //
+};
kernel::module_platform_driver! {
type: RustDebugFs,
//! `Scope::dir` to create a variety of files without the need to separately
//! track them all.
-use kernel::debugfs::{Dir, Scope};
-use kernel::prelude::*;
-use kernel::sizes::*;
-use kernel::sync::atomic::Atomic;
-use kernel::sync::Mutex;
-use kernel::{c_str, new_mutex, str::CString};
+use kernel::{
+ c_str,
+ debugfs::{
+ Dir,
+ Scope, //
+ },
+ new_mutex,
+ prelude::*,
+ sizes::*,
+ str::CString,
+ sync::{
+ atomic::Atomic,
+ Mutex, //
+ },
+};
module! {
type: RustScopedDebugFs,