samples: add first Rust examples
The beginning of a set of Rust modules that showcase how Rust modules look like and how to use the abstracted kernel features. It also includes an example of a Rust host program with several modules. These samples also double as tests in the CI. Reviewed-by: Kees Cook <keescook@chromium.org> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Co-developed-by: Alex Gaynor <alex.gaynor@gmail.com> Signed-off-by: Alex Gaynor <alex.gaynor@gmail.com> Co-developed-by: Finn Behrens <me@kloenk.de> Signed-off-by: Finn Behrens <me@kloenk.de> Co-developed-by: Wedson Almeida Filho <wedsonaf@google.com> Signed-off-by: Wedson Almeida Filho <wedsonaf@google.com> Co-developed-by: Milan Landaverde <milan@mdaverde.com> Signed-off-by: Milan Landaverde <milan@mdaverde.com> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
single
|
||||
@@ -0,0 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
hostprogs-always-y := single
|
||||
|
||||
single-rust := y
|
||||
@@ -0,0 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
//! Rust single host program sample: module `a`.
|
||||
|
||||
pub(crate) fn f(x: i32) {
|
||||
println!("The number is {}.", x);
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
//! Rust single host program sample: module `b`.
|
||||
|
||||
pub(crate) const CONSTANT: i32 = 42;
|
||||
@@ -0,0 +1,12 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
//! Rust single host program sample.
|
||||
|
||||
mod a;
|
||||
mod b;
|
||||
|
||||
fn main() {
|
||||
println!("Hello world!");
|
||||
|
||||
a::f(b::CONSTANT);
|
||||
}
|
||||
Reference in New Issue
Block a user