On Fri, Jan 01, 2010 at 10:29:00AM +0000, Iain Hibbert wrote: > On Thu, 31 Dec 2009, Quentin Garnier wrote: > > > - I looked at the code the other day, and I don't see any reason to > > allocate a cfdata_t for each device_t. I'm fairly certain you can > > just use a static one common to all instances. I know all the other > > drivers do that, but that's just people copy-pasting code without > > really understanding it (I'm just as guilty as the others). > > I looked at that once also and came to the conclusion that while it would > probably work fine, it was better to allocate because the cfdata is not > specified as const in any documentation and indeed, config_attach_pseudo() > does modify it in certain cases which I didn't necessarily understand.. Of course it modifies it. If it's not a star instance, it has to keep track that it was found. If you look at the code, you'll see that a cfdata_t is only ever modified if it is not a star instance. How complex it might look, it's easy to understand: a cfdata_t is a line in the kernel configuration file, e.g. "driver* at bus? loc ? flags 0". Having said that, you might question the utility of a static instance for a pseudo-device, but maybe someone will have a use for that. -- Quentin Garnier - cube%cubidou.net@localhost - cube%NetBSD.org@localhost "See the look on my face from staying too long in one place [...] every time the morning breaks I know I'm closer to falling" KT Tunstall, Saving My Face, Drastic Fantastic, 2007.
Attachment:
pgp2ThhS1N9wT.pgp
Description: PGP signature