* [PATCH] kvm tools: Fix 64-bit assumptions and type uglinesses
@ 2011-04-09 11:21 Ingo Molnar
2011-04-09 11:37 ` Pekka Enberg
0 siblings, 1 reply; 2+ messages in thread
From: Ingo Molnar @ 2011-04-09 11:21 UTC (permalink / raw)
To: Pekka Enberg; +Cc: KVM devel mailing list
Make the MIN_RAM_SIZE_MB constant 64-bit on 32-bit systems as well, otherwise
we get this build failure:
kvm-run.c: In function ‘kvm_cmd_run’:
kvm-run.c:119: error: format ‘%lu’ expects type ‘long unsigned int’, but argument 2 has type ‘u64’
Also adjust affected printf format string - this necessiates the use of
the sane Linux definition of u64 instead of the brain-dead int64_t
variant.
That also allows (and necessiates) the removal of the ugly PRIu64 format
string hackery. Friends don't let friends use PRI* hackeries! :-)
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
tools/kvm/include/linux/types.h | 4 ++--
tools/kvm/kvm-run.c | 11 +++++------
2 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/tools/kvm/include/linux/types.h b/tools/kvm/include/linux/types.h
index b989d2a..8b608e7 100644
--- a/tools/kvm/include/linux/types.h
+++ b/tools/kvm/include/linux/types.h
@@ -12,8 +12,8 @@
#define __s32 int32_t
#define __u32 uint32_t
-#define __s64 int64_t
-#define __u64 uint64_t
+#define __s64 long long
+#define __u64 unsigned long long
typedef __u64 u64;
typedef __s64 s64;
diff --git a/tools/kvm/kvm-run.c b/tools/kvm/kvm-run.c
index 9b0786a..5697d82 100644
--- a/tools/kvm/kvm-run.c
+++ b/tools/kvm/kvm-run.c
@@ -25,7 +25,7 @@
#define DEFAULT_KVM_DEV "/dev/kvm"
#define MB_SHIFT (20)
-#define MIN_RAM_SIZE_MB (64UL)
+#define MIN_RAM_SIZE_MB (64ULL)
#define MIN_RAM_SIZE_BYTE (MIN_RAM_SIZE_MB << MB_SHIFT)
static struct kvm *kvm;
@@ -114,10 +114,9 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix)
}
- if (ram_size < MIN_RAM_SIZE_MB) {
- die("Not enough memory specified: %luMB (min %luMB)", ram_size,
- MIN_RAM_SIZE_MB);
- }
+ if (ram_size < MIN_RAM_SIZE_MB)
+ die("Not enough memory specified: %lluMB (min %lluMB)", ram_size, MIN_RAM_SIZE_MB);
+
ram_size <<= MB_SHIFT;
if (!kvm_dev)
@@ -230,7 +229,7 @@ panic_kvm:
kvm->kvm_run->exit_reason,
kvm_exit_reasons[kvm->kvm_run->exit_reason]);
if (kvm->kvm_run->exit_reason == KVM_EXIT_UNKNOWN)
- fprintf(stderr, "KVM exit code: 0x%" PRIu64 "\n",
+ fprintf(stderr, "KVM exit code: 0x%Lu\n",
kvm->kvm_run->hw.hardware_exit_reason);
disk_image__close(kvm->disk_image);
kvm__show_registers(kvm);
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] kvm tools: Fix 64-bit assumptions and type uglinesses
2011-04-09 11:21 [PATCH] kvm tools: Fix 64-bit assumptions and type uglinesses Ingo Molnar
@ 2011-04-09 11:37 ` Pekka Enberg
0 siblings, 0 replies; 2+ messages in thread
From: Pekka Enberg @ 2011-04-09 11:37 UTC (permalink / raw)
To: Ingo Molnar; +Cc: Pekka Enberg, KVM devel mailing list, gorcunov, asias.hejun
[-- Attachment #1: Type: TEXT/PLAIN, Size: 778 bytes --]
On Sat, 9 Apr 2011, Ingo Molnar wrote:
> Make the MIN_RAM_SIZE_MB constant 64-bit on 32-bit systems as well, otherwise
> we get this build failure:
>
> kvm-run.c: In function ‘kvm_cmd_run’:
> kvm-run.c:119: error: format ‘%lu’ expects type ‘long unsigned int’, but argument 2 has type ‘u64’
>
> Also adjust affected printf format string - this necessiates the use of
> the sane Linux definition of u64 instead of the brain-dead int64_t
> variant.
>
> That also allows (and necessiates) the removal of the ugly PRIu64 format
> string hackery. Friends don't let friends use PRI* hackeries! :-)
Yeah, we definitely should do a tree-wide sweep of s/uint64_t/u64/, etc.,
and PRI* removal.
> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Applied, thanks!
Pekka
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-04-09 11:37 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-09 11:21 [PATCH] kvm tools: Fix 64-bit assumptions and type uglinesses Ingo Molnar
2011-04-09 11:37 ` Pekka Enberg
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.