aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxen/src/xen_vm_metrics.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/libxen/src/xen_vm_metrics.c')
-rw-r--r--tools/libxen/src/xen_vm_metrics.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/tools/libxen/src/xen_vm_metrics.c b/tools/libxen/src/xen_vm_metrics.c
index 11e421282b..bd0509bfc4 100644
--- a/tools/libxen/src/xen_vm_metrics.c
+++ b/tools/libxen/src/xen_vm_metrics.c
@@ -22,7 +22,9 @@
#include "xen_common.h"
#include "xen_int_float_map.h"
+#include "xen_int_int_map.h"
#include "xen_internal.h"
+#include "xen_string_string_map.h"
#include "xen_vm_metrics.h"
@@ -49,6 +51,15 @@ static const struct_member xen_vm_metrics_record_struct_members[] =
{ .key = "VCPUs_utilisation",
.type = &abstract_type_int_float_map,
.offset = offsetof(xen_vm_metrics_record, vcpus_utilisation) },
+ { .key = "VCPUs_CPU",
+ .type = &abstract_type_int_int_map,
+ .offset = offsetof(xen_vm_metrics_record, vcpus_cpu) },
+ { .key = "VCPUs_params",
+ .type = &abstract_type_string_string_map,
+ .offset = offsetof(xen_vm_metrics_record, vcpus_params) },
+ { .key = "start_time",
+ .type = &abstract_type_datetime,
+ .offset = offsetof(xen_vm_metrics_record, start_time) },
{ .key = "last_updated",
.type = &abstract_type_datetime,
.offset = offsetof(xen_vm_metrics_record, last_updated) }
@@ -74,6 +85,8 @@ xen_vm_metrics_record_free(xen_vm_metrics_record *record)
free(record->handle);
free(record->uuid);
xen_int_float_map_free(record->vcpus_utilisation);
+ xen_int_int_map_free(record->vcpus_cpu);
+ xen_string_string_map_free(record->vcpus_params);
free(record);
}
@@ -168,6 +181,56 @@ xen_vm_metrics_get_vcpus_utilisation(xen_session *session, xen_int_float_map **r
bool
+xen_vm_metrics_get_vcpus_cpu(xen_session *session, xen_int_int_map **result, xen_vm_metrics vm_metrics)
+{
+ abstract_value param_values[] =
+ {
+ { .type = &abstract_type_string,
+ .u.string_val = vm_metrics }
+ };
+
+ abstract_type result_type = abstract_type_int_int_map;
+
+ *result = NULL;
+ XEN_CALL_("VM_metrics.get_VCPUs_CPU");
+ return session->ok;
+}
+
+
+bool
+xen_vm_metrics_get_vcpus_params(xen_session *session, xen_string_string_map **result, xen_vm_metrics vm_metrics)
+{
+ abstract_value param_values[] =
+ {
+ { .type = &abstract_type_string,
+ .u.string_val = vm_metrics }
+ };
+
+ abstract_type result_type = abstract_type_string_string_map;
+
+ *result = NULL;
+ XEN_CALL_("VM_metrics.get_VCPUs_params");
+ return session->ok;
+}
+
+
+bool
+xen_vm_metrics_get_start_time(xen_session *session, time_t *result, xen_vm_metrics vm_metrics)
+{
+ abstract_value param_values[] =
+ {
+ { .type = &abstract_type_string,
+ .u.string_val = vm_metrics }
+ };
+
+ abstract_type result_type = abstract_type_datetime;
+
+ XEN_CALL_("VM_metrics.get_start_time");
+ return session->ok;
+}
+
+
+bool
xen_vm_metrics_get_last_updated(xen_session *session, time_t *result, xen_vm_metrics vm_metrics)
{
abstract_value param_values[] =