include, lib: Add <inttypes.h> printf macros

In general, third party code (such as vboot) doesn't know what the
underlying types are for the integers in <stdint.h>, so these macros are
useful for portably printing them. Of these definitions, coreboot so far
has only used PRIu64 (in one place), which isn't needed anymore since we
know what the underlying type of a u64 is.

Change-Id: I9e3a300f9b1c38e4831b030ff8af3fed2fa60f14
Signed-off-by: Jacob Garber <jgarber1@ualberta.ca>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/33823
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
This commit is contained in:
Jacob Garber 2019-08-07 19:10:52 -06:00 committed by Nico Huber
parent d073a0b983
commit 3a323808f6
3 changed files with 64 additions and 8 deletions

View File

@ -1,4 +1,67 @@
/*
* This file is part of the coreboot project.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef INTTYPES_H
#define INTTYPES_H
#include <stdint.h>
/* int8_t and uint8_t */
#define PRId8 "d"
#define PRIi8 "i"
#define PRIu8 "u"
#define PRIo8 "o"
#define PRIx8 "x"
#define PRIX8 "X"
/* int16_t and uint16_t */
#define PRId16 "d"
#define PRIi16 "i"
#define PRIu16 "u"
#define PRIo16 "o"
#define PRIx16 "x"
#define PRIX16 "X"
/* int32_t and uint32_t */
#define PRId32 "d"
#define PRIi32 "i"
#define PRIu32 "u"
#define PRIo32 "o"
#define PRIx32 "x"
#define PRIX32 "X"
/* int64_t and uint64_t */
#define PRId64 "lld"
#define PRIi64 "lli"
#define PRIu64 "llu"
#define PRIo64 "llo"
#define PRIx64 "llx"
#define PRIX64 "llX"
/* intptr_t and uintptr_t */
#define PRIdPTR "ld"
#define PRIiPTR "li"
#define PRIuPTR "lu"
#define PRIoPTR "lo"
#define PRIxPTR "lx"
#define PRIXPTR "lX"
/* intmax_t and uintmax_t */
#define PRIdMAX "jd"
#define PRIiMAX "ji"
#define PRIuMAX "ju"
#define PRIoMAX "jo"
#define PRIxMAX "jx"
#define PRIXMAX "jX"
#endif /* INTTYPES_H */

View File

@ -110,10 +110,4 @@ typedef _Bool bool;
#define true 1
#define false 0
/* TODO: move into inttypes.h */
#ifndef __ROMCC__
#define PRIu64 "llu"
#define PRIxPTR "lx"
#endif
#endif /* STDINT_H */

View File

@ -180,8 +180,7 @@ static void timestamp_add_table_entry(struct timestamp_table *ts_table,
tse->entry_stamp = ts_time - ts_table->base_time;
if (CONFIG(TIMESTAMPS_ON_CONSOLE))
printk(BIOS_SPEW, "Timestamp - %s: %" PRIu64 "\n",
timestamp_name(id), ts_time);
printk(BIOS_SPEW, "Timestamp - %s: %llu\n", timestamp_name(id), ts_time);
if (ts_table->num_entries == ts_table->max_entries)
printk(BIOS_ERR, "ERROR: Timestamp table full\n");