aboutsummaryrefslogtreecommitdiff
path: root/rust/macros/module.rs
diff options
context:
space:
mode:
authorGravatar Gary Guo <gary@garyguo.net> 2022-11-10 17:41:19 +0100
committerGravatar Miguel Ojeda <ojeda@kernel.org> 2022-12-04 01:59:15 +0100
commitb13c9880f909ca5e406d9b3d061359fd8fb0c514 (patch)
tree9b59eb45b79a659a8ddc42e84ccbcd1c40e98c9b /rust/macros/module.rs
parentrust: macros: add `#[vtable]` proc macro (diff)
downloadlinux-b13c9880f909ca5e406d9b3d061359fd8fb0c514.tar.gz
linux-b13c9880f909ca5e406d9b3d061359fd8fb0c514.tar.bz2
linux-b13c9880f909ca5e406d9b3d061359fd8fb0c514.zip
rust: macros: take string literals in `module!`
Instead of taking binary string literals, take string ones instead, making it easier for users to define a module, i.e. instead of calling `module!` like: module! { ... name: b"rust_minimal", ... } now it is called as: module! { ... name: "rust_minimal", ... } Module names, aliases and license strings are restricted to ASCII only. However, the author and the description allows UTF-8. For simplicity (avoid parsing), escape sequences and raw string literals are not yet handled. Link: https://github.com/Rust-for-Linux/linux/issues/252 Link: https://lore.kernel.org/lkml/YukvvPOOu8uZl7+n@yadro.com/ Signed-off-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/macros/module.rs')
-rw-r--r--rust/macros/module.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/rust/macros/module.rs b/rust/macros/module.rs
index 186a5b8be23c..a7e363c2b044 100644
--- a/rust/macros/module.rs
+++ b/rust/macros/module.rs
@@ -108,11 +108,11 @@ impl ModuleInfo {
match key.as_str() {
"type" => info.type_ = expect_ident(it),
- "name" => info.name = expect_byte_string(it),
- "author" => info.author = Some(expect_byte_string(it)),
- "description" => info.description = Some(expect_byte_string(it)),
- "license" => info.license = expect_byte_string(it),
- "alias" => info.alias = Some(expect_byte_string(it)),
+ "name" => info.name = expect_string_ascii(it),
+ "author" => info.author = Some(expect_string(it)),
+ "description" => info.description = Some(expect_string(it)),
+ "license" => info.license = expect_string_ascii(it),
+ "alias" => info.alias = Some(expect_string_ascii(it)),
_ => panic!(
"Unknown key \"{}\". Valid keys are: {:?}.",
key, EXPECTED_KEYS