summaryrefslogtreecommitdiffstats
path: root/rust/kernel/error.rs
diff options
context:
space:
mode:
authorFinn Behrens <me@kloenk.dev>2022-11-10 17:41:20 +0100
committerMiguel Ojeda <ojeda@kernel.org>2022-12-04 01:59:15 +0100
commit4b0c68bd0d8b0e23ab1763d4a6632720dd3f1a83 (patch)
tree4b0fa83c8260c2352244abb7f72fd6d9a563a9a2 /rust/kernel/error.rs
parentrust: macros: take string literals in `module!` (diff)
downloadlinux-4b0c68bd0d8b0e23ab1763d4a6632720dd3f1a83.tar.xz
linux-4b0c68bd0d8b0e23ab1763d4a6632720dd3f1a83.zip
rust: error: declare errors using macro
Add a macro to declare errors, which simplifies the work needed to add each one, avoids repetition of the code and makes it easier to change the way they are declared. Signed-off-by: Finn Behrens <me@kloenk.dev> Reviewed-by: Gary Guo <gary@garyguo.net> [Reworded, adapted for upstream and applied latest changes] Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Diffstat (limited to 'rust/kernel/error.rs')
-rw-r--r--rust/kernel/error.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/rust/kernel/error.rs b/rust/kernel/error.rs
index 466b2a8fe569..b843f3445483 100644
--- a/rust/kernel/error.rs
+++ b/rust/kernel/error.rs
@@ -8,8 +8,16 @@ use alloc::collections::TryReserveError;
/// Contains the C-compatible error codes.
pub mod code {
- /// Out of memory.
- pub const ENOMEM: super::Error = super::Error(-(crate::bindings::ENOMEM as i32));
+ macro_rules! declare_err {
+ ($err:tt $(,)? $($doc:expr),+) => {
+ $(
+ #[doc = $doc]
+ )*
+ pub const $err: super::Error = super::Error(-(crate::bindings::$err as i32));
+ };
+ }
+
+ declare_err!(ENOMEM, "Out of memory.");
}
/// Generic integer kernel error.