From: Jeff Garzik <jeff@garzik.org>
To: ricknu-0@student.ltu.se
Cc: linux-kernel@vger.kernel.org, Andrew Morton <akpm@osdl.org>
Subject: Re: [RFC][PATCH] A generic boolean
Date: Wed, 19 Jul 2006 17:04:56 -0400 [thread overview]
Message-ID: <44BE9E78.3010409@garzik.org> (raw)
In-Reply-To: <1153341500.44be983ca1407@portal.student.luth.se>
ricknu-0@student.ltu.se wrote:
> A first step to a generic boolean-type. The patch just introduce the bool (in
Since gcc supports boolean types and can optimize for such, introducing
bool is IMO a good thing.
> -Why would we want it?
> -There is already some how are depending on a "boolean"-type (like NTFS). Also,
> it will clearify functions who returns a boolean from one returning a value, ex:
> bool it_is_ok();
> char it_is_ok();
> The first one is obvious what it is doing, the secound might return some sort of
> status.
A better reason is that there is intrinsic compiler support for booleans.
> -Why false and not FALSE, why not "enum {...} bool"
> -They are not #define(d) and shouldn't because it is a value, like 'a'. But
> because it is just a value, then bool is just a variable and should be able to
> handle 0 and 1 equally well.
>
> Well, this is _my_ opinion, it may be totally wrong. If so, please tell me ;)
> Yes, I know about Andrew's try to unify TRUE and FALSE, did read the thread with
> interest (that's from where I got to know about _Bool). But mostly (then still
> on the subject) was some people did not want FALSE and TRUE instead of 0 and 1.
> I look at it as: 'a' = 97, if someone like to write 97 instead of 'a', please do
> if you find it easier to read. I, on the other hand, think it is easier with
> 'a', false/FALSE, NULL, etc.
We should follow what C99 directs.
> diff --git a/include/asm-i386/types.h b/include/asm-i386/types.h
> index 4b4b295..e35709a 100644
> --- a/include/asm-i386/types.h
> +++ b/include/asm-i386/types.h
> @@ -10,6 +10,15 @@ typedef unsigned short umode_t;
> * header files exported to user space
> */
>
> +#if defined(__GNUC__) && __GNUC__ >= 3
> +typedef _Bool bool;
> +#else
> +#warning You compiler doesn't seem to support boolean types, will set 'bool' as
> an 'unsigned char'
> +typedef unsigned char bool;
> +#endif
> +
> +typedef bool u2;
NAK. gcc >= 3 is required by now, AFAIK.
Also, you don't want to force 'unsigned char' on code, because often
code prefers a machine integer to something smaller than a machine integer.
> diff --git a/include/linux/stddef.h b/include/linux/stddef.h
> index b3a2cad..5e5c611 100644
> --- a/include/linux/stddef.h
> +++ b/include/linux/stddef.h
> @@ -10,6 +10,8 @@ #else
> #define NULL ((void *)0)
> #endif
>
> +enum { false = 0, true = 1 } __attribute__((packed));
How is 'packed' attribute useful here?
Jeff
next prev parent reply other threads:[~2006-07-19 21:05 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-19 20:38 [RFC][PATCH] A generic boolean ricknu-0
2006-07-19 21:04 ` Jeff Garzik [this message]
2006-07-19 23:17 ` ricknu-0
2006-07-20 0:13 ` Jeff Garzik
2006-07-20 3:04 ` Vadim Lobanov
2006-07-20 3:53 ` Shorty Porty
2006-07-20 3:59 ` Dmitry Torokhov
2006-07-20 8:07 ` Jan Engelhardt
2006-08-04 14:03 ` Jes Sorensen
2006-08-04 14:42 ` Alan Cox
2006-08-04 14:35 ` Jes Sorensen
2006-08-04 15:51 ` Alan Cox
2006-08-04 15:58 ` Jes Sorensen
2006-08-04 16:00 ` Andreas Schwab
2006-08-04 16:08 ` Jes Sorensen
2006-08-04 16:16 ` Andreas Schwab
2006-08-04 16:26 ` Jes Sorensen
2006-08-04 16:57 ` Andreas Schwab
2006-08-04 18:47 ` Jes Sorensen
2006-08-04 18:51 ` H. Peter Anvin
2006-08-04 18:58 ` Jes Sorensen
2006-08-04 19:04 ` H. Peter Anvin
2006-08-06 9:25 ` Jan Engelhardt
2006-08-06 9:48 ` Andreas Schwab
2006-08-06 9:31 ` Jan Engelhardt
2006-08-06 15:31 ` Jes Sorensen
2006-08-04 16:30 ` Alan Cox
2006-08-04 16:20 ` Jes Sorensen
2006-07-19 21:20 ` Alexey Dobriyan
2006-07-19 22:47 ` ricknu-0
2006-07-19 23:52 ` Peter Williams
2006-07-20 0:08 ` ricknu-0
2006-07-20 8:09 ` Jan Engelhardt
2006-07-21 1:24 ` [RFC][PATCH] A generic boolean (version 2) ricknu-0
2006-07-21 1:34 ` Jeff Garzik
2006-07-21 8:55 ` Pekka Enberg
2006-07-21 21:14 ` Jeff Garzik
2006-07-25 19:04 ` Roman Kononov
2006-07-21 22:31 ` ricknu-0
2006-07-23 19:56 ` ricknu-0
2006-07-21 14:23 ` Jan Engelhardt
2006-07-21 18:27 ` Michael Buesch
2006-07-21 21:14 ` Jeff Garzik
2006-07-21 22:11 ` ricknu-0
2006-07-22 8:56 ` Jan Engelhardt
2006-07-21 23:08 ` [RFC][PATCH] A generic boolean (version 3) ricknu-0
2006-07-21 23:27 ` ricknu-0
2006-07-22 5:40 ` Stefan Richter
2006-07-22 17:08 ` ricknu-0
2006-07-22 18:08 ` Stefan Richter
2006-07-22 8:58 ` Jan Engelhardt
2006-07-22 17:19 ` ricknu-0
2006-07-22 9:55 ` Lars Gullik Bjønnes
2006-07-23 15:43 ` ricknu-0
2006-07-23 15:49 ` [RFC][PATCH] A generic boolean (version 4) ricknu-0
2006-07-23 16:08 ` Jan Engelhardt
2006-07-23 19:36 ` ricknu-0
2006-07-23 20:26 ` Jeff Garzik
2006-07-23 20:25 ` Jeff Garzik
2006-07-23 21:17 ` Jan Engelhardt
2006-07-23 21:44 ` Jeff Garzik
2006-07-24 8:55 ` Paul Jackson
2006-07-23 16:13 ` Michael Buesch
2006-07-23 19:46 ` ricknu-0
2006-07-23 20:24 ` Jeff Garzik
2006-07-23 21:13 ` Paul Jackson
2006-07-25 23:22 ` [RFC][PATCH] A generic boolean (version 5) ricknu-0
2006-07-26 0:42 ` Paul Jackson
2006-07-26 20:28 ` [RFC][PATCH] A generic boolean (version 6) ricknu-0
2006-07-27 1:06 ` Paul Jackson
2006-07-27 2:10 ` Josef Sipek
2006-07-27 3:51 ` ricknu-0
2006-07-27 4:40 ` Josef Sipek
2006-07-27 4:00 ` Paul Jackson
2006-07-27 3:30 ` ricknu-0
2006-07-28 16:57 ` Jan Engelhardt
2006-07-27 2:48 ` Arnd Bergmann
2006-07-27 3:22 ` ricknu-0
2006-07-27 5:27 ` Nicholas Miell
2006-07-27 6:51 ` Paul Jackson
2006-07-27 19:55 ` ricknu-0
2006-07-27 20:13 ` Nicholas Miell
2006-07-28 1:29 ` ricknu-0
2006-07-28 1:56 ` Nicholas Miell
2006-07-28 12:50 ` Alan Cox
2006-07-28 20:24 ` Lars Noschinski
2006-07-28 21:31 ` Nicholas Miell
2006-07-27 19:46 ` [RFC][PATCH] A generic boolean (version 7) ricknu-0
[not found] <6AqZX-3dU-29@gated-at.bofh.it>
[not found] ` <6Art3-45j-35@gated-at.bofh.it>
[not found] ` <6G8xj-W7-13@gated-at.bofh.it>
[not found] ` <6G8QL-1lI-35@gated-at.bofh.it>
[not found] ` <6G90s-1yo-55@gated-at.bofh.it>
[not found] ` <6G9Wm-30t-3@gated-at.bofh.it>
[not found] ` <6GafR-3o1-13@gated-at.bofh.it>
[not found] ` <6Gapq-3OH-15@gated-at.bofh.it>
[not found] ` <6Gapq-3OH-13@gated-at.bofh.it>
[not found] ` <6Gaz6-40T-21@gated-at.bofh.it>
[not found] ` <6GaIN-4dw-25@gated-at.bofh.it>
2006-08-04 20:51 ` [RFC][PATCH] A generic boolean Bodo Eggert
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=44BE9E78.3010409@garzik.org \
--to=jeff@garzik.org \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ricknu-0@student.ltu.se \
/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.