[Toybox] [TOY] lspci - no *alloc
Isaac
idunham at lavabit.com
Fri Jul 26 08:50:45 PDT 2013
On Fri, Jul 26, 2013 at 12:56:48PM +0200, Felix Janda wrote:
> Isaac wrote:
> > On Thu, Jul 25, 2013 at 10:31:47AM +0200, Felix Janda wrote:
> > > Isaac wrote:
> [...]
> > > > By the way, there are requests for more features (-v/-vv and text output)
> > > > that would mean slightly different approaches to getting data; (p)readat_name
> > > > would work in many of these cases, but text output means reading to toybuf
> > > > (which would clobber this), and I would also need to add more fields of varying sizes.
> > >
> > > Yeah, I guess I did some premature optimizations. But still the data read from the
> > > /sys files is of relatively small fixed size?
> >
> > If by "small" you mean "Probably smaller than toybuf" (see resource and config).
>
> Something one feels comfortable to put on the stack. If it fits into toybuf,
> that's also good.
>
> Just for the record: resource is 399 and config 256 bytes. (Extended config for pci
> express devices is 4096 bytes.)
>
Here resource is 4096 bytes.
> > > Instead of to toybuf one could also put the buffers on the stack freeing up toybuf
> > > for other purposes.
> > >
> > > For the text output the structure of the toy would change a lot if we want to
> > > avoid reparsing the pci id database for each device.
> > I honestly had not thought about that, but really, it is needed if we do that.
> >
> > Would it work if we save it to a linked list of structs and print at the end?
> > Would llist* work with that?
> > (I'm thinking about putting a pointer in GLOBALS.)
>
> That should work.
>
> > The structs would need char clname[128], devname[128].
> > Fortunately /usr/share/misc/pci.ids is sorted.
>
> Are the names in the pci database required to be less than 128 bytes long? (The longest
> name I found in my local database is 92 bytes.)
No hard requirement, but I'd think that a 2-line name should be
truncated somewhere.
Isaac Dunham
More information about the Toybox
mailing list