diff options
author | Ewan Mellor <ewan@xensource.com> | 2007-03-10 21:48:22 +0000 |
---|---|---|
committer | Ewan Mellor <ewan@xensource.com> | 2007-03-10 21:48:22 +0000 |
commit | abc324d48f33530008131537e30ac5a344fbe9b6 (patch) | |
tree | 602204333541326a31820a0230357d853b77609b /tools/libxen/src | |
parent | f7f8f5e39d769e89852d9bdf4a6650bc5d9d8056 (diff) | |
download | xen-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.c | 136 |
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; } |