summaryrefslogtreecommitdiffstats
path: root/python-ethtool/ethtool.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2008-07-18 14:45:56 -0300
committerArnaldo Carvalho de Melo <acme@redhat.com>2008-07-18 14:45:56 -0300
commite48469e3eef7982c6de6f0042cdeccb6f5466ef5 (patch)
tree7fb672ecaab3b05a8b5ac5e0496ac4a0d50ee373 /python-ethtool/ethtool.c
parente7b8606cffd39770e94b23993ada800be222ee8f (diff)
downloadpython-ethtool-e48469e3eef7982c6de6f0042cdeccb6f5466ef5.tar.gz
python-ethtool-e48469e3eef7982c6de6f0042cdeccb6f5466ef5.tar.xz
python-ethtool-e48469e3eef7982c6de6f0042cdeccb6f5466ef5.zip
ethtool: bindings for binding for ETHTOOL_[GS]RINGPARAM
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'python-ethtool/ethtool.c')
-rw-r--r--python-ethtool/ethtool.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/python-ethtool/ethtool.c b/python-ethtool/ethtool.c
index ba8eaa3..cbc083d 100644
--- a/python-ethtool/ethtool.c
+++ b/python-ethtool/ethtool.c
@@ -667,6 +667,46 @@ static PyObject *set_coalesce(PyObject *self __unused, PyObject *args)
return Py_None;
}
+struct struct_desc ethtool_ringparam_desc[] = {
+ member_desc(struct ethtool_ringparam, rx_max_pending),
+ member_desc(struct ethtool_ringparam, rx_mini_max_pending),
+ member_desc(struct ethtool_ringparam, rx_jumbo_max_pending),
+ member_desc(struct ethtool_ringparam, tx_max_pending),
+ member_desc(struct ethtool_ringparam, rx_pending),
+ member_desc(struct ethtool_ringparam, rx_mini_pending),
+ member_desc(struct ethtool_ringparam, rx_jumbo_pending),
+ member_desc(struct ethtool_ringparam, tx_pending),
+};
+
+static PyObject *get_ringparam(PyObject *self __unused, PyObject *args)
+{
+ struct ethtool_ringparam ring;
+
+ if (get_dev_value(ETHTOOL_GRINGPARAM, args, &ring) < 0)
+ return NULL;
+
+ return struct_desc_create_dict(ethtool_ringparam_desc, &ring);
+}
+
+static PyObject *set_ringparam(PyObject *self __unused, PyObject *args)
+{
+ struct ethtool_ringparam ring;
+ char *devname;
+ PyObject *dict;
+
+ if (!PyArg_ParseTuple(args, "sO", &devname, &dict))
+ return NULL;
+
+ if (struct_desc_from_dict(ethtool_ringparam_desc, &ring, dict) != 0)
+ return NULL;
+
+ if (send_command(ETHTOOL_SRINGPARAM, devname, &ring))
+ return NULL;
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+
static struct PyMethodDef PyEthModuleMethods[] = {
{
.ml_name = "get_module",
@@ -719,6 +759,16 @@ static struct PyMethodDef PyEthModuleMethods[] = {
.ml_flags = METH_VARARGS,
},
{
+ .ml_name = "get_ringparam",
+ .ml_meth = (PyCFunction)get_ringparam,
+ .ml_flags = METH_VARARGS,
+ },
+ {
+ .ml_name = "set_ringparam",
+ .ml_meth = (PyCFunction)set_ringparam,
+ .ml_flags = METH_VARARGS,
+ },
+ {
.ml_name = "get_tso",
.ml_meth = (PyCFunction)get_tso,
.ml_flags = METH_VARARGS,