linux-mips
[Top] [All Lists]

Remove ifdefs from setup_arch()

To: "linux-mips@oss.sgi.com" <linux-mips@oss.sgi.com>
Subject: Remove ifdefs from setup_arch()
From: Gerald Champagne <gerald.champagne@esstech.com>
Date: Wed, 03 Oct 2001 14:11:26 -0500
Sender: owner-linux-mips@oss.sgi.com
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.3) Gecko/20010801

I have been modifying the linux kernel to support a custom hardware board of ours, and I'm trying to minimize additional changes and ifdefs in the kernel.
I noticed that the setup_arch function in arch/mips/kernel/setup.c has a new
ifdef for each board type that is supported, and it looks like this could be
simplified.  The code looks something like this:

-----------------
void __init setup_arch(char **cmdline_p)
{
        void boardname1_setup(void);
        void boardname1_setup(void);
        void boardname1_setup(void);

        ...

        switch (mips_machgroup)
        {
#ifdef CONFIG_BOARDNAME1
        case: MACH_GROUP_WHATEVER1:
                boardname1_setup();
                break;
#endif

#ifdef CONFIG_BOARDNAME2
        case: MACH_GROUP_WHATEVER2:
                boardname2_setup();
                break;
#endif

#ifdef CONFIG_BOARDNAME3
        case: MACH_GROUP_WHATEVER3:
                boardname3_setup();
                break;
#endif

        default:
                panic("Unsupported architecture");
        }
        ...
-----------------


For each configuration, only one case is compiled in.  Wouldn't it
be simpler to just give the board-specific setup function a common name
and consider it part of the board-specific api like all the other
board-specific functions.  Can this be changed to just this:

-----------------
void __init setup_arch(char **cmdline_p)
{
        void foo_setup(void);

        ...

        foo_setup();  /* someone pick a name for this */
        ...
-----------------

I'm trying to document an api for supporting an arbitrary board, and little
things like this make it more difficult to define something along the lines
of a bsp interface.  Any suggestions?  Any objections?

Thanks.

Gerald





<Prev in Thread] Current Thread [Next in Thread>