Hello, Danilo, On April 24, 2025, 8:08 p.m. UTC Danilo Krummrich wrote: > On Thu, Apr 24, 2025 at 02:54:42PM -0400, Joel Fernandes wrote: > > > > > > On 4/23/2025 10:06 AM, Danilo Krummrich wrote: > > [...] > > >> + > > >> + /// Probe for VBIOS extraction > > >> + /// Once the VBIOS object is built, bar0 is not read for vbios > > >> purposes anymore. > > >> + pub(crate) fn probe(bar0: &Devres<Bar0>) -> Result<Self> { > > > > > > Let's not call it probe(), what about VBios::parse(), or simply > > > VBios::new()? > > > > > > > Yes, new() is better. I changed it. > > > > >> + // VBIOS data vector: As BIOS images are scanned, they are > > >> added to this vector > > >> + // for reference or copying into other data structures. It is > > >> the entire > > >> + // scanned contents of the VBIOS which progressively extends. > > >> It is used > > >> + // so that we do not re-read any contents that are already read > > >> as we use > > >> + // the cumulative length read so far, and re-read any gaps as > > >> we extend > > >> + // the length > > >> + let mut data = KVec::new(); > > >> + > > >> + // Loop through all the BiosImage and extract relevant ones and > > >> relevant data from them > > >> + let mut cur_offset = 0; > > > > > > I suggest to create a new type that contains data and offset and implement > > > read_bios_image_at_offset() and friends as methods of this type. I think > > > this > > > would turn out much cleaner. > > I moved it into struct Vbios {} itself instead of introducing a new type. Is > > that Ok? > > > > I agree it is cleaner. Please see below link for this particular refactor > > (moving data) and let me know if it looks Ok to you: http://bit.ly/4lHfDKZ > > I still think a new type would be better, the Option<KVec<u8>> that is only > used > for the construction of the actual type instance is a bit weird. It's > basically > two types in one, which is also why you need two options -- better separate > them.
Ok, makes sense. Will make this change and see what it looks like. thanks, - Joel >