diff options
Diffstat (limited to 'tools/libxen')
-rw-r--r-- | tools/libxen/include/xen_host_cpu.h | 8 | ||||
-rw-r--r-- | tools/libxen/src/xen_host_cpu.c | 21 |
2 files changed, 29 insertions, 0 deletions
diff --git a/tools/libxen/include/xen_host_cpu.h b/tools/libxen/include/xen_host_cpu.h index 8b6d37f5e3..b484793782 100644 --- a/tools/libxen/include/xen_host_cpu.h +++ b/tools/libxen/include/xen_host_cpu.h @@ -70,6 +70,7 @@ typedef struct xen_host_cpu_record char *modelname; char *stepping; char *flags; + char *features; double utilisation; } xen_host_cpu_record; @@ -223,6 +224,13 @@ xen_host_cpu_get_flags(xen_session *session, char **result, xen_host_cpu host_cp /** + * Get the features field of the given host_cpu. + */ +extern bool +xen_host_cpu_get_features(xen_session *session, char **result, xen_host_cpu host_cpu); + + +/** * Get the utilisation field of the given host_cpu. */ extern bool diff --git a/tools/libxen/src/xen_host_cpu.c b/tools/libxen/src/xen_host_cpu.c index c03241dc84..9509c570e4 100644 --- a/tools/libxen/src/xen_host_cpu.c +++ b/tools/libxen/src/xen_host_cpu.c @@ -61,6 +61,9 @@ static const struct_member xen_host_cpu_record_struct_members[] = { .key = "flags", .type = &abstract_type_string, .offset = offsetof(xen_host_cpu_record, flags) }, + { .key = "features", + .type = &abstract_type_string, + .offset = offsetof(xen_host_cpu_record, features) }, { .key = "utilisation", .type = &abstract_type_float, .offset = offsetof(xen_host_cpu_record, utilisation) } @@ -90,6 +93,7 @@ xen_host_cpu_record_free(xen_host_cpu_record *record) free(record->modelname); free(record->stepping); free(record->flags); + free(record->features); free(record); } @@ -252,6 +256,23 @@ xen_host_cpu_get_flags(xen_session *session, char **result, xen_host_cpu host_cp bool +xen_host_cpu_get_features(xen_session *session, char **result, xen_host_cpu host_cpu) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = host_cpu } + }; + + abstract_type result_type = abstract_type_string; + + *result = NULL; + XEN_CALL_("host_cpu.get_features"); + return session->ok; +} + + +bool xen_host_cpu_get_utilisation(xen_session *session, double *result, xen_host_cpu host_cpu) { abstract_value param_values[] = |