libpayload: use PRIu64 type to print u64
The appropriate way to print a u64 variable regardless of the current
architecture is to use the PRI*64 macros. libpayload is mostly used
in 32 bits but when ported to other projects and compiled in 64 bits
it breaks the compilation.
Change-Id: I479fd701f992701584d77d43c5cd5910f5ab7633
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/45628
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/payloads/libpayload/drivers/options.c b/payloads/libpayload/drivers/options.c
index 9e437f9..b6d2342 100644
--- a/payloads/libpayload/drivers/options.c
+++ b/payloads/libpayload/drivers/options.c
@@ -26,8 +26,11 @@
* SUCH DAMAGE.
*/
+#define __STDC_FORMAT_MACROS
+
#include <libpayload.h>
#include <coreboot_tables.h>
+#include <inttypes.h>
u8 *mem_accessor_base;
@@ -325,7 +328,7 @@
/* only works on little endian.
26 bytes is enough for a 64bit value in decimal */
*dest = malloc(26);
- sprintf(*dest, "%llu", *(u64*)raw);
+ sprintf(*dest, "%" PRIu64, *(u64 *)raw);
break;
case 's':
*dest = strdup(raw);
diff --git a/payloads/libpayload/libc/time.c b/payloads/libpayload/libc/time.c
index c0a3313..6780008 100644
--- a/payloads/libpayload/libc/time.c
+++ b/payloads/libpayload/libc/time.c
@@ -31,11 +31,14 @@
* General time functions
*/
+#define __STDC_FORMAT_MACROS
+
#include <libpayload-config.h>
#include <libpayload.h>
#if CONFIG(LP_ARCH_X86) && CONFIG(LP_NVRAM)
#include <arch/rdtsc.h>
#endif
+#include <inttypes.h>
extern u32 cpu_khz;
@@ -173,7 +176,7 @@
if (hz == 0) {
hz = timer_hz();
if (hz < 1000000) {
- printf("Timer frequency %lld is too low, "
+ printf("Timer frequency %" PRIu64 " is too low, "
"must be at least 1MHz.\n", hz);
halt();
}