From: Ewan Mellor Date: Thu, 9 Nov 2006 11:37:35 +0000 (+0000) Subject: Added a destroy method for each object. Based upon the code for VM.destroy X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15567^2~19 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=b17549f692ad803ddfbe38373b396620ae0772bb;p=xen.git Added a destroy method for each object. Based upon the code for VM.destroy by Jim Fehlig. Signed-off-by: Ewan Mellor --- diff --git a/tools/libxen/include/xen_host.h b/tools/libxen/include/xen_host.h index 69581574a0..2264b603e4 100644 --- a/tools/libxen/include/xen_host.h +++ b/tools/libxen/include/xen_host.h @@ -174,6 +174,13 @@ extern bool xen_host_create(xen_session *session, xen_host *result, xen_host_record *record); +/** + * Destroy the specified host instance. + */ +extern bool +xen_host_destroy(xen_session *session, xen_host host); + + /** * Get all the host instances with the given label. */ diff --git a/tools/libxen/include/xen_host_cpu.h b/tools/libxen/include/xen_host_cpu.h index 24913a8586..e0d4ee0c4b 100644 --- a/tools/libxen/include/xen_host_cpu.h +++ b/tools/libxen/include/xen_host_cpu.h @@ -173,6 +173,13 @@ extern bool xen_host_cpu_create(xen_session *session, xen_host_cpu *result, xen_host_cpu_record *record); +/** + * Destroy the specified host_cpu instance. + */ +extern bool +xen_host_cpu_destroy(xen_session *session, xen_host_cpu host_cpu); + + /** * Get the uuid field of the given host_cpu. */ diff --git a/tools/libxen/include/xen_network.h b/tools/libxen/include/xen_network.h index 98a63d5f9a..a25babe492 100644 --- a/tools/libxen/include/xen_network.h +++ b/tools/libxen/include/xen_network.h @@ -172,6 +172,13 @@ extern bool xen_network_create(xen_session *session, xen_network *result, xen_network_record *record); +/** + * Destroy the specified network instance. + */ +extern bool +xen_network_destroy(xen_session *session, xen_network network); + + /** * Get all the network instances with the given label. */ diff --git a/tools/libxen/include/xen_pif.h b/tools/libxen/include/xen_pif.h index 8e7e1989cb..143ba5709a 100644 --- a/tools/libxen/include/xen_pif.h +++ b/tools/libxen/include/xen_pif.h @@ -175,6 +175,13 @@ extern bool xen_pif_create(xen_session *session, xen_pif *result, xen_pif_record *record); +/** + * Destroy the specified PIF instance. + */ +extern bool +xen_pif_destroy(xen_session *session, xen_pif pif); + + /** * Get the uuid field of the given PIF. */ diff --git a/tools/libxen/include/xen_sr.h b/tools/libxen/include/xen_sr.h index c99f43f922..8359b5737b 100644 --- a/tools/libxen/include/xen_sr.h +++ b/tools/libxen/include/xen_sr.h @@ -173,6 +173,13 @@ extern bool xen_sr_create(xen_session *session, xen_sr *result, xen_sr_record *record); +/** + * Destroy the specified SR instance. + */ +extern bool +xen_sr_destroy(xen_session *session, xen_sr sr); + + /** * Get all the SR instances with the given label. */ diff --git a/tools/libxen/include/xen_user.h b/tools/libxen/include/xen_user.h index 67cfe0caa4..b426825585 100644 --- a/tools/libxen/include/xen_user.h +++ b/tools/libxen/include/xen_user.h @@ -166,6 +166,13 @@ extern bool xen_user_create(xen_session *session, xen_user *result, xen_user_record *record); +/** + * Destroy the specified user instance. + */ +extern bool +xen_user_destroy(xen_session *session, xen_user user); + + /** * Get the uuid field of the given user. */ diff --git a/tools/libxen/include/xen_vbd.h b/tools/libxen/include/xen_vbd.h index 67f9c87066..2b9d8b05eb 100644 --- a/tools/libxen/include/xen_vbd.h +++ b/tools/libxen/include/xen_vbd.h @@ -176,6 +176,13 @@ extern bool xen_vbd_create(xen_session *session, xen_vbd *result, xen_vbd_record *record); +/** + * Destroy the specified VBD instance. + */ +extern bool +xen_vbd_destroy(xen_session *session, xen_vbd vbd); + + /** * Get the uuid field of the given VBD. */ diff --git a/tools/libxen/include/xen_vdi.h b/tools/libxen/include/xen_vdi.h index 92298c9ef6..ba20f755c6 100644 --- a/tools/libxen/include/xen_vdi.h +++ b/tools/libxen/include/xen_vdi.h @@ -179,6 +179,13 @@ extern bool xen_vdi_create(xen_session *session, xen_vdi *result, xen_vdi_record *record); +/** + * Destroy the specified VDI instance. + */ +extern bool +xen_vdi_destroy(xen_session *session, xen_vdi vdi); + + /** * Get all the VDI instances with the given label. */ diff --git a/tools/libxen/include/xen_vif.h b/tools/libxen/include/xen_vif.h index d6022fa201..8930a7849f 100644 --- a/tools/libxen/include/xen_vif.h +++ b/tools/libxen/include/xen_vif.h @@ -176,6 +176,13 @@ extern bool xen_vif_create(xen_session *session, xen_vif *result, xen_vif_record *record); +/** + * Destroy the specified VIF instance. + */ +extern bool +xen_vif_destroy(xen_session *session, xen_vif vif); + + /** * Get the uuid field of the given VIF. */ diff --git a/tools/libxen/include/xen_vm.h b/tools/libxen/include/xen_vm.h index 1ff893b86f..f589a3eea5 100644 --- a/tools/libxen/include/xen_vm.h +++ b/tools/libxen/include/xen_vm.h @@ -216,6 +216,15 @@ extern bool xen_vm_create(xen_session *session, xen_vm *result, xen_vm_record *record); +/** + * Destroy the specified VM. The VM is completely removed from the + * system. This function can only be called when the VM is in the Halted + * State. + */ +extern bool +xen_vm_destroy(xen_session *session, xen_vm vm); + + /** * Get all the VM instances with the given label. */ diff --git a/tools/libxen/include/xen_vtpm.h b/tools/libxen/include/xen_vtpm.h index e752fa9e8d..f55d74217b 100644 --- a/tools/libxen/include/xen_vtpm.h +++ b/tools/libxen/include/xen_vtpm.h @@ -171,6 +171,13 @@ extern bool xen_vtpm_create(xen_session *session, xen_vtpm *result, xen_vtpm_record *record); +/** + * Destroy the specified VTPM instance. + */ +extern bool +xen_vtpm_destroy(xen_session *session, xen_vtpm vtpm); + + /** * Get the uuid field of the given VTPM. */ diff --git a/tools/libxen/src/xen_host.c b/tools/libxen/src/xen_host.c index 99c6191649..931a0c44ce 100644 --- a/tools/libxen/src/xen_host.c +++ b/tools/libxen/src/xen_host.c @@ -149,6 +149,20 @@ xen_host_create(xen_session *session, xen_host *result, xen_host_record *record) } +bool +xen_host_destroy(xen_session *session, xen_host host) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = host } + }; + + xen_call_(session, "host.destroy", param_values, 1, NULL, NULL); + return session->ok; +} + + bool xen_host_get_by_name_label(xen_session *session, struct xen_host_set **result, char *label) { diff --git a/tools/libxen/src/xen_host_cpu.c b/tools/libxen/src/xen_host_cpu.c index 678137071c..ff73dcd9b9 100644 --- a/tools/libxen/src/xen_host_cpu.c +++ b/tools/libxen/src/xen_host_cpu.c @@ -149,6 +149,20 @@ xen_host_cpu_create(xen_session *session, xen_host_cpu *result, xen_host_cpu_rec } +bool +xen_host_cpu_destroy(xen_session *session, xen_host_cpu host_cpu) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = host_cpu } + }; + + xen_call_(session, "host_cpu.destroy", param_values, 1, NULL, NULL); + return session->ok; +} + + bool xen_host_cpu_get_host(xen_session *session, xen_host *result, xen_host_cpu host_cpu) { diff --git a/tools/libxen/src/xen_network.c b/tools/libxen/src/xen_network.c index 771d8e2cd4..4c56e6e41d 100644 --- a/tools/libxen/src/xen_network.c +++ b/tools/libxen/src/xen_network.c @@ -147,6 +147,20 @@ xen_network_create(xen_session *session, xen_network *result, xen_network_record } +bool +xen_network_destroy(xen_session *session, xen_network network) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = network } + }; + + xen_call_(session, "network.destroy", param_values, 1, NULL, NULL); + return session->ok; +} + + bool xen_network_get_by_name_label(xen_session *session, struct xen_network_set **result, char *label) { diff --git a/tools/libxen/src/xen_pif.c b/tools/libxen/src/xen_pif.c index 3c12ab472a..b3edd91e6d 100644 --- a/tools/libxen/src/xen_pif.c +++ b/tools/libxen/src/xen_pif.c @@ -152,6 +152,20 @@ xen_pif_create(xen_session *session, xen_pif *result, xen_pif_record *record) } +bool +xen_pif_destroy(xen_session *session, xen_pif pif) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = pif } + }; + + xen_call_(session, "PIF.destroy", param_values, 1, NULL, NULL); + return session->ok; +} + + bool xen_pif_get_name(xen_session *session, char **result, xen_pif pif) { diff --git a/tools/libxen/src/xen_sr.c b/tools/libxen/src/xen_sr.c index 3f4c2f946f..3c4ffb16de 100644 --- a/tools/libxen/src/xen_sr.c +++ b/tools/libxen/src/xen_sr.c @@ -151,6 +151,20 @@ xen_sr_create(xen_session *session, xen_sr *result, xen_sr_record *record) } +bool +xen_sr_destroy(xen_session *session, xen_sr sr) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = sr } + }; + + xen_call_(session, "SR.destroy", param_values, 1, NULL, NULL); + return session->ok; +} + + bool xen_sr_get_by_name_label(xen_session *session, struct xen_sr_set **result, char *label) { diff --git a/tools/libxen/src/xen_user.c b/tools/libxen/src/xen_user.c index da31391f83..35b80e2f66 100644 --- a/tools/libxen/src/xen_user.c +++ b/tools/libxen/src/xen_user.c @@ -129,6 +129,20 @@ xen_user_create(xen_session *session, xen_user *result, xen_user_record *record) } +bool +xen_user_destroy(xen_session *session, xen_user user) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = user } + }; + + xen_call_(session, "user.destroy", param_values, 1, NULL, NULL); + return session->ok; +} + + bool xen_user_get_short_name(xen_session *session, char **result, xen_user user) { diff --git a/tools/libxen/src/xen_vbd.c b/tools/libxen/src/xen_vbd.c index 20353cb28c..c49ecf236a 100644 --- a/tools/libxen/src/xen_vbd.c +++ b/tools/libxen/src/xen_vbd.c @@ -152,6 +152,20 @@ xen_vbd_create(xen_session *session, xen_vbd *result, xen_vbd_record *record) } +bool +xen_vbd_destroy(xen_session *session, xen_vbd vbd) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = vbd } + }; + + xen_call_(session, "VBD.destroy", param_values, 1, NULL, NULL); + return session->ok; +} + + bool xen_vbd_get_vm(xen_session *session, xen_vm *result, xen_vbd vbd) { diff --git a/tools/libxen/src/xen_vdi.c b/tools/libxen/src/xen_vdi.c index 15f4608911..a8d157d232 100644 --- a/tools/libxen/src/xen_vdi.c +++ b/tools/libxen/src/xen_vdi.c @@ -166,6 +166,20 @@ xen_vdi_create(xen_session *session, xen_vdi *result, xen_vdi_record *record) } +bool +xen_vdi_destroy(xen_session *session, xen_vdi vdi) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = vdi } + }; + + xen_call_(session, "VDI.destroy", param_values, 1, NULL, NULL); + return session->ok; +} + + bool xen_vdi_get_by_name_label(xen_session *session, struct xen_vdi_set **result, char *label) { diff --git a/tools/libxen/src/xen_vif.c b/tools/libxen/src/xen_vif.c index c639e4ab1f..ce28626150 100644 --- a/tools/libxen/src/xen_vif.c +++ b/tools/libxen/src/xen_vif.c @@ -156,6 +156,20 @@ xen_vif_create(xen_session *session, xen_vif *result, xen_vif_record *record) } +bool +xen_vif_destroy(xen_session *session, xen_vif vif) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = vif } + }; + + xen_call_(session, "VIF.destroy", param_values, 1, NULL, NULL); + return session->ok; +} + + bool xen_vif_get_name(xen_session *session, char **result, xen_vif vif) { diff --git a/tools/libxen/src/xen_vm.c b/tools/libxen/src/xen_vm.c index 2e54002073..cd0271c71c 100644 --- a/tools/libxen/src/xen_vm.c +++ b/tools/libxen/src/xen_vm.c @@ -279,6 +279,20 @@ xen_vm_create(xen_session *session, xen_vm *result, xen_vm_record *record) } +bool +xen_vm_destroy(xen_session *session, xen_vm vm) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = vm } + }; + + xen_call_(session, "VM.destroy", param_values, 1, NULL, NULL); + return session->ok; +} + + bool xen_vm_get_by_name_label(xen_session *session, struct xen_vm_set **result, char *label) { @@ -1580,17 +1594,3 @@ xen_vm_get_uuid(xen_session *session, char **result, xen_vm vm) *result = session->ok ? xen_strdup_((char *)vm) : NULL; return session->ok; } - - -bool -xen_vm_destroy(xen_session *session, xen_vm vm) -{ - abstract_value param_values[] = - { - { .type = &abstract_type_string, - .u.string_val = vm } - }; - - xen_call_(session, "VM.destroy", param_values, 1, NULL, NULL); - return session->ok; -} diff --git a/tools/libxen/src/xen_vtpm.c b/tools/libxen/src/xen_vtpm.c index 12a811d8d7..eb8156a0a3 100644 --- a/tools/libxen/src/xen_vtpm.c +++ b/tools/libxen/src/xen_vtpm.c @@ -138,6 +138,20 @@ xen_vtpm_create(xen_session *session, xen_vtpm *result, xen_vtpm_record *record) } +bool +xen_vtpm_destroy(xen_session *session, xen_vtpm vtpm) +{ + abstract_value param_values[] = + { + { .type = &abstract_type_string, + .u.string_val = vtpm } + }; + + xen_call_(session, "VTPM.destroy", param_values, 1, NULL, NULL); + return session->ok; +} + + bool xen_vtpm_get_vm(xen_session *session, xen_vm *result, xen_vtpm vtpm) {