// SPDX-License-Identifier: GPL-2.0 //! The `kernel` prelude. //! //! These are the most common items used by Rust code in the kernel, //! intended to be imported by all Rust code, for convenience. //! //! # Examples //! //! ``` //! use kernel::prelude::*; //! ``` #[doc(no_inline)] pub use core::{ mem::{ align_of, align_of_val, size_of, size_of_val, // }, pin::Pin, // }; pub use ::ffi::{ c_char, c_int, c_long, c_longlong, c_schar, c_short, c_uchar, c_uint, c_ulong, c_ulonglong, c_ushort, c_void, CStr, // }; #[doc(no_inline)] pub use macros::{ export, fmt, kunit_tests, module, vtable, // }; pub use pin_init::{ init, pin_data, pin_init, pinned_drop, InPlaceWrite, Init, PinInit, Zeroable, // }; pub use super::{ alloc::{ flags::*, Box, KBox, KVBox, KVVec, KVec, VBox, VVec, Vec, // }, build_assert, build_error, const_assert, current, dev_alert, dev_crit, dev_dbg, dev_emerg, dev_err, dev_info, dev_notice, dev_warn, error::{ code::*, Error, Result, // }, init::InPlaceInit, pr_alert, pr_crit, pr_debug, pr_emerg, pr_err, pr_info, pr_notice, pr_warn, static_assert, str::CStrExt as _, try_init, try_pin_init, uaccess::UserPtr, ThisModule, // }; // `super::std_vendor` is hidden, which makes the macro inline for some reason. #[doc(no_inline)] pub use super::dbg;