Re: [RFC][PATCH] A generic boolean (version 2)

From: Jeff Garzik
Date: Thu Jul 20 2006 - 21:33:12 EST

ricknu-0@xxxxxxxxxxxxxx wrote:
diff --git a/include/asm-i386/types.h b/include/asm-i386/types.h
index 4b4b295..841792b 100644
--- a/include/asm-i386/types.h
+++ b/include/asm-i386/types.h
@@ -1,6 +1,13 @@
#ifndef _I386_TYPES_H
#define _I386_TYPES_H
+#if defined(__GNUC__)
+typedef _Bool bool;
+#warning You compiler doesn't seem to support boolean types, will set 'bool' as
an 'unsigned int'
+typedef unsigned int bool;
#ifndef __ASSEMBLY__
typedef unsigned short umode_t;

Just delete the #ifdef and assume its either gcc, or a compatible compiler. That's what we assume with other data types.

@@ -10,6 +17,8 @@ typedef unsigned short umode_t;
* header files exported to user space
+typedef bool __u1;
typedef __signed__ char __s8;
typedef unsigned char __u8;
@@ -36,6 +45,8 @@ #define BITS_PER_LONG 32
#ifndef __ASSEMBLY__
+typedef bool u1;
typedef signed char s8;
typedef unsigned char u8;

I wouldn't bother with these types. Nobody uses creates in their own hand-crafted bool uses, so I don't think people would suddenly start.

diff --git a/include/linux/stddef.h b/include/linux/stddef.h
index b3a2cad..498813b 100644
--- a/include/linux/stddef.h
+++ b/include/linux/stddef.h
@@ -10,6 +10,9 @@ #else
#define NULL ((void *)0)
+#define false ((0))
+#define true ((1))

I would say:

#undef true
#undef false
enum {
false = 0,
true = 1

#define false false
#define true true

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at