diff options
Diffstat (limited to 'tools/libxen/src/xen_vdi.c')
-rw-r--r-- | tools/libxen/src/xen_vdi.c | 60 |
1 files changed, 19 insertions, 41 deletions
diff --git a/tools/libxen/src/xen_vdi.c b/tools/libxen/src/xen_vdi.c index a8d157d232..b2eddbcafb 100644 --- a/tools/libxen/src/xen_vdi.c +++ b/tools/libxen/src/xen_vdi.c @@ -21,6 +21,7 @@ #include <stdlib.h> #include "xen_common.h" +#include "xen_crashdump.h" #include "xen_internal.h" #include "xen_sr.h" #include "xen_vbd.h" @@ -54,6 +55,9 @@ static const struct_member xen_vdi_record_struct_members[] = { .key = "VBDs", .type = &abstract_type_ref_set, .offset = offsetof(xen_vdi_record, vbds) }, + { .key = "crash_dumps", + .type = &abstract_type_ref_set, + .offset = offsetof(xen_vdi_record, crash_dumps) }, { .key = "virtual_size", .type = &abstract_type_int, .offset = offsetof(xen_vdi_record, virtual_size) }, @@ -66,12 +70,6 @@ static const struct_member xen_vdi_record_struct_members[] = { .key = "type", .type = &xen_vdi_type_abstract_type_, .offset = offsetof(xen_vdi_record, type) }, - { .key = "parent", - .type = &abstract_type_ref, - .offset = offsetof(xen_vdi_record, parent) }, - { .key = "children", - .type = &abstract_type_ref_set, - .offset = offsetof(xen_vdi_record, children) }, { .key = "sharable", .type = &abstract_type_bool, .offset = offsetof(xen_vdi_record, sharable) }, @@ -103,8 +101,7 @@ xen_vdi_record_free(xen_vdi_record *record) free(record->name_description); xen_sr_record_opt_free(record->sr); xen_vbd_record_opt_set_free(record->vbds); - xen_vdi_record_opt_free(record->parent); - xen_vdi_record_opt_set_free(record->children); + xen_crashdump_record_opt_set_free(record->crash_dumps); free(record); } @@ -266,7 +263,7 @@ xen_vdi_get_vbds(xen_session *session, struct xen_vbd_set **result, xen_vdi vdi) bool -xen_vdi_get_virtual_size(xen_session *session, int64_t *result, xen_vdi vdi) +xen_vdi_get_crash_dumps(xen_session *session, struct xen_crashdump_set **result, xen_vdi vdi) { abstract_value param_values[] = { @@ -274,15 +271,16 @@ xen_vdi_get_virtual_size(xen_session *session, int64_t *result, xen_vdi vdi) .u.string_val = vdi } }; - abstract_type result_type = abstract_type_int; + abstract_type result_type = abstract_type_string_set; - XEN_CALL_("VDI.get_virtual_size"); + *result = NULL; + XEN_CALL_("VDI.get_crash_dumps"); return session->ok; } bool -xen_vdi_get_physical_utilisation(xen_session *session, int64_t *result, xen_vdi vdi) +xen_vdi_get_virtual_size(xen_session *session, int64_t *result, xen_vdi vdi) { abstract_value param_values[] = { @@ -292,13 +290,13 @@ xen_vdi_get_physical_utilisation(xen_session *session, int64_t *result, xen_vdi abstract_type result_type = abstract_type_int; - XEN_CALL_("VDI.get_physical_utilisation"); + XEN_CALL_("VDI.get_virtual_size"); return session->ok; } bool -xen_vdi_get_sector_size(xen_session *session, int64_t *result, xen_vdi vdi) +xen_vdi_get_physical_utilisation(xen_session *session, int64_t *result, xen_vdi vdi) { abstract_value param_values[] = { @@ -308,30 +306,13 @@ xen_vdi_get_sector_size(xen_session *session, int64_t *result, xen_vdi vdi) abstract_type result_type = abstract_type_int; - XEN_CALL_("VDI.get_sector_size"); - return session->ok; -} - - -bool -xen_vdi_get_type(xen_session *session, enum xen_vdi_type *result, xen_vdi vdi) -{ - abstract_value param_values[] = - { - { .type = &abstract_type_string, - .u.string_val = vdi } - }; - - abstract_type result_type = xen_vdi_type_abstract_type_; - char *result_str = NULL; - XEN_CALL_("VDI.get_type"); - *result = xen_vdi_type_from_string(session, result_str); + XEN_CALL_("VDI.get_physical_utilisation"); return session->ok; } bool -xen_vdi_get_parent(xen_session *session, xen_vdi *result, xen_vdi vdi) +xen_vdi_get_sector_size(xen_session *session, int64_t *result, xen_vdi vdi) { abstract_value param_values[] = { @@ -339,16 +320,15 @@ xen_vdi_get_parent(xen_session *session, xen_vdi *result, xen_vdi vdi) .u.string_val = vdi } }; - abstract_type result_type = abstract_type_string; + abstract_type result_type = abstract_type_int; - *result = NULL; - XEN_CALL_("VDI.get_parent"); + XEN_CALL_("VDI.get_sector_size"); return session->ok; } bool -xen_vdi_get_children(xen_session *session, struct xen_vdi_set **result, xen_vdi vdi) +xen_vdi_get_type(xen_session *session, enum xen_vdi_type *result, xen_vdi vdi) { abstract_value param_values[] = { @@ -356,10 +336,8 @@ xen_vdi_get_children(xen_session *session, struct xen_vdi_set **result, xen_vdi .u.string_val = vdi } }; - abstract_type result_type = abstract_type_string_set; - - *result = NULL; - XEN_CALL_("VDI.get_children"); + abstract_type result_type = xen_vdi_type_abstract_type_; + XEN_CALL_("VDI.get_type"); return session->ok; } |