On Sun Jul 27, 2025 at 6:48 PM JST, Rhys Lloyd wrote: > Separating the header allows the use of `size_of::<PmuLookupTableHeader>()` > instead of the magic number 4. > > Signed-off-by: Rhys Lloyd <krako...@gmail.com> > --- > drivers/gpu/nova-core/vbios.rs | 56 +++++++++++++++++++++------------- > 1 file changed, 35 insertions(+), 21 deletions(-) > > diff --git a/drivers/gpu/nova-core/vbios.rs b/drivers/gpu/nova-core/vbios.rs > index 5b5d9f38cbb3..a77d7a4c8595 100644 > --- a/drivers/gpu/nova-core/vbios.rs > +++ b/drivers/gpu/nova-core/vbios.rs > @@ -889,6 +889,32 @@ fn try_from(base: BiosImageBase) -> Result<Self> { > } > } > > +/// The [`PmuLookupTableHeader`] structure is header information for > [`PmuLookupTable`]. > +/// > +/// See the [`PmuLookupTable`] description for more information. > +#[expect(dead_code)] > +struct PmuLookupTableHeader { > + version: u8, > + header_len: u8, > + entry_len: u8, > + entry_count: u8, > +} > + > +impl PmuLookupTableHeader { > + fn new(data: &[u8]) -> Result<Self> { > + if data.len() < core::mem::size_of::<Self>() {
We cannot rely on `size_of::<Self>` to be 4 if `Self` is not `#[repr(C)]`. Since this is done in the second patch, I'd merge these two into a single one for simplicity.