mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
The core library's `From` implementations do not cover conversions that are not portable or future-proof. For instance, even though it is safe today, `From<usize>` is not implemented for `u64` because of the possibility to support larger-than-64bit architectures in the future. However, the kernel supports a narrower set of architectures, and in the case of Nova we only support 64-bit. This makes it helpful and desirable to provide more infallible conversions, lest we need to rely on the `as` keyword and carry the risk of silently losing data. Thus, introduce a new module `num` that provides safe const functions performing more conversions allowed by the build target, as well as `FromSafeCast` and `IntoSafeCast` traits that are just extensions of `From` and `Into` to conversions that are known to be lossless. Suggested-by: Danilo Krummrich <dakr@kernel.org> Link: https://lore.kernel.org/rust-for-linux/DDK4KADWJHMG.1FUPL3SDR26XF@kernel.org/ Acked-by: Danilo Krummrich <dakr@kernel.org> [acourbot@nvidia.com: fix merge conflicts after rebase.] Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Message-ID: <20251029-nova-as-v3-4-6a30c7333ad9@nvidia.com>
32 lines
554 B
Rust
32 lines
554 B
Rust
// SPDX-License-Identifier: GPL-2.0
|
|
|
|
//! Nova Core GPU Driver
|
|
|
|
#[macro_use]
|
|
mod bitfield;
|
|
|
|
mod dma;
|
|
mod driver;
|
|
mod falcon;
|
|
mod fb;
|
|
mod firmware;
|
|
mod gfw;
|
|
mod gpu;
|
|
mod gsp;
|
|
mod num;
|
|
mod regs;
|
|
mod vbios;
|
|
|
|
pub(crate) const MODULE_NAME: &kernel::str::CStr = <LocalModule as kernel::ModuleMetadata>::NAME;
|
|
|
|
kernel::module_pci_driver! {
|
|
type: driver::NovaCore,
|
|
name: "NovaCore",
|
|
authors: ["Danilo Krummrich"],
|
|
description: "Nova Core GPU driver",
|
|
license: "GPL v2",
|
|
firmware: [],
|
|
}
|
|
|
|
kernel::module_firmware!(firmware::ModInfoBuilder);
|