public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [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