[coreboot-gerrit] New patch to review for coreboot: d138570 libpayload: Fix type issues

Stefan Reinauer (stefan.reinauer@coreboot.org) gerrit at coreboot.org
Mon Mar 25 23:05:11 CET 2013


Stefan Reinauer (stefan.reinauer at coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2903

-gerrit

commit d13857079b8c16ed988b8b127388513a553b6fa7
Author: Stefan Reinauer <reinauer at chromium.org>
Date:   Mon Mar 25 15:03:41 2013 -0700

    libpayload: Fix type issues
    
    There were a number of type issues in libpayload that sneaked in
    with the latest set of patches.
    
    - size_t and ssize_t were conflicting with gcc builtins
    - some stdint types were used in libpayload but not defined
      in our stdint.h
    
    With this patch it's possible to compile libpayload with the
    reference toolchain again.
    
    Change-Id: Idd5ccfdd9f3536b36bceca2d101e7405883b10bc
    Signed-off-by: Stefan Reinauer <reinauer at google.com>
---
 payloads/libpayload/include/armv7/arch/types.h |  4 ++--
 payloads/libpayload/include/stdint.h           | 24 ++++++++++++++++++++++++
 payloads/libpayload/include/x86/arch/types.h   |  4 ++--
 3 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/payloads/libpayload/include/armv7/arch/types.h b/payloads/libpayload/include/armv7/arch/types.h
index d6f4aa8..bb40257 100644
--- a/payloads/libpayload/include/armv7/arch/types.h
+++ b/payloads/libpayload/include/armv7/arch/types.h
@@ -53,8 +53,8 @@ typedef signed long long s64;
 typedef long time_t;
 typedef long suseconds_t;
 
-typedef unsigned int size_t;
-typedef int ssize_t;
+typedef unsigned long size_t;
+typedef long ssize_t;
 
 #ifndef NULL
 #define NULL ((void *)0)
diff --git a/payloads/libpayload/include/stdint.h b/payloads/libpayload/include/stdint.h
index dd7439d..1f0657b 100644
--- a/payloads/libpayload/include/stdint.h
+++ b/payloads/libpayload/include/stdint.h
@@ -29,8 +29,32 @@
 
 #ifndef __STDINT_H
 #define __STDINT_H
+
+#if defined(__GNUC__)
+#define __HAVE_LONG_LONG__ 1
+#else
+#define __HAVE_LONG_LONG__ 0
+#endif
+
 #include <arch/types.h>
 
+/* Largest integral types */
+#if __HAVE_LONG_LONG__
+typedef long long int      intmax_t;
+typedef unsigned long long uintmax_t;
+#else
+typedef long int           intmax_t;
+typedef unsigned long int  uintmax_t;
+#endif
+
 typedef unsigned long uintptr_t;
 typedef long intptr_t;
+
+#ifndef UINT32_MAX
+#define UINT32_MAX (4294967295U)
+#endif
+#ifndef UINT64_MAX
+# define UINT64_MAX (18446744073709551615ULL)
+#endif
+
 #endif
diff --git a/payloads/libpayload/include/x86/arch/types.h b/payloads/libpayload/include/x86/arch/types.h
index d6f4aa8..bb40257 100644
--- a/payloads/libpayload/include/x86/arch/types.h
+++ b/payloads/libpayload/include/x86/arch/types.h
@@ -53,8 +53,8 @@ typedef signed long long s64;
 typedef long time_t;
 typedef long suseconds_t;
 
-typedef unsigned int size_t;
-typedef int ssize_t;
+typedef unsigned long size_t;
+typedef long ssize_t;
 
 #ifndef NULL
 #define NULL ((void *)0)



More information about the coreboot-gerrit mailing list