diff options
Diffstat (limited to 'rust/kernel/lib.rs')
| -rw-r--r-- | rust/kernel/lib.rs | 15 | 
1 files changed, 9 insertions, 6 deletions
| diff --git a/rust/kernel/lib.rs b/rust/kernel/lib.rs index be68d5e567b1..fbd91a48ff8b 100644 --- a/rust/kernel/lib.rs +++ b/rust/kernel/lib.rs @@ -12,11 +12,9 @@  //! do so first instead of bypassing this crate.  #![no_std] -#![feature(allocator_api)]  #![feature(coerce_unsized)]  #![feature(dispatch_from_dyn)]  #![feature(new_uninit)] -#![feature(offset_of)]  #![feature(receiver_trait)]  #![feature(unsize)] @@ -28,9 +26,7 @@ compile_error!("Missing kernel configuration for conditional compilation");  // Allow proc-macros to refer to `::kernel` inside the `kernel` crate (this crate).  extern crate self as kernel; -#[cfg(not(test))] -#[cfg(not(testlib))] -mod allocator; +pub mod alloc;  mod build_assert;  pub mod error;  pub mod init; @@ -65,7 +61,7 @@ const __LOG_PREFIX: &[u8] = b"rust_kernel\0";  /// The top level entrypoint to implementing a kernel module.  ///  /// For any teardown or cleanup operations, your type may implement [`Drop`]. -pub trait Module: Sized + Sync { +pub trait Module: Sized + Sync + Send {      /// Called at module initialization time.      ///      /// Use this method to perform whatever setup or registration your module @@ -92,6 +88,13 @@ impl ThisModule {      pub const unsafe fn from_ptr(ptr: *mut bindings::module) -> ThisModule {          ThisModule(ptr)      } + +    /// Access the raw pointer for this module. +    /// +    /// It is up to the user to use it correctly. +    pub const fn as_ptr(&self) -> *mut bindings::module { +        self.0 +    }  }  #[cfg(not(any(testlib, test)))] |