-/*
+/* $Id$
* Copyright (C) 2008 Daniel Hokka Zakrisson
*
* This program is free software; you can redistribute it and/or
}
static PyObject *
-
pyvserver_get_version(PyObject UNUSED *self, PyObject UNUSED *args)
{
int ver = vc_get_version();
if (vc_virt_stat(xid, &stats) == -1)
return PyErr_SetFromErrno(PyExc_OSError);
- return Py_BuildValue("(KKIIIII(III))", stats.offset, stats.uptime,
+ return Py_BuildValue("(KKIIIIIIII)", stats.offset, stats.uptime,
stats.nr_threads, stats.nr_running,
stats.nr_uninterruptible, stats.nr_onhold,
stats.nr_forks, stats.load[0], stats.load[1],
xid_t xid;
struct vc_ctx_flags flags;
- if (!PyArg_ParseTuple(args, "I(KK)", &xid, flags.flagword, flags.mask))
+ if (!PyArg_ParseTuple(args, "I(KK)", &xid, &flags.flagword, &flags.mask))
return NULL;
if (vc_set_cflags(xid, &flags) == -1)
if (vc_get_rlimit(xid, resource, &limit) == -1)
return PyErr_SetFromErrno(PyExc_OSError);
- return Py_BuildValue("(KKK)", limit.min, limit.soft, limit.hard);
+ return Py_BuildValue("(LLL)", limit.min, limit.soft, limit.hard);
}
static PyObject *
{
xid_t xid;
vc_uts_type type;
- char val[256];
+ char val[65];
if (!PyArg_ParseTuple(args, "Ii", &xid, &type))
return NULL;
{
xid_t xid;
uint_least64_t mask;
+ uint32_t index;
- if (!PyArg_ParseTuple(args, "IK", &xid, &mask))
+ if (!PyArg_ParseTuple(args, "IKI", &xid, &mask, &index))
return NULL;
- if (vc_enter_namespace(xid, mask) == -1)
+ if (vc_enter_namespace(xid, mask, index) == -1)
return PyErr_SetFromErrno(PyExc_OSError);
return NONE();
{
xid_t xid;
uint_least64_t mask;
+ uint32_t index;
- if (!PyArg_ParseTuple(args, "IK", &xid, &mask))
+ if (!PyArg_ParseTuple(args, "IKI", &xid, &mask, &index))
return NULL;
- if (vc_set_namespace(xid, mask) == -1)
+ if (vc_set_namespace(xid, mask, index) == -1)
return PyErr_SetFromErrno(PyExc_OSError);
return NONE();
xid_t xid;
struct vc_set_sched sched;
- if (!PyArg_ParseTuple(args, "I", &xid))
+ if (!PyArg_ParseTuple(args, "Iii", &xid, &sched.cpu_id, &sched.bucket_id))
return NULL;
if (vc_get_sched(xid, &sched) == -1)
char const *str; \
int len; \
struct vc_err_listparser err; \
- list_type val; \
+ list_type val = { .mask_member = 0 }; \
\
if (!PyArg_ParseTuple(args, "s#", &str, &len)) \
return NULL; \
{ NULL, NULL, 0, NULL }
};
+static void
+PyModule_AddLongLongConstant(PyObject *mod, const char *str, long long val)
+{
+ PyObject *o = PyLong_FromLongLong(val);
+ if (!o || PyModule_AddObject(mod, str, o) == -1)
+ /* This ought to be reported somehow... */
+ return;
+}
+
PyMODINIT_FUNC init_libvserver(void)
{
PyObject *mod;