All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
	Steve French <smfrench@gmail.com>,
	lkml <linux-kernel@vger.kernel.org>
Subject: Re: kernel coding style for if ... else which cross #ifdef
Date: Sat, 24 May 2008 11:06:21 +0100	[thread overview]
Message-ID: <4837E89D.9040008@goop.org> (raw)
In-Reply-To: <20080524064201.GA4133@uranus.ravnborg.org>

Sam Ravnborg wrote:
> On Fri, May 23, 2008 at 10:42:58PM -0700, H. Peter Anvin wrote:
>   
>> Sam Ravnborg wrote:
>>     
>>>> *However*, the best would really be if we changed Kconfig to emit 
>>>> configuration constants what were 0/1 instead of undefined/defined. 
>>>> That way we could do:
>>>>
>>>> 	if (CONFIG_SOMETHING && foo) {
>>>> 		/* ... something ... */
>>>> 	} else if ((mode & S_IWUGO) == 0) {
>>>> 		/* ... */
>>>>         
>>> We could do that - but then it would need another
>>> name not to clash with all the places where we rely
>>> on CONFIG_FOO='n' => CONFIG_FOO is not defined.
>>>
>>> We could teach kconfig to emit something like:
>>> #define KFOO 0   (for the 'n' value)
>>> And 1 or 2 for the y and m values.
>>>
>>>       
>> I don't think we want to use "1 or 2"... I suspect we want to use the 
>> same booleans we currently have.
>>     
> I'm a bit dense (or I need more coffe - it's morning here).
> What "same booleans"?
>   

They should be plain 0/1 booleans.  For a bool/tristate option FOO, it 
would define:

Enabled y:

    #define CONFIG_FOO
    #define CFG_FOO   1
    #undef CONFIG_FOO_MODULE
    #define CFG_FOO_MODULE 0


Enabled m:

    #define CONFIG_FOO
    #define CFG_FOO   1
    #define CONFIG_FOO_MODULE
    #define CFG_FOO_MODULE 1


Disabled n:

    #undef CONFIG_FOO
    #define CFG_FOO   0
    #undef CONFIG_FOO_MODULE
    #define CFG_FOO_MODULE 0

Not sure what CFG_* should be for string/numeric options.  Probably "1" 
if the value is defined, "0" if not, with CONFIG_* being the actual 
value (so a CONFIG_ value of 0 is distinguishable from not defined).

    J

  reply	other threads:[~2008-05-24 10:07 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-23 19:11 kernel coding style for if ... else which cross #ifdef Steve French
2008-05-23 20:42 ` Willy Tarreau
2008-05-23 20:49   ` Adrian Bunk
2008-05-23 21:05     ` Willy Tarreau
2008-05-23 23:03 ` H. Peter Anvin
2008-05-24  5:43   ` Sam Ravnborg
2008-05-24  5:42     ` H. Peter Anvin
2008-05-24  6:42       ` Sam Ravnborg
2008-05-24 10:06         ` Jeremy Fitzhardinge [this message]
2008-05-24 10:49           ` Adrian Bunk
2008-05-24 11:27           ` Sam Ravnborg
2008-05-24 14:35             ` Jeremy Fitzhardinge
2008-05-24 14:39               ` Willy Tarreau
2008-05-24 14:41                 ` Jeremy Fitzhardinge
2008-05-24 14:46                   ` Willy Tarreau
2008-05-24 15:36               ` Sam Ravnborg
2008-05-24 15:45                 ` Jeremy Fitzhardinge
2008-05-24 15:57                   ` Vegard Nossum
2008-05-24 16:02                     ` Jeremy Fitzhardinge
2008-05-24 16:40                       ` Tom Spink
2008-05-24 16:42                         ` Tom Spink
2008-05-24 20:38                         ` Jeremy Fitzhardinge
2008-05-24 20:43                           ` H. Peter Anvin
2008-05-24 20:51                             ` Jeremy Fitzhardinge
2008-05-24 20:54                               ` H. Peter Anvin
2008-05-24 21:15                                 ` Jeremy Fitzhardinge
2008-05-25 23:57                                   ` Adrian Bunk
2008-05-26  0:27                                     ` H. Peter Anvin
2008-05-24 18:12                     ` H. Peter Anvin
2008-05-24 18:12                   ` H. Peter Anvin
2008-05-24 18:51                   ` Sam Ravnborg
2008-05-24 18:08         ` H. Peter Anvin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4837E89D.9040008@goop.org \
    --to=jeremy@goop.org \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sam@ravnborg.org \
    --cc=smfrench@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.