Consitently make such fields 64 bit values as used by dominfo.
It is not clear if ->video_memkb and/or shadow_memkb shouldn't be part of
->u.hvm but I have not changed that here.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
}
""")
for ty in builtins + types:
+ if isinstance(ty, idl.Number): continue
if ty.typename not in handcoded:
f.write("static void %s_rand_init(%s);\n" % \
(ty.typename,
typedef struct libxl__ctx libxl_ctx;
#define LIBXL_TIMER_MODE_DEFAULT -1
+#define LIBXL_MEMKB_DEFAULT ~0ULL
#include "_libxl_types.h"
const libxl_domain_create_info *c_info)
{
memset(b_info, '\0', sizeof(*b_info));
- b_info->max_memkb = 32 * 1024;
- b_info->target_memkb = b_info->max_memkb;
b_info->disable_migrate = 0;
b_info->cpuid = NULL;
- b_info->shadow_memkb = 0;
b_info->type = c_info->type;
+ b_info->max_memkb = LIBXL_MEMKB_DEFAULT;
+ b_info->target_memkb = LIBXL_MEMKB_DEFAULT;
+ b_info->shadow_memkb = LIBXL_MEMKB_DEFAULT;
+ b_info->video_memkb = LIBXL_MEMKB_DEFAULT;
+
b_info->device_model_stubdomain = false;
b_info->device_model = NULL;
switch (b_info->type) {
case LIBXL_DOMAIN_TYPE_HVM:
- b_info->video_memkb = 8 * 1024;
b_info->u.hvm.firmware = NULL;
b_info->u.hvm.bios = 0;
b_info->u.hvm.pae = 1;
libxl_cpumap_set_any(&b_info->cpumap);
}
+ if (b_info->max_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->max_memkb = 32 * 1024;
+ if (b_info->target_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->target_memkb = b_info->max_memkb;
+
switch (b_info->type) {
case LIBXL_DOMAIN_TYPE_HVM:
+ if (b_info->shadow_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->shadow_memkb = 0;
+ if (b_info->video_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->video_memkb = 8 * 1024;
if (b_info->u.hvm.timer_mode == LIBXL_TIMER_MODE_DEFAULT)
b_info->u.hvm.timer_mode =
LIBXL_TIMER_MODE_NO_DELAY_FOR_MISSED_TICKS;
break;
case LIBXL_DOMAIN_TYPE_PV:
+ if (b_info->shadow_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->shadow_memkb = 0;
+ if (b_info->u.pv.slack_memkb == LIBXL_MEMKB_DEFAULT)
+ b_info->u.pv.slack_memkb = 0;
break;
default:
LIBXL__LOG(CTX, LIBXL__LOG_ERROR,
ents = libxl__calloc(gc, 12 + (info->max_vcpus * 2) + 2, sizeof(char *));
ents[0] = "memory/static-max";
- ents[1] = libxl__sprintf(gc, "%d", info->max_memkb);
+ ents[1] = libxl__sprintf(gc, "%"PRId64, info->max_memkb);
ents[2] = "memory/target";
- ents[3] = libxl__sprintf(gc, "%d", info->target_memkb - info->video_memkb);
+ ents[3] = libxl__sprintf(gc, "%"PRId64,
+ info->target_memkb - info->video_memkb);
ents[4] = "memory/videoram";
- ents[5] = libxl__sprintf(gc, "%d", info->video_memkb);
+ ents[5] = libxl__sprintf(gc, "%"PRId64, info->video_memkb);
ents[6] = "domid";
ents[7] = libxl__sprintf(gc, "%d", domid);
ents[8] = "store/port";
libxl_hwcap = Builtin("hwcap", passby=PASS_BY_REFERENCE)
+#
+# Specific integer types
+#
+
+MemKB = UInt(64, init_val = "LIBXL_MEMKB_DEFAULT")
+
#
# Constants / Enumerations
#
# Otherwise set to a value guaranteed not to clash with any valid
# LIBXL_SHUTDOWN_REASON_* constant.
("shutdown_reason", libxl_shutdown_reason),
- ("current_memkb", uint64),
- ("shared_memkb", uint64),
- ("max_memkb", uint64),
+ ("current_memkb", MemKB),
+ ("shared_memkb", MemKB),
+ ("max_memkb", MemKB),
("cpu_time", uint64),
("vcpu_max_id", uint32),
("vcpu_online", uint32),
("cur_vcpus", integer),
("cpumap", libxl_cpumap),
("tsc_mode", libxl_tsc_mode),
- ("max_memkb", uint32),
- ("target_memkb", uint32),
- ("video_memkb", uint32),
- ("shadow_memkb", uint32),
+ ("max_memkb", MemKB),
+ ("target_memkb", MemKB),
+ ("video_memkb", MemKB),
+ ("shadow_memkb", MemKB),
("disable_migrate", bool),
("cpuid", libxl_cpuid_policy_list),
("type", libxl_domain_type),
("xen_platform_pci", bool),
])),
("pv", Struct(None, [("kernel", libxl_file_reference),
- ("slack_memkb", uint32),
+ ("slack_memkb", MemKB),
("bootloader", string),
("bootloader_args", libxl_string_list),
("cmdline", string),
#include "libxl_osdeps.h"
#include <stdlib.h>
+#include <inttypes.h>
#include "libxl.h"
#include "libxl_utils.h"
printf("\t(build_info)\n");
printf("\t(max_vcpus %d)\n", b_info->max_vcpus);
printf("\t(tsc_mode %s)\n", libxl_tsc_mode_to_string(b_info->tsc_mode));
- printf("\t(max_memkb %d)\n", b_info->max_memkb);
- printf("\t(target_memkb %d)\n", b_info->target_memkb);
+ printf("\t(max_memkb %"PRId64")\n", b_info->max_memkb);
+ printf("\t(target_memkb %"PRId64")\n", b_info->target_memkb);
printf("\t(nomigrate %d)\n", b_info->disable_migrate);
if (c_info->type == LIBXL_DOMAIN_TYPE_PV && b_info->u.pv.bootloader) {
case LIBXL_DOMAIN_TYPE_HVM:
printf("\t\t(hvm\n");
printf("\t\t\t(firmware %s)\n", b_info->u.hvm.firmware);
- printf("\t\t\t(video_memkb %d)\n", b_info->video_memkb);
- printf("\t\t\t(shadow_memkb %d)\n", b_info->shadow_memkb);
+ printf("\t\t\t(video_memkb %"PRId64")\n", b_info->video_memkb);
+ printf("\t\t\t(shadow_memkb %"PRId64")\n", b_info->shadow_memkb);
printf("\t\t\t(pae %d)\n", b_info->u.hvm.pae);
printf("\t\t\t(apic %d)\n", b_info->u.hvm.apic);
printf("\t\t\t(acpi %d)\n", b_info->u.hvm.acpi);