aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxen/src
diff options
context:
space:
mode:
authorEwan Mellor <ewan@xensource.com>2007-03-10 21:48:22 +0000
committerEwan Mellor <ewan@xensource.com>2007-03-10 21:48:22 +0000
commitabc324d48f33530008131537e30ac5a344fbe9b6 (patch)
tree602204333541326a31820a0230357d853b77609b /tools/libxen/src
parentf7f8f5e39d769e89852d9bdf4a6650bc5d9d8056 (diff)
downloadxen-abc324d48f33530008131537e30ac5a344fbe9b6.tar.gz
xen-abc324d48f33530008131537e30ac5a344fbe9b6.tar.bz2
xen-abc324d48f33530008131537e30ac5a344fbe9b6.zip
Replace VM.platform_{std_VGA,serial,localtime,clock_offset,enable_audio} with
a single VM.platform String -> String Map. Propogate this change through to XendDomainInfo and image so that the backwards compatibility is handled by XendConfig. Make PCI_bus a read-write field. Added C bindings for these changes also. Signed-off-by: Ewan Mellor <ewan@xensource.com>
Diffstat (limited to 'tools/libxen/src')
-rw-r--r--tools/libxen/src/xen_vm.c136
1 files changed, 23 insertions, 113 deletions
diff --git a/tools/libxen/src/xen_vm.c b/tools/libxen/src/xen_vm.c
index 910c9f8b31..64f04a3f8f 100644
--- a/tools/libxen/src/xen_vm.c
+++ b/tools/libxen/src/xen_vm.c
@@ -145,21 +145,9 @@ static const struct_member xen_vm_record_struct_members[] =
{ .key = "HVM_boot_params",
.type = &abstract_type_string_string_map,
.offset = offsetof(xen_vm_record, hvm_boot_params) },
- { .key = "platform_std_VGA",
- .type = &abstract_type_bool,
- .offset = offsetof(xen_vm_record, platform_std_vga) },
- { .key = "platform_serial",
- .type = &abstract_type_string,
- .offset = offsetof(xen_vm_record, platform_serial) },
- { .key = "platform_localtime",
- .type = &abstract_type_bool,
- .offset = offsetof(xen_vm_record, platform_localtime) },
- { .key = "platform_clock_offset",
- .type = &abstract_type_bool,
- .offset = offsetof(xen_vm_record, platform_clock_offset) },
- { .key = "platform_enable_audio",
- .type = &abstract_type_bool,
- .offset = offsetof(xen_vm_record, platform_enable_audio) },
+ { .key = "platform",
+ .type = &abstract_type_string_string_map,
+ .offset = offsetof(xen_vm_record, platform) },
{ .key = "PCI_bus",
.type = &abstract_type_string,
.offset = offsetof(xen_vm_record, pci_bus) },
@@ -217,7 +205,7 @@ xen_vm_record_free(xen_vm_record *record)
free(record->pv_bootloader_args);
free(record->hvm_boot_policy);
xen_string_string_map_free(record->hvm_boot_params);
- free(record->platform_serial);
+ xen_string_string_map_free(record->platform);
free(record->pci_bus);
xen_string_string_map_free(record->other_config);
xen_vm_metrics_record_opt_free(record->metrics);
@@ -825,23 +813,7 @@ xen_vm_get_hvm_boot_params(xen_session *session, xen_string_string_map **result,
bool
-xen_vm_get_platform_std_vga(xen_session *session, bool *result, xen_vm vm)
-{
- abstract_value param_values[] =
- {
- { .type = &abstract_type_string,
- .u.string_val = vm }
- };
-
- abstract_type result_type = abstract_type_bool;
-
- XEN_CALL_("VM.get_platform_std_VGA");
- return session->ok;
-}
-
-
-bool
-xen_vm_get_platform_serial(xen_session *session, char **result, xen_vm vm)
+xen_vm_get_platform(xen_session *session, xen_string_string_map **result, xen_vm vm)
{
abstract_value param_values[] =
{
@@ -849,58 +821,10 @@ xen_vm_get_platform_serial(xen_session *session, char **result, xen_vm vm)
.u.string_val = vm }
};
- abstract_type result_type = abstract_type_string;
+ abstract_type result_type = abstract_type_string_string_map;
*result = NULL;
- XEN_CALL_("VM.get_platform_serial");
- return session->ok;
-}
-
-
-bool
-xen_vm_get_platform_localtime(xen_session *session, bool *result, xen_vm vm)
-{
- abstract_value param_values[] =
- {
- { .type = &abstract_type_string,
- .u.string_val = vm }
- };
-
- abstract_type result_type = abstract_type_bool;
-
- XEN_CALL_("VM.get_platform_localtime");
- return session->ok;
-}
-
-
-bool
-xen_vm_get_platform_clock_offset(xen_session *session, bool *result, xen_vm vm)
-{
- abstract_value param_values[] =
- {
- { .type = &abstract_type_string,
- .u.string_val = vm }
- };
-
- abstract_type result_type = abstract_type_bool;
-
- XEN_CALL_("VM.get_platform_clock_offset");
- return session->ok;
-}
-
-
-bool
-xen_vm_get_platform_enable_audio(xen_session *session, bool *result, xen_vm vm)
-{
- abstract_value param_values[] =
- {
- { .type = &abstract_type_string,
- .u.string_val = vm }
- };
-
- abstract_type result_type = abstract_type_bool;
-
- XEN_CALL_("VM.get_platform_enable_audio");
+ XEN_CALL_("VM.get_platform");
return session->ok;
}
@@ -1442,81 +1366,67 @@ xen_vm_remove_from_hvm_boot_params(xen_session *session, xen_vm vm, char *key)
bool
-xen_vm_set_platform_std_vga(xen_session *session, xen_vm vm, bool std_vga)
+xen_vm_set_platform(xen_session *session, xen_vm vm, xen_string_string_map *platform)
{
abstract_value param_values[] =
{
{ .type = &abstract_type_string,
.u.string_val = vm },
- { .type = &abstract_type_bool,
- .u.bool_val = std_vga }
+ { .type = &abstract_type_string_string_map,
+ .u.set_val = (arbitrary_set *)platform }
};
- xen_call_(session, "VM.set_platform_std_VGA", param_values, 2, NULL, NULL);
+ xen_call_(session, "VM.set_platform", param_values, 2, NULL, NULL);
return session->ok;
}
bool
-xen_vm_set_platform_serial(xen_session *session, xen_vm vm, char *serial)
+xen_vm_add_to_platform(xen_session *session, xen_vm vm, char *key, char *value)
{
abstract_value param_values[] =
{
{ .type = &abstract_type_string,
.u.string_val = vm },
{ .type = &abstract_type_string,
- .u.string_val = serial }
- };
-
- xen_call_(session, "VM.set_platform_serial", param_values, 2, NULL, NULL);
- return session->ok;
-}
-
-
-bool
-xen_vm_set_platform_localtime(xen_session *session, xen_vm vm, bool localtime)
-{
- abstract_value param_values[] =
- {
+ .u.string_val = key },
{ .type = &abstract_type_string,
- .u.string_val = vm },
- { .type = &abstract_type_bool,
- .u.bool_val = localtime }
+ .u.string_val = value }
};
- xen_call_(session, "VM.set_platform_localtime", param_values, 2, NULL, NULL);
+ xen_call_(session, "VM.add_to_platform", param_values, 3, NULL, NULL);
return session->ok;
}
bool
-xen_vm_set_platform_clock_offset(xen_session *session, xen_vm vm, bool clock_offset)
+xen_vm_remove_from_platform(xen_session *session, xen_vm vm, char *key)
{
abstract_value param_values[] =
{
{ .type = &abstract_type_string,
.u.string_val = vm },
- { .type = &abstract_type_bool,
- .u.bool_val = clock_offset }
+ { .type = &abstract_type_string,
+ .u.string_val = key }
};
- xen_call_(session, "VM.set_platform_clock_offset", param_values, 2, NULL, NULL);
+ xen_call_(session, "VM.remove_from_platform", param_values, 2, NULL, NULL);
return session->ok;
}
bool
-xen_vm_set_platform_enable_audio(xen_session *session, xen_vm vm, bool enable_audio)
+xen_vm_set_pci_bus(xen_session *session, xen_vm vm, char *pci_bus)
{
abstract_value param_values[] =
{
{ .type = &abstract_type_string,
.u.string_val = vm },
- { .type = &abstract_type_bool,
- .u.bool_val = enable_audio }
+ { .type = &abstract_type_string,
+ .u.string_val = pci_bus }
};
- xen_call_(session, "VM.set_platform_enable_audio", param_values, 2, NULL, NULL);
+ xen_call_(session, "VM.set_PCI_bus", param_values, 2, NULL, NULL);
return session->ok;
}