From: Richard Knutsson <ricknu-0@student.ltu.se>
To: Andrew Morton <akpm@osdl.org>
Cc: Prajakta Gudadhe <pgudadhe@nvidia.com>,
jeff@garzik.org, linux-kernel@vger.kernel.org
Subject: [PATCH 2.6.18-rc4-mm2] Generic boolean (was: Re: Generic booleans in -mm)
Date: Wed, 23 Aug 2006 13:14:00 +0200 [thread overview]
Message-ID: <44EC3878.9070300@student.ltu.se> (raw)
In-Reply-To: <20060822161706.bad04598.akpm@osdl.org>
From: Richard Knutsson <ricknu-0@student.ltu.se>
This patch defines:
* a generic boolean-type, named 'bool'
* aliases to 0 and 1, named 'false' and 'true'
Removing colliding definitions of 'bool', 'false' and 'true'.
Signed-off-by: Richard Knutsson <ricknu-0@student.ltu.se>
---
Patched applied cleanly and compile-tested (also run-tested on .18-rc3)
The boolean is named "bool", this because calling it "boolean" seems long (see: int
and integer) and not "BOOL", because it is a typedef and not a #define.
There has been some who do not want the true and false, but since it is just a
value and not bundled with the boolean type, it is up to the programmer which to
use. Also a quick check:
find . -name *.[chS] | xargs grep "define FALSE" | grep -v "FALSE_" | wc -l
55
tells us there seems to be some who like false (and true) (+ there is a need for a common
definition, as Andrew attempted).
There has been concern about adding other values then 0 and 1. There has been ideas to do something like:
bool b = i & 1 : 0;
/*or*/
bool b = !!i;
but all that is needed is just a casting:
bool b = (bool) i;
which in my opinion is just normal. We do it, after all, every time we want to add a (potentially) larger value in a too small type.
drivers/block/DAC960.h | 2 +-
drivers/media/video/cpia2/cpia2.h | 4 ----
drivers/net/dgrs.c | 1 -
drivers/scsi/BusLogic.h | 5 +----
include/linux/stddef.h | 5 +++++
include/linux/types.h | 2 ++
6 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/drivers/block/DAC960.h b/drivers/block/DAC960.h
index a82f37f..f9217c3 100644
--- a/drivers/block/DAC960.h
+++ b/drivers/block/DAC960.h
@@ -71,7 +71,7 @@ #define DAC690_V2_PciDmaMask 0xfffffffff
Define a Boolean data type.
*/
-typedef enum { false, true } __attribute__ ((packed)) boolean;
+typedef bool boolean;
/*
diff --git a/drivers/media/video/cpia2/cpia2.h b/drivers/media/video/cpia2/cpia2.h
index c5ecb2b..8d2dfc1 100644
--- a/drivers/media/video/cpia2/cpia2.h
+++ b/drivers/media/video/cpia2/cpia2.h
@@ -50,10 +50,6 @@ #define CPIA2_PATCH_VER 0
/***
* Image defines
***/
-#ifndef true
-#define true 1
-#define false 0
-#endif
/* Misc constants */
#define ALLOW_CORRUPT 0 /* Causes collater to discard checksum */
diff --git a/drivers/net/dgrs.c b/drivers/net/dgrs.c
index fa4f094..4dbc23d 100644
--- a/drivers/net/dgrs.c
+++ b/drivers/net/dgrs.c
@@ -110,7 +110,6 @@ static char version[] __initdata =
* DGRS include files
*/
typedef unsigned char uchar;
-typedef unsigned int bool;
#define vol volatile
#include "dgrs.h"
diff --git a/drivers/scsi/BusLogic.h b/drivers/scsi/BusLogic.h
index 9792e5a..d6d1d56 100644
--- a/drivers/scsi/BusLogic.h
+++ b/drivers/scsi/BusLogic.h
@@ -237,10 +237,7 @@ enum BusLogic_BIOS_DiskGeometryTranslati
Define a Boolean data type.
*/
-typedef enum {
- false,
- true
-} PACKED boolean;
+typedef bool boolean;
/*
Define a 10^18 Statistics Byte Counter data type.
diff --git a/include/linux/stddef.h b/include/linux/stddef.h
index b3a2cad..0382065 100644
--- a/include/linux/stddef.h
+++ b/include/linux/stddef.h
@@ -10,6 +10,11 @@ #else
#define NULL ((void *)0)
#endif
+enum {
+ false = 0,
+ true = 1
+};
+
#undef offsetof
#ifdef __compiler_offsetof
#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
diff --git a/include/linux/types.h b/include/linux/types.h
index 3f23566..406d4ae 100644
--- a/include/linux/types.h
+++ b/include/linux/types.h
@@ -33,6 +33,8 @@ typedef __kernel_clockid_t clockid_t;
typedef __kernel_mqd_t mqd_t;
#ifdef __KERNEL__
+typedef _Bool bool;
+
typedef __kernel_uid32_t uid_t;
typedef __kernel_gid32_t gid_t;
typedef __kernel_uid16_t uid16_t;
next prev parent reply other threads:[~2006-08-23 11:07 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-22 1:17 [PATCH] Sgpio support in sata_nv Prajakta Gudadhe
2006-08-22 5:44 ` Andrew Morton
2006-08-22 22:54 ` Generic booleans in -mm (was: Re: [PATCH] Sgpio support in sata_nv) Richard Knutsson
2006-08-22 23:17 ` Andrew Morton
2006-08-23 11:14 ` Richard Knutsson [this message]
2006-08-23 12:06 ` [PATCH 2.6.18-rc4-mm2] Generic boolean (was: Re: Generic booleans in -mm) Jan Engelhardt
2006-08-24 4:06 ` [PATCH 2.6.18-rc4-mm2] Generic boolean Richard Knutsson
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=44EC3878.9070300@student.ltu.se \
--to=ricknu-0@student.ltu.se \
--cc=akpm@osdl.org \
--cc=jeff@garzik.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pgudadhe@nvidia.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.