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 20:13:22 -0400 [thread overview]
Message-ID: <44BECAA2.6010402@garzik.org> (raw)
In-Reply-To: <1153351042.44bebd82356a4@portal.student.luth.se>
ricknu-0@student.ltu.se wrote:
> Citerar Jeff Garzik <jeff@garzik.org>:
>> 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.
> But isn't a bit smaller than a byte? Sorry, do not understand what you mean.
For all processors, it is generally preferred to have integer operations
performed on a "machine integer." A machine integer is the natural data
type of the processor. If it's a 32-bit processor, the natural data
type for the ALU is a 32-bit int. If it's a 64-bit processor, the
natural data type for the ALU is a 64-bit int. [though, for some 64-bit
processors, a 32-bit int may be best for the situation anyway]
As such, the compiler and/or CPU must do more work, if an operation such
as a bit test is performed on a data type other than a machine int.
Consider for example ARM or Alpha architectures, which may not have
instructions 8-bit unsigned char integers. The integers have to be
_converted_ to a machine integer, before the operation is performed.
It is for this reason that you often see boolean implemented as 'int'
rather than 'unsigned char'. 'int' is much more "natural", when you
consider all the architectures Linux must support.
The best solution is to typedef 'bool' to the compiler's internal
boolean data type, and then update code to use 'bool'. Then all these
issues magically go away, because you never have to care what the
compiler's underlying boolean data type is.
Jeff
next prev parent reply other threads:[~2006-07-20 0:13 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
2006-07-19 23:17 ` ricknu-0
2006-07-20 0:13 ` Jeff Garzik [this message]
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=44BECAA2.6010402@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox