|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 09/13] python: remove domain handling related libxc python bindings
Mostly for historical reasons Xen includes Python bindings for libxc.
They have been used by xm/xend in the past but nowadays there is no
user of domain handling related python binding left. Remove them.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
---
tools/python/xen/lowlevel/xc/xc.c | 358 --------------------------------------
1 file changed, 358 deletions(-)
diff --git a/tools/python/xen/lowlevel/xc/xc.c
b/tools/python/xen/lowlevel/xc/xc.c
index 02f1694..5146a2d 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -36,9 +36,6 @@ typedef struct {
} XcObject;
-static PyObject *dom_op(XcObject *self, PyObject *args,
- int (*fn)(xc_interface *, uint32_t));
-
static PyObject *pyxc_error_to_exception(xc_interface *xch)
{
PyObject *pyerr;
@@ -78,136 +75,6 @@ static PyObject *pyxc_error_to_exception(xc_interface *xch)
return NULL;
}
-static PyObject *pyxc_domain_dumpcore(XcObject *self, PyObject *args)
-{
- uint32_t dom;
- char *corefile;
-
- if ( !PyArg_ParseTuple(args, "is", &dom, &corefile) )
- return NULL;
-
- if ( (corefile == NULL) || (corefile[0] == '\0') )
- return NULL;
-
- if ( xc_domain_dumpcore(self->xc_handle, dom, corefile) != 0 )
- return pyxc_error_to_exception(self->xc_handle);
-
- Py_INCREF(zero);
- return zero;
-}
-
-static PyObject *pyxc_domain_create(XcObject *self,
- PyObject *args,
- PyObject *kwds)
-{
- uint32_t dom = 0, ssidref = 0, flags = 0, target = 0;
- int ret, i;
- PyObject *pyhandle = NULL;
- xen_domain_handle_t handle = {
- 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef,
- 0xde, 0xad, 0xbe, 0xef, 0xde, 0xad, 0xbe, 0xef };
-
- static char *kwd_list[] = { "domid", "ssidref", "handle", "flags",
"target", NULL };
-
- if ( !PyArg_ParseTupleAndKeywords(args, kwds, "|iiOii", kwd_list,
- &dom, &ssidref, &pyhandle, &flags,
&target))
- return NULL;
- if ( pyhandle != NULL )
- {
- if ( !PyList_Check(pyhandle) ||
- (PyList_Size(pyhandle) != sizeof(xen_domain_handle_t)) )
- goto out_exception;
-
- for ( i = 0; i < sizeof(xen_domain_handle_t); i++ )
- {
- PyObject *p = PyList_GetItem(pyhandle, i);
- if ( !PyInt_Check(p) )
- goto out_exception;
- handle[i] = (uint8_t)PyInt_AsLong(p);
- }
- }
-
- if ( (ret = xc_domain_create(self->xc_handle, ssidref,
- handle, flags, &dom)) < 0 )
- return pyxc_error_to_exception(self->xc_handle);
-
- if ( target )
- if ( (ret = xc_domain_set_target(self->xc_handle, dom, target)) < 0 )
- return pyxc_error_to_exception(self->xc_handle);
-
-
- return PyInt_FromLong(dom);
-
-out_exception:
- errno = EINVAL;
- PyErr_SetFromErrno(xc_error_obj);
- return NULL;
-}
-
-static PyObject *pyxc_domain_max_vcpus(XcObject *self, PyObject *args)
-{
- uint32_t dom, max;
-
- if (!PyArg_ParseTuple(args, "ii", &dom, &max))
- return NULL;
-
- if (xc_domain_max_vcpus(self->xc_handle, dom, max) != 0)
- return pyxc_error_to_exception(self->xc_handle);
-
- Py_INCREF(zero);
- return zero;
-}
-
-static PyObject *pyxc_domain_pause(XcObject *self, PyObject *args)
-{
- return dom_op(self, args, xc_domain_pause);
-}
-
-static PyObject *pyxc_domain_unpause(XcObject *self, PyObject *args)
-{
- return dom_op(self, args, xc_domain_unpause);
-}
-
-static PyObject *pyxc_domain_destroy_hook(XcObject *self, PyObject *args)
-{
- Py_INCREF(zero);
- return zero;
-}
-
-static PyObject *pyxc_domain_destroy(XcObject *self, PyObject *args)
-{
- return dom_op(self, args, xc_domain_destroy);
-}
-
-static PyObject *pyxc_domain_shutdown(XcObject *self, PyObject *args)
-{
- uint32_t dom, reason;
-
- if ( !PyArg_ParseTuple(args, "ii", &dom, &reason) )
- return NULL;
-
- if ( xc_domain_shutdown(self->xc_handle, dom, reason) != 0 )
- return pyxc_error_to_exception(self->xc_handle);
-
- Py_INCREF(zero);
- return zero;
-}
-
-static PyObject *pyxc_domain_resume(XcObject *self, PyObject *args)
-{
- uint32_t dom;
- int fast;
-
- if ( !PyArg_ParseTuple(args, "ii", &dom, &fast) )
- return NULL;
-
- if ( xc_domain_resume(self->xc_handle, dom, fast) != 0 )
- return pyxc_error_to_exception(self->xc_handle);
-
- Py_INCREF(zero);
- return zero;
-}
-
static PyObject *pyxc_vcpu_setaffinity(XcObject *self,
PyObject *args,
PyObject *kwds)
@@ -259,42 +126,6 @@ static PyObject *pyxc_vcpu_setaffinity(XcObject *self,
return zero;
}
-static PyObject *pyxc_domain_sethandle(XcObject *self, PyObject *args)
-{
- int i;
- uint32_t dom;
- PyObject *pyhandle;
- xen_domain_handle_t handle;
-
- if (!PyArg_ParseTuple(args, "iO", &dom, &pyhandle))
- return NULL;
-
- if ( !PyList_Check(pyhandle) ||
- (PyList_Size(pyhandle) != sizeof(xen_domain_handle_t)) )
- {
- goto out_exception;
- }
-
- for ( i = 0; i < sizeof(xen_domain_handle_t); i++ )
- {
- PyObject *p = PyList_GetItem(pyhandle, i);
- if ( !PyInt_Check(p) )
- goto out_exception;
- handle[i] = (uint8_t)PyInt_AsLong(p);
- }
-
- if (xc_domain_sethandle(self->xc_handle, dom, handle) < 0)
- return pyxc_error_to_exception(self->xc_handle);
-
- Py_INCREF(zero);
- return zero;
-
-out_exception:
- PyErr_SetFromErrno(xc_error_obj);
- return NULL;
-}
-
-
static PyObject *pyxc_domain_getinfo(XcObject *self,
PyObject *args,
PyObject *kwds)
@@ -466,40 +297,6 @@ static PyObject *pyxc_hvm_param_set(XcObject *self,
return zero;
}
-#if defined(__i386__) || defined(__x86_64__)
-static PyObject *pyxc_dom_set_machine_address_size(XcObject *self,
- PyObject *args,
- PyObject *kwds)
-{
- uint32_t dom, width;
-
- if (!PyArg_ParseTuple(args, "ii", &dom, &width))
- return NULL;
-
- if (xc_domain_set_machine_address_size(self->xc_handle, dom, width) != 0)
- return pyxc_error_to_exception(self->xc_handle);
-
- Py_INCREF(zero);
- return zero;
-}
-
-static PyObject *pyxc_dom_suppress_spurious_page_faults(XcObject *self,
- PyObject *args,
- PyObject *kwds)
-{
- uint32_t dom;
-
- if (!PyArg_ParseTuple(args, "i", &dom))
- return NULL;
-
- if (xc_domain_suppress_spurious_page_faults(self->xc_handle, dom) != 0)
- return pyxc_error_to_exception(self->xc_handle);
-
- Py_INCREF(zero);
- return zero;
-}
-#endif /* __i386__ || __x86_64__ */
-
static PyObject *pyxc_gnttab_hvm_seed(XcObject *self,
PyObject *args,
PyObject *kwds)
@@ -1083,40 +880,6 @@ static PyObject *pyxc_domain_set_tsc_info(XcObject *self,
PyObject *args)
return zero;
}
-static PyObject *pyxc_domain_disable_migrate(XcObject *self, PyObject *args)
-{
- uint32_t dom;
-
- if (!PyArg_ParseTuple(args, "i", &dom))
- return NULL;
-
- if (xc_domain_disable_migrate(self->xc_handle, dom) != 0)
- return pyxc_error_to_exception(self->xc_handle);
-
- Py_INCREF(zero);
- return zero;
-}
-
-static PyObject *pyxc_domain_send_trigger(XcObject *self,
- PyObject *args,
- PyObject *kwds)
-{
- uint32_t dom;
- int trigger, vcpu = 0;
-
- static char *kwd_list[] = { "domid", "trigger", "vcpu", NULL };
-
- if ( !PyArg_ParseTupleAndKeywords(args, kwds, "ii|i", kwd_list,
- &dom, &trigger, &vcpu) )
- return NULL;
-
- if (xc_domain_send_trigger(self->xc_handle, dom, trigger, vcpu) != 0)
- return pyxc_error_to_exception(self->xc_handle);
-
- Py_INCREF(zero);
- return zero;
-}
-
static PyObject *pyxc_send_debug_keys(XcObject *self,
PyObject *args,
PyObject *kwds)
@@ -1135,21 +898,6 @@ static PyObject *pyxc_send_debug_keys(XcObject *self,
return zero;
}
-static PyObject *dom_op(XcObject *self, PyObject *args,
- int (*fn)(xc_interface*, uint32_t))
-{
- uint32_t dom;
-
- if (!PyArg_ParseTuple(args, "i", &dom))
- return NULL;
-
- if (fn(self->xc_handle, dom) != 0)
- return pyxc_error_to_exception(self->xc_handle);
-
- Py_INCREF(zero);
- return zero;
-}
-
static PyObject *pyxc_tmem_control(XcObject *self,
PyObject *args,
PyObject *kwds)
@@ -1234,73 +982,6 @@ static PyObject *pyxc_dom_set_memshr(XcObject *self,
PyObject *args)
}
static PyMethodDef pyxc_methods[] = {
- { "domain_create",
- (PyCFunction)pyxc_domain_create,
- METH_VARARGS | METH_KEYWORDS, "\n"
- "Create a new domain.\n"
- " dom [int, 0]: Domain identifier to use (allocated if
zero).\n"
- "Returns: [int] new domain identifier; -1 on error.\n" },
-
- { "domain_max_vcpus",
- (PyCFunction)pyxc_domain_max_vcpus,
- METH_VARARGS, "\n"
- "Set the maximum number of VCPUs a domain may create.\n"
- " dom [int, 0]: Domain identifier to use.\n"
- " max [int, 0]: New maximum number of VCPUs in domain.\n"
- "Returns: [int] 0 on success; -1 on error.\n" },
-
- { "domain_dumpcore",
- (PyCFunction)pyxc_domain_dumpcore,
- METH_VARARGS, "\n"
- "Dump core of a domain.\n"
- " dom [int]: Identifier of domain to dump core of.\n"
- " corefile [string]: Name of corefile to be created.\n\n"
- "Returns: [int] 0 on success; -1 on error.\n" },
-
- { "domain_pause",
- (PyCFunction)pyxc_domain_pause,
- METH_VARARGS, "\n"
- "Temporarily pause execution of a domain.\n"
- " dom [int]: Identifier of domain to be paused.\n\n"
- "Returns: [int] 0 on success; -1 on error.\n" },
-
- { "domain_unpause",
- (PyCFunction)pyxc_domain_unpause,
- METH_VARARGS, "\n"
- "(Re)start execution of a domain.\n"
- " dom [int]: Identifier of domain to be unpaused.\n\n"
- "Returns: [int] 0 on success; -1 on error.\n" },
-
- { "domain_destroy",
- (PyCFunction)pyxc_domain_destroy,
- METH_VARARGS, "\n"
- "Destroy a domain.\n"
- " dom [int]: Identifier of domain to be destroyed.\n\n"
- "Returns: [int] 0 on success; -1 on error.\n" },
-
- { "domain_destroy_hook",
- (PyCFunction)pyxc_domain_destroy_hook,
- METH_VARARGS, "\n"
- "Add a hook for arch stuff before destroy a domain.\n"
- " dom [int]: Identifier of domain to be destroyed.\n\n"
- "Returns: [int] 0 on success; -1 on error.\n" },
-
- { "domain_resume",
- (PyCFunction)pyxc_domain_resume,
- METH_VARARGS, "\n"
- "Resume execution of a suspended domain.\n"
- " dom [int]: Identifier of domain to be resumed.\n"
- " fast [int]: Use cooperative resume.\n\n"
- "Returns: [int] 0 on success; -1 on error.\n" },
-
- { "domain_shutdown",
- (PyCFunction)pyxc_domain_shutdown,
- METH_VARARGS, "\n"
- "Shutdown a domain.\n"
- " dom [int, 0]: Domain identifier to use.\n"
- " reason [int, 0]: Reason for shutdown.\n"
- "Returns: [int] 0 on success; -1 on error.\n" },
-
{ "vcpu_setaffinity",
(PyCFunction)pyxc_vcpu_setaffinity,
METH_VARARGS | METH_KEYWORDS, "\n"
@@ -1310,14 +991,6 @@ static PyMethodDef pyxc_methods[] = {
" cpumap [list, []]: list of usable CPUs.\n\n"
"Returns: [int] 0 on success; -1 on error.\n" },
- { "domain_sethandle",
- (PyCFunction)pyxc_domain_sethandle,
- METH_VARARGS, "\n"
- "Set domain's opaque handle.\n"
- " dom [int]: Identifier of domain.\n"
- " handle [list of 16 ints]: New opaque handle.\n"
- "Returns: [int] 0 on success; -1 on error.\n" },
-
{ "domain_getinfo",
(PyCFunction)pyxc_domain_getinfo,
METH_VARARGS | METH_KEYWORDS, "\n"
@@ -1530,43 +1203,12 @@ static PyMethodDef pyxc_methods[] = {
" 1=always emulate 2=never emulate 3=pvrdtscp\n"
"Returns: [int] 0 on success; -1 on error.\n" },
- { "domain_disable_migrate",
- (PyCFunction)pyxc_domain_disable_migrate,
- METH_VARARGS, "\n"
- "Marks domain as non-migratable AND non-restoreable\n"
- " dom [int]: Domain whose TSC mode is being set.\n"
- "Returns: [int] 0 on success; -1 on error.\n" },
-
- { "domain_send_trigger",
- (PyCFunction)pyxc_domain_send_trigger,
- METH_VARARGS | METH_KEYWORDS, "\n"
- "Send trigger to a domain.\n"
- " dom [int]: Identifier of domain to be sent trigger.\n"
- " trigger [int]: Trigger type number.\n"
- " vcpu [int]: VCPU to be sent trigger.\n"
- "Returns: [int] 0 on success; -1 on error.\n" },
-
{ "send_debug_keys",
(PyCFunction)pyxc_send_debug_keys,
METH_VARARGS | METH_KEYWORDS, "\n"
"Inject debug keys into Xen.\n"
" keys [str]: String of keys to inject.\n" },
-#if defined(__i386__) || defined(__x86_64__)
- { "domain_set_machine_address_size",
- (PyCFunction)pyxc_dom_set_machine_address_size,
- METH_VARARGS, "\n"
- "Set maximum machine address size for this domain.\n"
- " dom [int]: Identifier of domain.\n"
- " width [int]: Maximum machine address width.\n" },
-
- { "domain_suppress_spurious_page_faults",
- (PyCFunction)pyxc_dom_suppress_spurious_page_faults,
- METH_VARARGS, "\n"
- "Do not propagate spurious page faults to this guest.\n"
- " dom [int]: Identifier of domain.\n" },
-#endif
-
{ "tmem_control",
(PyCFunction)pyxc_tmem_control,
METH_VARARGS | METH_KEYWORDS, "\n"
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |