diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
commit | 458120dd40db6b4df55a4e96b650e16798ef06a0 (patch) | |
tree | 8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/src/cmd/python/Modules/sgimodule.c | |
parent | 3a742c699f6806c1145aea5149bf15de15a0afd7 (diff) |
add hg and python
Diffstat (limited to 'sys/src/cmd/python/Modules/sgimodule.c')
-rw-r--r-- | sys/src/cmd/python/Modules/sgimodule.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/sys/src/cmd/python/Modules/sgimodule.c b/sys/src/cmd/python/Modules/sgimodule.c new file mode 100644 index 000000000..f7e12635c --- /dev/null +++ b/sys/src/cmd/python/Modules/sgimodule.c @@ -0,0 +1,55 @@ + +/* SGI module -- random SGI-specific things */ + +#include "Python.h" + +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> + +static PyObject * +sgi_nap(PyObject *self, PyObject *args) +{ + long ticks; + if (!PyArg_ParseTuple(args, "l:nap", &ticks)) + return NULL; + Py_BEGIN_ALLOW_THREADS + sginap(ticks); + Py_END_ALLOW_THREADS + Py_INCREF(Py_None); + return Py_None; +} + +extern char *_getpty(int *, int, mode_t, int); + +static PyObject * +sgi__getpty(PyObject *self, PyObject *args) +{ + int oflag; + int mode; + int nofork; + char *name; + int fildes; + if (!PyArg_ParseTuple(args, "iii:_getpty", &oflag, &mode, &nofork)) + return NULL; + errno = 0; + name = _getpty(&fildes, oflag, (mode_t)mode, nofork); + if (name == NULL) { + PyErr_SetFromErrno(PyExc_IOError); + return NULL; + } + return Py_BuildValue("(si)", name, fildes); +} + +static PyMethodDef sgi_methods[] = { + {"nap", sgi_nap, METH_VARARGS}, + {"_getpty", sgi__getpty, METH_VARARGS}, + {NULL, NULL} /* sentinel */ +}; + + +void +initsgi(void) +{ + Py_InitModule("sgi", sgi_methods); +} |