rust: core abstractions for network PHY drivers
authorFUJITA Tomonori <fujita.tomonori@gmail.com>
Wed, 13 Dec 2023 00:42:08 +0000 (09:42 +0900)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 Dec 2023 09:35:50 +0000 (09:35 +0000)
commitf20fd5449ada3872dcd67aca397f0e27ca2e8ad6
treece100e10c10a5cb53d0eabc8b07fe63601c893f8
parentf3c2caacee824ce4a331cdafb0b8dc8e987f105e
rust: core abstractions for network PHY drivers

This patch adds abstractions to implement network PHY drivers; the
driver registration and bindings for some of callback functions in
struct phy_driver and many genphy_ functions.

This feature is enabled with CONFIG_RUST_PHYLIB_ABSTRACTIONS=y.

This patch enables unstable const_maybe_uninit_zeroed feature for
kernel crate to enable unsafe code to handle a constant value with
uninitialized data. With the feature, the abstractions can initialize
a phy_driver structure with zero easily; instead of initializing all
the members by hand. It's supposed to be stable in the not so distant
future.

Link: https://github.com/rust-lang/rust/pull/116218
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/Kconfig
rust/bindings/bindings_helper.h
rust/kernel/lib.rs
rust/kernel/net.rs [new file with mode: 0644]
rust/kernel/net/phy.rs [new file with mode: 0644]