You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.0 KiB
55 lines
1.0 KiB
|
|
/* 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); |
|
}
|
|
|