aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxen/src/xen_vdi.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/libxen/src/xen_vdi.c')
-rw-r--r--tools/libxen/src/xen_vdi.c60
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;
}