diff options
-rw-r--r-- | isys/isys.c | 13 | ||||
-rw-r--r-- | isys/isys.py | 4 |
2 files changed, 17 insertions, 0 deletions
diff --git a/isys/isys.c b/isys/isys.c index af60cdcba..9f30a2f14 100644 --- a/isys/isys.c +++ b/isys/isys.c @@ -18,6 +18,7 @@ #include <sys/ioctl.h> #include <sys/mount.h> #include <sys/stat.h> +#include <sys/sysmacros.h> #include <sys/time.h> #include <sys/vfs.h> #include <unistd.h> @@ -85,6 +86,7 @@ static PyObject * doIsScsiRemovable(PyObject * s, PyObject * args); static PyObject * doIsIdeRemovable(PyObject * s, PyObject * args); static PyObject * doEjectCdrom(PyObject * s, PyObject * args); static PyObject * doVtActivate(PyObject * s, PyObject * args); +static PyObject * doisPsudoTTY(PyObject * s, PyObject * args); static PyMethodDef isysModuleMethods[] = { { "ejectcdrom", (PyCFunction) doEjectCdrom, METH_VARARGS, NULL }, @@ -130,6 +132,7 @@ static PyMethodDef isysModuleMethods[] = { { "isScsiRemovable", (PyCFunction) doIsScsiRemovable, METH_VARARGS, NULL}, { "isIdeRemovable", (PyCFunction) doIsIdeRemovable, METH_VARARGS, NULL}, { "vtActivate", (PyCFunction) doVtActivate, METH_VARARGS, NULL}, + { "isPsudoTTY", (PyCFunction) doisPsudoTTY, METH_VARARGS, NULL}, { NULL } } ; @@ -1369,3 +1372,13 @@ static PyObject * doVtActivate(PyObject * s, PyObject * args) { return Py_None; } +static PyObject * doisPsudoTTY(PyObject * s, PyObject * args) { + int fd; + struct stat sb; + + if (!PyArg_ParseTuple(args, "i", &fd)) return NULL; + fstat(fd, &sb); + + /* XXX close enough for now */ + return Py_BuildValue("i", (major(sb.st_rdev) == 3)); +} diff --git a/isys/isys.py b/isys/isys.py index 2987c004a..626355dcc 100644 --- a/isys/isys.py +++ b/isys/isys.py @@ -349,3 +349,7 @@ def driveIsRemovable(device): def vtActivate (num): _isys.vtActivate (num) + +def isPsudoTTY (fd): + return _isys.isPsudoTTY (fd) + |