mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-12 01:20:14 +00:00
After GSP initialization is complete, retrieve the static configuration information from GSP-RM. This information includes GPU name, capabilities, memory configuration, and other properties. On some GPU variants, it is also required to do this for initialization to complete. Signed-off-by: Alistair Popple <apopple@nvidia.com> Co-developed-by: Joel Fernandes <joelagnelf@nvidia.com> Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com> Reviewed-by: Lyude Paul <lyude@redhat.com> [acourbot@nvidia.com: properly abstract the command's bindings, add relevant methods, make str_from_null_terminated return an Option, fix size of GPU name array.] Co-developed-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Message-ID: <20251114195552.739371-14-joelagnelf@nvidia.com>
17 lines
615 B
Rust
17 lines
615 B
Rust
// SPDX-License-Identifier: GPL-2.0
|
|
|
|
/// Converts a null-terminated byte slice to a string, or `None` if the array does not
|
|
/// contains any null byte or contains invalid characters.
|
|
///
|
|
/// Contrary to [`kernel::str::CStr::from_bytes_with_nul`], the null byte can be anywhere in the
|
|
/// slice, and not only in the last position.
|
|
pub(crate) fn str_from_null_terminated(bytes: &[u8]) -> Option<&str> {
|
|
use kernel::str::CStr;
|
|
|
|
bytes
|
|
.iter()
|
|
.position(|&b| b == 0)
|
|
.and_then(|null_pos| CStr::from_bytes_with_nul(&bytes[..=null_pos]).ok())
|
|
.and_then(|cstr| cstr.to_str().ok())
|
|
}
|