libxl: fix JSON generator for uint64_t
authorWei Liu <wei.liu2@citrix.com>
Mon, 9 Jun 2014 12:43:17 +0000 (13:43 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Tue, 10 Jun 2014 13:06:49 +0000 (14:06 +0100)
commit43ea78f03d2b30119bec6d65aeb58a31f9c3ed9c
tree2197383e4940c65f7039bf0a214ee2f553f3398c
parentc28219f035562866934cdf6d39deac565553d6c2
libxl: fix JSON generator for uint64_t

yajl_gen_integer cannot cope with uint64_t, because it takes a signed
long long. If we pass to it an uint64_t number which is between INT_MAX
and UINT_MAX, it generates a negative number. Later when we feed this
generated number into parser, the result gets signed extended, which is
wrong.

A new function called libxl__uint64_gen_json is introduced to handle
uint64_t. It utilises yajl_gen_number to generate numbers.

Also removed a duplicated definition of MemKB while I was there.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
tools/libxl/idl.py
tools/libxl/libxl_json.c
tools/libxl/libxl_json.h
tools/libxl/libxl_types.idl