Re: CVS commit: src/sys/arch/evbmips
"Garrett D'Amore" <[email protected]>
| Newsgroups | gmane.os.netbsd.ports.evbmips |
|---|---|
| Message-ID | <[email protected]> |
Izumi Tsutsui wrote: > In article <[email protected]> > [email protected] wrote: > > >> We had this conversation before (Simon and I, that is). It isn't >> possible to have a GENERIC kernel. You *have* to select the board, >> because you cannot identify all board variants. >> > > Even so, I would still like to move board_info() into a common file > and it's better to have a sanity check if only one board is configured > (then we need #ifdefs like mips/include/cpu.h anyway), > We have a sanity check already -- the link will fail due to multiple symbol definitions. :-) The problem is that doing it the other way means I need to add a bunch of extern declarations (e.g. "extern struct board_info dbau1550_info") into the machdep code. To get it really right you need something like this: #ifdef ALCHEMY_DBAU1550 extern struct board_info dbau1550_info; #else ... #endif Then you also have in the code; #ifdef ALCHEMY_DBAU1550 return (&dbau1550_info); #else ... #endif I am generally *not* fond of #ifdef jungles, and your proposal creates two of them. The other problem with this is that I can imagine having a board defintion that actually supports a board *family* (where the type of board is run-time detectable via a register), and then what do you do? By having the board_info() function, you can return a different board_info based on a run-time test that you can't do with CPP macros alone. -- Garrett > >> The current set up is >> what we agreed to. >> > > ...but I won't strongly object to responsible people since > it's just my "feeling" ;-) > --- > Izumi Tsutsui > -- Garrett D'Amore, Principal Software Engineer Tadpole Computer / Computing Technologies Division, General Dynamics C4 Systems http://www.tadpolecomputer.com/ Phone: 951 325-2134 Fax: 951 325-2191