* [U-Boot] [Patch v2] Introduce a global bool type
@ 2013-01-07 23:55 York Sun
2013-01-08 6:29 ` Wolfgang Denk
2013-01-19 4:47 ` Allen Martin
0 siblings, 2 replies; 4+ messages in thread
From: York Sun @ 2013-01-07 23:55 UTC (permalink / raw)
To: u-boot
'bool' is defined in random places. This patch consolidates them into a
single typedef, using _Bool introduced in C99.
Signed-off-by: York Sun <yorksun@freescale.com>
---
Change since v1:
Move 'false' and 'true' to the common header file.
Need help from other arch maintainers to test it. I could only test powerpc.
arch/blackfin/include/asm/posix_types.h | 3 ---
board/Marvell/include/core.h | 5 -----
board/bf533-stamp/video.h | 3 ---
drivers/bios_emulator/atibios.c | 4 ----
drivers/mtd/nand/mxc_nand.c | 2 --
drivers/net/ne2000_base.h | 4 ----
drivers/usb/musb-new/linux-compat.h | 2 --
include/galileo/core.h | 5 -----
include/linux/types.h | 4 ++++
include/xyzModem.h | 8 --------
10 files changed, 4 insertions(+), 36 deletions(-)
diff --git a/arch/blackfin/include/asm/posix_types.h b/arch/blackfin/include/asm/posix_types.h
index 000ffe5..1f28b36 100644
--- a/arch/blackfin/include/asm/posix_types.h
+++ b/arch/blackfin/include/asm/posix_types.h
@@ -61,9 +61,6 @@ typedef unsigned int __kernel_gid32_t;
typedef unsigned short __kernel_old_uid_t;
typedef unsigned short __kernel_old_gid_t;
-#define BOOL_WAS_DEFINED
-typedef enum { false = 0, true = 1 } bool;
-
#ifdef __GNUC__
typedef long long __kernel_loff_t;
#endif
diff --git a/board/Marvell/include/core.h b/board/Marvell/include/core.h
index c413439..3119d0a 100644
--- a/board/Marvell/include/core.h
+++ b/board/Marvell/include/core.h
@@ -91,11 +91,6 @@ extern unsigned int INTERNAL_REG_BASE_ADDR;
#define _1G 0x40000000
#define _2G 0x80000000
-#ifndef BOOL_WAS_DEFINED
-#define BOOL_WAS_DEFINED
-typedef enum _bool{false,true} bool;
-#endif
-
/* Little to Big endian conversion macros */
#ifdef LE /* Little Endian */
diff --git a/board/bf533-stamp/video.h b/board/bf533-stamp/video.h
index 80837e2..949c3d8 100644
--- a/board/bf533-stamp/video.h
+++ b/board/bf533-stamp/video.h
@@ -9,9 +9,6 @@
#define YELLOW (0xD292D210) /* yellow pixel pattern */
#define WHITE (0xFE80FE80) /* white pixel pattern */
-#define true 1
-#define false 0
-
typedef struct {
unsigned int sav;
unsigned int eav;
diff --git a/drivers/bios_emulator/atibios.c b/drivers/bios_emulator/atibios.c
index dbb5e8c..e373560 100644
--- a/drivers/bios_emulator/atibios.c
+++ b/drivers/bios_emulator/atibios.c
@@ -52,10 +52,6 @@
/* Length of the BIOS image */
#define MAX_BIOSLEN (128 * 1024L)
-/* Define some useful types and macros */
-#define true 1
-#define false 0
-
/* Place to save PCI BAR's that we change and later restore */
static u32 saveROMBaseAddress;
static u32 saveBaseAddress10;
diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
index d0ded48..04836c0 100644
--- a/drivers/mtd/nand/mxc_nand.c
+++ b/drivers/mtd/nand/mxc_nand.c
@@ -29,8 +29,6 @@
#define DRIVER_NAME "mxc_nand"
-typedef enum {false, true} bool;
-
struct mxc_nand_host {
struct mtd_info mtd;
struct nand_chip *nand;
diff --git a/drivers/net/ne2000_base.h b/drivers/net/ne2000_base.h
index 5446de4..eee0956 100644
--- a/drivers/net/ne2000_base.h
+++ b/drivers/net/ne2000_base.h
@@ -79,10 +79,6 @@ are GPL, so this is, of course, GPL.
#ifndef __NE2000_BASE_H__
#define __NE2000_BASE_H__
-#define bool int
-#define false 0
-#define true 1
-
/*
* Debugging details
*
diff --git a/drivers/usb/musb-new/linux-compat.h b/drivers/usb/musb-new/linux-compat.h
index 5c126ef..72c8c2b 100644
--- a/drivers/usb/musb-new/linux-compat.h
+++ b/drivers/usb/musb-new/linux-compat.h
@@ -12,8 +12,6 @@
#define __iomem
#define __deprecated
-typedef enum { false = 0, true = 1 } bool;
-
struct unused {};
typedef struct unused unused_t;
diff --git a/include/galileo/core.h b/include/galileo/core.h
index c277509..faf4962 100644
--- a/include/galileo/core.h
+++ b/include/galileo/core.h
@@ -110,11 +110,6 @@ extern unsigned int INTERNAL_REG_BASE_ADDR;
#define _1G 0x40000000
#define _2G 0x80000000
-#ifndef BOOL_WAS_DEFINED
-#define BOOL_WAS_DEFINED
-typedef enum _bool{false,true} bool;
-#endif
-
/* Little to Big endian conversion macros */
#ifdef LE /* Little Endian */
diff --git a/include/linux/types.h b/include/linux/types.h
index 1b0b4a4..925ece7 100644
--- a/include/linux/types.h
+++ b/include/linux/types.h
@@ -113,6 +113,10 @@ typedef __u64 u_int64_t;
typedef __s64 int64_t;
#endif
+typedef _Bool bool;
+#define false 0
+#define true 1
+
#endif /* __KERNEL_STRICT_NAMES */
/*
diff --git a/include/xyzModem.h b/include/xyzModem.h
index f437bbd..a3ea768 100644
--- a/include/xyzModem.h
+++ b/include/xyzModem.h
@@ -97,14 +97,6 @@ typedef struct {
#endif
} connection_info_t;
-#ifndef BOOL_WAS_DEFINED
-#define BOOL_WAS_DEFINED
-typedef unsigned int bool;
-#endif
-
-#define false 0
-#define true 1
-
#endif
--
1.7.9.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [U-Boot] [Patch v2] Introduce a global bool type
2013-01-07 23:55 [U-Boot] [Patch v2] Introduce a global bool type York Sun
@ 2013-01-08 6:29 ` Wolfgang Denk
2013-01-19 4:58 ` Allen Martin
2013-01-19 4:47 ` Allen Martin
1 sibling, 1 reply; 4+ messages in thread
From: Wolfgang Denk @ 2013-01-08 6:29 UTC (permalink / raw)
To: u-boot
Dear York Sun,
In message <1357602948-16848-1-git-send-email-yorksun@freescale.com> you wrote:
> 'bool' is defined in random places. This patch consolidates them into a
> single typedef, using _Bool introduced in C99.
>
> Signed-off-by: York Sun <yorksun@freescale.com>
> ---
> Change since v1:
> Move 'false' and 'true' to the common header file.
Please see M?ns Rullg?rd's comment about using stdbool.h instead.
Then please make sure that a sufficient number of tool chains as well
as configurations using USE_PRIVATE_LIBGCC continue to work, i. e. in
a first step verify that these are still compile-clean.
Thanks.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The trouble with our times is that the future is not what it used to
be. - Paul Valery
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [Patch v2] Introduce a global bool type
2013-01-07 23:55 [U-Boot] [Patch v2] Introduce a global bool type York Sun
2013-01-08 6:29 ` Wolfgang Denk
@ 2013-01-19 4:47 ` Allen Martin
1 sibling, 0 replies; 4+ messages in thread
From: Allen Martin @ 2013-01-19 4:47 UTC (permalink / raw)
To: u-boot
On Mon, Jan 07, 2013 at 03:55:48PM -0800, York Sun wrote:
> 'bool' is defined in random places. This patch consolidates them into a
> single typedef, using _Bool introduced in C99.
>
> Signed-off-by: York Sun <yorksun@freescale.com>
> ---
> Change since v1:
> Move 'false' and 'true' to the common header file.
>
> Need help from other arch maintainers to test it. I could only test powerpc.
>
Thank you for taking this on, it's definately in need of cleanup.
There are also many duplicate definitions of the upper case variants
(BOOL/TRUE/FALSE). Those should get fixed too.
> +typedef _Bool bool;
> +#define false 0
> +#define true 1
> +
Linux defines true/false as an enum type in stddef.h, since u-boot
already has a copy of this Linux header, shouldn't it go in there?
-Allen
--
nvpublic
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [Patch v2] Introduce a global bool type
2013-01-08 6:29 ` Wolfgang Denk
@ 2013-01-19 4:58 ` Allen Martin
0 siblings, 0 replies; 4+ messages in thread
From: Allen Martin @ 2013-01-19 4:58 UTC (permalink / raw)
To: u-boot
On Mon, Jan 07, 2013 at 10:29:28PM -0800, Wolfgang Denk wrote:
> Dear York Sun,
>
> In message <1357602948-16848-1-git-send-email-yorksun@freescale.com> you wrote:
> > 'bool' is defined in random places. This patch consolidates them into a
> > single typedef, using _Bool introduced in C99.
> >
> > Signed-off-by: York Sun <yorksun@freescale.com>
> > ---
> > Change since v1:
> > Move 'false' and 'true' to the common header file.
>
> Please see M?ns Rullg?rd's comment about using stdbool.h instead.
>
Isn't stdbool.h more for backward compatability for user space
programs, so only newer C99 aware programs can opt-in to the new data
type? Linux for example doesn't use stdbool.h, it puts the definition
of "bool" in types.h, and true/false in stddef.h. Since, like Linux,
u-boot is a single codebase, all the data types can go in a common
place and not have to worry about breaking old programs with new
types.
> Then please make sure that a sufficient number of tool chains as well
> as configurations using USE_PRIVATE_LIBGCC continue to work, i. e. in
> a first step verify that these are still compile-clean.
If you cc me on newer versions of the patch I can help verify on
tegra, which uses USE_PRIVATE_LIBGCC.
-Allen
--
nvpublic
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-01-19 4:58 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-07 23:55 [U-Boot] [Patch v2] Introduce a global bool type York Sun
2013-01-08 6:29 ` Wolfgang Denk
2013-01-19 4:58 ` Allen Martin
2013-01-19 4:47 ` Allen Martin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox