📄 xen_vm.c
字号:
{ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_string, .u.string_val = bootloader } }; xen_call_(session, "VM.set_PV_bootloader", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_set_pv_kernel(xen_session *session, xen_vm vm, char *kernel){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_string, .u.string_val = kernel } }; xen_call_(session, "VM.set_PV_kernel", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_set_pv_ramdisk(xen_session *session, xen_vm vm, char *ramdisk){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_string, .u.string_val = ramdisk } }; xen_call_(session, "VM.set_PV_ramdisk", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_set_pv_args(xen_session *session, xen_vm vm, char *args){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_string, .u.string_val = args } }; xen_call_(session, "VM.set_PV_args", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_set_pv_bootloader_args(xen_session *session, xen_vm vm, char *bootloader_args){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_string, .u.string_val = bootloader_args } }; xen_call_(session, "VM.set_PV_bootloader_args", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_set_hvm_boot_policy(xen_session *session, xen_vm vm, char *boot_policy){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_string, .u.string_val = boot_policy } }; xen_call_(session, "VM.set_HVM_boot_policy", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_set_hvm_boot_params(xen_session *session, xen_vm vm, xen_string_string_map *boot_params){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_string_string_map, .u.set_val = (arbitrary_set *)boot_params } }; xen_call_(session, "VM.set_HVM_boot_params", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_add_to_hvm_boot_params(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 = key }, { .type = &abstract_type_string, .u.string_val = value } }; xen_call_(session, "VM.add_to_HVM_boot_params", param_values, 3, NULL, NULL); return session->ok;}boolxen_vm_remove_from_hvm_boot_params(xen_session *session, xen_vm vm, char *key){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_string, .u.string_val = key } }; xen_call_(session, "VM.remove_from_HVM_boot_params", param_values, 2, NULL, NULL); return session->ok;}boolxen_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_string_string_map, .u.set_val = (arbitrary_set *)platform } }; xen_call_(session, "VM.set_platform", param_values, 2, NULL, NULL); return session->ok;}boolxen_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 = key }, { .type = &abstract_type_string, .u.string_val = value } }; xen_call_(session, "VM.add_to_platform", param_values, 3, NULL, NULL); return session->ok;}boolxen_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_string, .u.string_val = key } }; xen_call_(session, "VM.remove_from_platform", param_values, 2, NULL, NULL); return session->ok;}boolxen_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_string, .u.string_val = pci_bus } }; xen_call_(session, "VM.set_PCI_bus", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_set_other_config(xen_session *session, xen_vm vm, xen_string_string_map *other_config){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_string_string_map, .u.set_val = (arbitrary_set *)other_config } }; xen_call_(session, "VM.set_other_config", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_add_to_other_config(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 = key }, { .type = &abstract_type_string, .u.string_val = value } }; xen_call_(session, "VM.add_to_other_config", param_values, 3, NULL, NULL); return session->ok;}boolxen_vm_remove_from_other_config(xen_session *session, xen_vm vm, char *key){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_string, .u.string_val = key } }; xen_call_(session, "VM.remove_from_other_config", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_clone(xen_session *session, xen_vm *result, xen_vm vm, char *new_name){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_string, .u.string_val = new_name } }; abstract_type result_type = abstract_type_string; *result = NULL; XEN_CALL_("VM.clone"); return session->ok;}boolxen_vm_start(xen_session *session, xen_vm vm, bool start_paused){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_bool, .u.bool_val = start_paused } }; xen_call_(session, "VM.start", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_pause(xen_session *session, xen_vm vm){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm } }; xen_call_(session, "VM.pause", param_values, 1, NULL, NULL); return session->ok;}boolxen_vm_unpause(xen_session *session, xen_vm vm){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm } }; xen_call_(session, "VM.unpause", param_values, 1, NULL, NULL); return session->ok;}boolxen_vm_clean_shutdown(xen_session *session, xen_vm vm){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm } }; xen_call_(session, "VM.clean_shutdown", param_values, 1, NULL, NULL); return session->ok;}boolxen_vm_clean_reboot(xen_session *session, xen_vm vm){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm } }; xen_call_(session, "VM.clean_reboot", param_values, 1, NULL, NULL); return session->ok;}boolxen_vm_hard_shutdown(xen_session *session, xen_vm vm){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm } }; xen_call_(session, "VM.hard_shutdown", param_values, 1, NULL, NULL); return session->ok;}boolxen_vm_hard_reboot(xen_session *session, xen_vm vm){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm } }; xen_call_(session, "VM.hard_reboot", param_values, 1, NULL, NULL); return session->ok;}boolxen_vm_suspend(xen_session *session, xen_vm vm){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm } }; xen_call_(session, "VM.suspend", param_values, 1, NULL, NULL); return session->ok;}boolxen_vm_resume(xen_session *session, xen_vm vm, bool start_paused){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_bool, .u.bool_val = start_paused } }; xen_call_(session, "VM.resume", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_set_vcpus_number_live(xen_session *session, xen_vm self, int64_t nvcpu){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = self }, { .type = &abstract_type_int, .u.int_val = nvcpu } }; xen_call_(session, "VM.set_VCPUs_number_live", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_add_to_vcpus_params_live(xen_session *session, xen_vm self, char *key, char *value){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = self }, { .type = &abstract_type_string, .u.string_val = key }, { .type = &abstract_type_string, .u.string_val = value } }; xen_call_(session, "VM.add_to_VCPUs_params_live", param_values, 3, NULL, NULL); return session->ok;}boolxen_vm_set_memory_dynamic_max_live(xen_session *session, xen_vm self, int64_t max){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = self }, { .type = &abstract_type_int, .u.int_val = max } }; xen_call_(session, "VM.set_memory_dynamic_max_live", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_set_memory_dynamic_min_live(xen_session *session, xen_vm self, int64_t min){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = self }, { .type = &abstract_type_int, .u.int_val = min } }; xen_call_(session, "VM.set_memory_dynamic_min_live", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_send_sysrq(xen_session *session, xen_vm vm, char *key){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_string, .u.string_val = key } }; xen_call_(session, "VM.send_sysrq", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_send_trigger(xen_session *session, xen_vm vm, char *trigger){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_string, .u.string_val = trigger } }; xen_call_(session, "VM.send_trigger", param_values, 2, NULL, NULL); return session->ok;}boolxen_vm_migrate(xen_session *session, xen_vm vm, char *dest, bool live, xen_string_string_map *options){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_string, .u.string_val = dest }, { .type = &abstract_type_bool, .u.bool_val = live }, { .type = &abstract_type_string_string_map, .u.set_val = (arbitrary_set *)options } }; xen_call_(session, "VM.migrate", param_values, 4, NULL, NULL); return session->ok;}boolxen_vm_get_all(xen_session *session, struct xen_vm_set **result){ abstract_type result_type = abstract_type_string_set; *result = NULL; xen_call_(session, "VM.get_all", NULL, 0, &result_type, result); return session->ok;}boolxen_vm_get_uuid(xen_session *session, char **result, xen_vm vm){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm } }; abstract_type result_type = abstract_type_string; *result = NULL; XEN_CALL_("VM.get_uuid"); return session->ok;}boolxen_vm_set_security_label(xen_session *session, int64_t *result, xen_vm vm, char *label, char *oldlabel){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, { .type = &abstract_type_string, .u.string_val = label }, { .type = &abstract_type_string, .u.string_val = oldlabel }, }; abstract_type result_type = abstract_type_int; *result = 0; XEN_CALL_("VM.set_security_label"); return session->ok;}boolxen_vm_get_security_label(xen_session *session, char **result, xen_vm vm){ abstract_value param_values[] = { { .type = &abstract_type_string, .u.string_val = vm }, }; abstract_type result_type = abstract_type_string; *result = NULL; XEN_CALL_("VM.get_security_label"); return session->ok;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -