[OpenBIOS] [PATCH v2 2/2] Tidy cell types and format strings

Andreas Färber andreas.faerber at web.de
Sun Dec 19 01:55:37 CET 2010


Always define [u]cell in terms of fixed-width types,
so that their PRI* macros can be reused.

Signed-off-by: Andreas Färber <andreas.faerber at web.de>
---
 include/arch/amd64/types.h   |   10 +++++-----
 include/arch/ppc/types.h     |   12 +++++++-----
 include/arch/sparc32/types.h |   12 +++++++-----
 include/arch/sparc64/types.h |   16 +++++++++-------
 include/arch/x86/types.h     |   10 +++++-----
 kernel/cross.h               |    8 ++++----
 6 files changed, 37 insertions(+), 31 deletions(-)

diff --git a/include/arch/amd64/types.h b/include/arch/amd64/types.h
index 7b4f587..83fd3e1 100644
--- a/include/arch/amd64/types.h
+++ b/include/arch/amd64/types.h
@@ -11,7 +11,7 @@
 #ifndef __TYPES_H
 #define __TYPES_H
 
-#include <stdint.h>
+#include <inttypes.h>
 
 /* endianess */
 #include "autoconf.h"
@@ -24,12 +24,12 @@ typedef uint64_t phys_addr_t;
 
 /* cell based types */
 
-typedef long long     cell;
-typedef unsigned long long ucell;
-typedef __int128_t   dcell;
+typedef int64_t     cell;
+typedef uint64_t    ucell;
+typedef __int128_t  dcell;
 typedef __uint128_t ducell;
 
-#define FMT_ucellx  "%016llx"
+#define FMT_ucellx  "%016" PRIx64
 
 typedef int64_t         prom_arg_t;
 typedef uint64_t        prom_uarg_t;
diff --git a/include/arch/ppc/types.h b/include/arch/ppc/types.h
index b596428..cb1cc28 100644
--- a/include/arch/ppc/types.h
+++ b/include/arch/ppc/types.h
@@ -12,7 +12,7 @@
 #include "mconfig.h"
 
 #ifdef BOOTSTRAP
-#include <stdint.h>
+#include <inttypes.h>
 #else
 typedef unsigned char   uint8_t;
 typedef unsigned short  uint16_t;
@@ -29,9 +29,11 @@ typedef long            intptr_t;
 #define PRId32 "d"
 #define PRIu32 "u"
 #define PRIx32 "x"
+#define PRIX32 "X"
 #define PRId64 "lld"
 #define PRIu64 "llu"
 #define PRIx64 "llx"
+#define PRIX64 "llX"
 #endif
 
 /* endianess */
@@ -53,10 +55,10 @@ typedef uint32_t	ucell;
 typedef int64_t		dcell;
 typedef uint64_t	ducell;
 
-#define FMT_cell    "%d"
-#define FMT_ucell   "%u"
-#define FMT_ucellx  "%08x"
-#define FMT_ucellX  "%08X"
+#define FMT_cell    "%" PRId32
+#define FMT_ucell   "%" PRIu32
+#define FMT_ucellx  "%08" PRIx32
+#define FMT_ucellX  "%08" PRIX32
 
 typedef int32_t         prom_arg_t;
 typedef uint32_t        prom_uarg_t;
diff --git a/include/arch/sparc32/types.h b/include/arch/sparc32/types.h
index e3a96ff..f765874 100644
--- a/include/arch/sparc32/types.h
+++ b/include/arch/sparc32/types.h
@@ -12,7 +12,7 @@
 #include "mconfig.h"
 
 #ifdef BOOTSTRAP
-#include <stdint.h>
+#include <inttypes.h>
 #else
 typedef unsigned char   uint8_t;
 typedef unsigned short  uint16_t;
@@ -29,9 +29,11 @@ typedef long            intptr_t;
 #define PRId32 "d"
 #define PRIu32 "u"
 #define PRIx32 "x"
+#define PRIX32 "X"
 #define PRId64 "lld"
 #define PRIu64 "llu"
 #define PRIx64 "llx"
+#define PRIX64 "llX"
 #endif
 
 /* endianess */
@@ -50,10 +52,10 @@ typedef uint32_t	ucell;
 typedef long long       dcell;
 typedef unsigned long long ducell;
 
-#define FMT_cell    "%ld"
-#define FMT_ucell   "%lu"
-#define FMT_ucellx  "%08x"
-#define FMT_ucellX  "%08X"
+#define FMT_cell    "%" PRId32
+#define FMT_ucell   "%" PRIu32
+#define FMT_ucellx  "%08" PRIx32
+#define FMT_ucellX  "%08" PRIX32
 
 typedef int32_t         prom_arg_t;
 typedef uint32_t        prom_uarg_t;
diff --git a/include/arch/sparc64/types.h b/include/arch/sparc64/types.h
index d5a3fca..8784331 100644
--- a/include/arch/sparc64/types.h
+++ b/include/arch/sparc64/types.h
@@ -12,7 +12,7 @@
 #include "mconfig.h"
 
 #ifdef BOOTSTRAP
-#include <stdint.h>
+#include <inttypes.h>
 #else
 typedef unsigned char   uint8_t;
 typedef unsigned short  uint16_t;
@@ -29,9 +29,11 @@ typedef long            intptr_t;
 #define PRId32 "d"
 #define PRIu32 "u"
 #define PRIx32 "x"
+#define PRIX32 "X"
 #define PRId64 "lld"
 #define PRIu64 "llu"
 #define PRIx64 "llx"
+#define PRIX64 "llX"
 #endif
 
 /* endianess */
@@ -43,13 +45,13 @@ typedef uint64_t phys_addr_t;
 #define FMT_plx "%016" PRIx64
 
 /* cell based types */
-typedef long long          cell;
-typedef unsigned long long ucell;
+typedef int64_t     cell;
+typedef uint64_t    ucell;
 
-#define FMT_cell    "%lld"
-#define FMT_ucell   "%llu"
-#define FMT_ucellx  "%016llx"
-#define FMT_ucellX  "%016llX"
+#define FMT_cell    "%" PRId64
+#define FMT_ucell   "%" PRIu64
+#define FMT_ucellx  "%016" PRIx64
+#define FMT_ucellX  "%016" PRIX64
 
 typedef int64_t         prom_arg_t;
 typedef uint64_t        prom_uarg_t;
diff --git a/include/arch/x86/types.h b/include/arch/x86/types.h
index f533397..e06ab9b 100644
--- a/include/arch/x86/types.h
+++ b/include/arch/x86/types.h
@@ -11,7 +11,7 @@
 #ifndef __TYPES_H
 #define __TYPES_H
 
-#include <stdint.h>
+#include <inttypes.h>
 
 /* endianess */
 
@@ -30,10 +30,10 @@ typedef uint32_t	ucell;
 typedef int64_t		dcell;
 typedef uint64_t	ducell;
 
-#define FMT_cell    "%ld"
-#define FMT_ucell   "%lu"
-#define FMT_ucellx  "%08x"
-#define FMT_ucellX  "%08X"
+#define FMT_cell    "%" PRId32
+#define FMT_ucell   "%" PRIu32
+#define FMT_ucellx  "%08" PRIx32
+#define FMT_ucellX  "%08" PRIX32
 
 typedef int32_t         prom_arg_t;
 typedef uint32_t        prom_uarg_t;
diff --git a/kernel/cross.h b/kernel/cross.h
index 50d55e7..9dd656f 100644
--- a/kernel/cross.h
+++ b/kernel/cross.h
@@ -103,11 +103,11 @@
 /* bit width handling */
 
 #if BITS==32
-#define FMT_CELL_x "x"
-#define FMT_CELL_d "d"
+#define FMT_CELL_x PRIx32
+#define FMT_CELL_d PRId32
 #else
-#define FMT_CELL_x "llx"
-#define FMT_CELL_d "lld"
+#define FMT_CELL_x PRIx64
+#define FMT_CELL_d PRId64
 #endif
 
 #ifdef NATIVE_BITWIDTH_SMALLER_THAN_HOST_BITWIDTH
-- 
1.7.3




More information about the OpenBIOS mailing list