diff mbox

[v2,1/4] targphys.h: Define TARGET_PRI*PHYS format specifier macros

Message ID 1340639544-26520-2-git-send-email-peter.maydell@linaro.org
State New
Headers show

Commit Message

Peter Maydell June 25, 2012, 3:52 p.m. UTC
Define a set of TARGET_PRI*PHYS format specifier macros for working
with target_phys_addr_t types. These follow the standard pattern
for such macros, and are more flexible than TARGET_FMT_plx, which
does not allow specification of field widths.

Suggested-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 targphys.h |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

Comments

Andreas Färber June 25, 2012, 4:40 p.m. UTC | #1
Am 25.06.2012 17:52, schrieb Peter Maydell:
> Define a set of TARGET_PRI*PHYS format specifier macros for working
> with target_phys_addr_t types. These follow the standard pattern
> for such macros, and are more flexible than TARGET_FMT_plx, which
> does not allow specification of field widths.
> 
> Suggested-by: Andreas Färber <afaerber@suse.de>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Acked-by: Andreas Färber <afaerber@suse.de>

Since this version uses a TARGET_ prefix we elegantly workaround the
need for #undef Eric had pointed out in v1.

/-F
Eric Blake June 25, 2012, 6:06 p.m. UTC | #2
On 06/25/2012 10:40 AM, Andreas Färber wrote:
> Am 25.06.2012 17:52, schrieb Peter Maydell:
>> Define a set of TARGET_PRI*PHYS format specifier macros for working
>> with target_phys_addr_t types. These follow the standard pattern
>> for such macros, and are more flexible than TARGET_FMT_plx, which
>> does not allow specification of field widths.
>>
>> Suggested-by: Andreas Färber <afaerber@suse.de>
>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> 
> Acked-by: Andreas Färber <afaerber@suse.de>
> 
> Since this version uses a TARGET_ prefix we elegantly workaround the
> need for #undef Eric had pointed out in v1.

Agreed - no POSIX collision in this series.
diff mbox

Patch

diff --git a/targphys.h b/targphys.h
index 95648d6..bd4938f 100644
--- a/targphys.h
+++ b/targphys.h
@@ -11,10 +11,26 @@ 
 typedef uint32_t target_phys_addr_t;
 #define TARGET_PHYS_ADDR_MAX UINT32_MAX
 #define TARGET_FMT_plx "%08x"
+/* Format strings for printing target_phys_addr_t types.
+ * These are recommended over the less flexible TARGET_FMT_plx,
+ * which is retained for the benefit of existing code.
+ */
+#define TARGET_PRIdPHYS PRId32
+#define TARGET_PRIiPHYS PRIi32
+#define TARGET_PRIoPHYS PRIo32
+#define TARGET_PRIuPHYS PRIu32
+#define TARGET_PRIxPHYS PRIx32
+#define TARGET_PRIXPHYS PRIX32
 #elif TARGET_PHYS_ADDR_BITS == 64
 typedef uint64_t target_phys_addr_t;
 #define TARGET_PHYS_ADDR_MAX UINT64_MAX
 #define TARGET_FMT_plx "%016" PRIx64
+#define TARGET_PRIdPHYS PRId64
+#define TARGET_PRIiPHYS PRIi64
+#define TARGET_PRIoPHYS PRIo64
+#define TARGET_PRIuPHYS PRIu64
+#define TARGET_PRIxPHYS PRIx64
+#define TARGET_PRIXPHYS PRIX64
 #endif
 #endif