return ret;
}
+
+static inline int
+libxlGetFreeMemoryWrapper(libxl_ctx *ctx, uint64_t *memkb)
+{
+ int ret;
+
+#if LIBXL_API_VERSION < 0x040800
+ {
+ uint32_t val32 = 0;
+
+ ret = libxl_get_free_memory(ctx, &val32);
+ *memkb = val32;
+ }
+#else
+ ret = libxl_get_free_memory(ctx, memkb);
+#endif
+
+ return ret;
+}
#include "viruuid.h"
#include "vircommand.h"
#include "virsocketaddr.h"
+#include "libxl_api_wrapper.h"
#include "libxl_domain.h"
#include "libxl_conf.h"
#include "libxl_utils.h"
int
libxlDriverConfigInit(libxlDriverConfigPtr cfg)
{
- unsigned int free_mem;
+ uint64_t free_mem;
if (g_mkdir_with_parents(cfg->logDir, 0777) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
/* This will fill xenstore info about free and dom0 memory if missing,
* should be called before starting first domain */
- if (libxl_get_free_memory(cfg->ctx, &free_mem)) {
+ if (libxlGetFreeMemoryWrapper(cfg->ctx, &free_mem)) {
VIR_ERROR(_("Unable to configure libxl's memory management parameters"));
return -1;
}
libxlDomainFreeMem(libxl_ctx *ctx, libxl_domain_config *d_config)
{
uint64_t needed_mem;
- uint32_t free_mem;
+ uint64_t free_mem;
int32_t target_mem;
int tries = 3;
int wait_secs = 10;
goto error;
do {
- if (libxl_get_free_memory(ctx, &free_mem) < 0)
+ if (libxlGetFreeMemoryWrapper(ctx, &free_mem) < 0)
goto error;
if (free_mem >= needed_mem)
VIR_MOCK_STUB_RET_ARGS(libxl_get_free_memory,
int, 0,
libxl_ctx *, ctx,
- uint32_t *, memkb);
+# if LIBXL_API_VERSION < 0x040800
+ uint32_t *,
+# else
+ uint64_t *,
+# endif
+ memkb);
VIR_MOCK_STUB_RET_ARGS(xc_interface_close,
int, 0,