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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.