|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 03/13] python: remove flask 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 any flask related python binding left. Remove them.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
---
tools/python/xen/lowlevel/xc/xc.c | 238 --------------------------------------
1 file changed, 238 deletions(-)
diff --git a/tools/python/xen/lowlevel/xc/xc.c
b/tools/python/xen/lowlevel/xc/xc.c
index d75f98c..c904627 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -20,8 +20,6 @@
#include <xen/hvm/hvm_info_table.h>
#include <xen/hvm/params.h>
-#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-
/* Needed for Python versions earlier than 2.3. */
#ifndef PyMODINIT_FUNC
#define PyMODINIT_FUNC DL_EXPORT(void)
@@ -30,8 +28,6 @@
#define PKG "xen.lowlevel.xc"
#define CLS "xc"
-#define FLASK_CTX_LEN 1024
-
static PyObject *xc_error_obj, *zero;
typedef struct {
@@ -1855,187 +1851,6 @@ static PyObject *pyxc_cpupool_freeinfo(XcObject *self)
return info;
}
-static PyObject *pyflask_context_to_sid(PyObject *self, PyObject *args,
- PyObject
*kwds)
-{
- xc_interface *xc_handle;
- char *ctx;
- uint32_t sid;
- int ret;
-
- static char *kwd_list[] = { "context", NULL };
-
- if ( !PyArg_ParseTupleAndKeywords(args, kwds, "s", kwd_list,
- &ctx) )
- return NULL;
-
- xc_handle = xc_interface_open(0,0,0);
- if (!xc_handle) {
- return PyErr_SetFromErrno(xc_error_obj);
- }
-
- ret = xc_flask_context_to_sid(xc_handle, ctx, strlen(ctx), &sid);
-
- xc_interface_close(xc_handle);
-
- if ( ret != 0 ) {
- errno = -ret;
- return PyErr_SetFromErrno(xc_error_obj);
- }
-
- return PyInt_FromLong(sid);
-}
-
-static PyObject *pyflask_sid_to_context(PyObject *self, PyObject *args,
- PyObject
*kwds)
-{
- xc_interface *xc_handle;
- uint32_t sid;
- char ctx[FLASK_CTX_LEN];
- uint32_t ctx_len = FLASK_CTX_LEN;
- int ret;
-
- static char *kwd_list[] = { "sid", NULL };
-
- if ( !PyArg_ParseTupleAndKeywords(args, kwds, "i", kwd_list,
- &sid) )
- return NULL;
-
- xc_handle = xc_interface_open(0,0,0);
- if (!xc_handle) {
- return PyErr_SetFromErrno(xc_error_obj);
- }
-
- ret = xc_flask_sid_to_context(xc_handle, sid, ctx, ctx_len);
-
- xc_interface_close(xc_handle);
-
- if ( ret != 0 ) {
- errno = -ret;
- return PyErr_SetFromErrno(xc_error_obj);
- }
-
- return Py_BuildValue("s", ctx, ctx_len);
-}
-
-static PyObject *pyflask_load(PyObject *self, PyObject *args, PyObject *kwds)
-{
- xc_interface *xc_handle;
- char *policy;
- uint32_t len;
- int ret;
-
- static char *kwd_list[] = { "policy", NULL };
-
- if( !PyArg_ParseTupleAndKeywords(args, kwds, "s#", kwd_list, &policy,
&len) )
- return NULL;
-
- xc_handle = xc_interface_open(0,0,0);
- if (!xc_handle) {
- return PyErr_SetFromErrno(xc_error_obj);
- }
-
- ret = xc_flask_load(xc_handle, policy, len);
-
- xc_interface_close(xc_handle);
-
- if ( ret != 0 ) {
- errno = -ret;
- return PyErr_SetFromErrno(xc_error_obj);
- }
-
- return Py_BuildValue("i", ret);
-}
-
-static PyObject *pyflask_getenforce(PyObject *self)
-{
- xc_interface *xc_handle;
- int ret;
-
- xc_handle = xc_interface_open(0,0,0);
- if (!xc_handle) {
- return PyErr_SetFromErrno(xc_error_obj);
- }
-
- ret = xc_flask_getenforce(xc_handle);
-
- xc_interface_close(xc_handle);
-
- if ( ret < 0 ) {
- errno = -ret;
- return PyErr_SetFromErrno(xc_error_obj);
- }
-
- return Py_BuildValue("i", ret);
-}
-
-static PyObject *pyflask_setenforce(PyObject *self, PyObject *args,
- PyObject *kwds)
-{
- xc_interface *xc_handle;
- int mode;
- int ret;
-
- static char *kwd_list[] = { "mode", NULL };
-
- if ( !PyArg_ParseTupleAndKeywords(args, kwds, "i", kwd_list,
- &mode) )
- return NULL;
-
- xc_handle = xc_interface_open(0,0,0);
- if (!xc_handle) {
- return PyErr_SetFromErrno(xc_error_obj);
- }
-
- ret = xc_flask_setenforce(xc_handle, mode);
-
- xc_interface_close(xc_handle);
-
- if ( ret != 0 ) {
- errno = -ret;
- return PyErr_SetFromErrno(xc_error_obj);
- }
-
- return Py_BuildValue("i", ret);
-}
-
-static PyObject *pyflask_access(PyObject *self, PyObject *args,
- PyObject *kwds)
-{
- xc_interface *xc_handle;
- char *tcon, *scon;
- uint16_t tclass;
- uint32_t req, allowed, decided, auditallow, auditdeny, seqno;
- int ret;
-
- static char *kwd_list[] = { "src_context", "tar_context",
- "tar_class", "req_permissions",
- "decided", "auditallow","auditdeny",
- "seqno", NULL };
-
- if ( !PyArg_ParseTupleAndKeywords(args, kwds, "ssil|llll", kwd_list,
- &scon, &tcon, &tclass, &req, &decided,
- &auditallow, &auditdeny, &seqno) )
- return NULL;
-
- xc_handle = xc_interface_open(0,0,0);
- if (!xc_handle) {
- return PyErr_SetFromErrno(xc_error_obj);
- }
-
- ret = xc_flask_access(xc_handle, scon, tcon, tclass, req, &allowed,
&decided,
- &auditallow, &auditdeny, &seqno);
-
- xc_interface_close(xc_handle);
-
- if ( ret != 0 ) {
- errno = -ret;
- return PyErr_SetFromErrno(xc_error_obj);
- }
-
- return Py_BuildValue("i",ret);
-}
-
static PyMethodDef pyxc_methods[] = {
{ "domain_create",
(PyCFunction)pyxc_domain_create,
@@ -2584,59 +2399,6 @@ static PyMethodDef pyxc_methods[] = {
"Get info about cpus not in any cpupool.\n"
"Returns: [list]: List of CPUs\n" },
- { "flask_context_to_sid",
- (PyCFunction)pyflask_context_to_sid,
- METH_KEYWORDS, "\n"
- "Convert a context string to a dynamic SID.\n"
- " context [str]: String specifying context to be converted\n"
- "Returns: [int]: Numeric SID on success; -1 on error.\n" },
-
- { "flask_sid_to_context",
- (PyCFunction)pyflask_sid_to_context,
- METH_KEYWORDS, "\n"
- "Convert a dynamic SID to context string.\n"
- " context [int]: SID to be converted\n"
- "Returns: [str]: Numeric SID on success; -1 on error.\n" },
-
- { "flask_load",
- (PyCFunction)pyflask_load,
- METH_KEYWORDS, "\n"
- "Loads a policy into the hypervisor.\n"
- " policy [str]: policy to be load\n"
- "Returns: [int]: 0 on success; -1 on failure.\n" },
-
- { "flask_getenforce",
- (PyCFunction)pyflask_getenforce,
- METH_NOARGS, "\n"
- "Returns the current mode of the Flask XSM module.\n"
- "Returns: [int]: 0 for permissive; 1 for enforcing; -1 on failure.\n" },
-
- { "flask_setenforce",
- (PyCFunction)pyflask_setenforce,
- METH_KEYWORDS, "\n"
- "Modifies the current mode for the Flask XSM module.\n"
- " mode [int]: mode to change to\n"
- "Returns: [int]: 0 on success; -1 on failure.\n" },
-
- { "flask_access",
- (PyCFunction)pyflask_access,
- METH_KEYWORDS, "\n"
- "Returns whether a source context has access to target context based on \
- class and permissions requested.\n"
- " scon [str]: source context\n"
- " tcon [str]: target context\n"
- " tclass [int]: target security class\n"
- " req [int] requested permissions\n"
- " allowed [int] permissions allow for the target class between the
source \
- and target context\n"
- " decided [int] the permissions that were returned in the allowed \
- parameter\n"
- " auditallow [int] permissions set to audit on allow\n"
- " auditdeny [int] permissions set to audit on deny\n"
- " seqno [int] not used\n"
- "Returns: [int]: 0 on all permission granted; -1 if any permissions are \
- denied\n" },
-
{ NULL, NULL, 0, NULL }
};
--
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 |