summaryrefslogtreecommitdiff
path: root/sys/src/cmd/python/Modules/sgimodule.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
committercinap_lenrek <cinap_lenrek@localhost>2011-05-03 11:25:13 +0000
commit458120dd40db6b4df55a4e96b650e16798ef06a0 (patch)
tree8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/src/cmd/python/Modules/sgimodule.c
parent3a742c699f6806c1145aea5149bf15de15a0afd7 (diff)
add hg and python
Diffstat (limited to 'sys/src/cmd/python/Modules/sgimodule.c')
-rw-r--r--sys/src/cmd/python/Modules/sgimodule.c55
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);
+}