symbian-qemu-0.9.1-12/python-2.6.1/Modules/sgimodule.c
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 
       
     2 /* SGI module -- random SGI-specific things */
       
     3 
       
     4 #include "Python.h"
       
     5 
       
     6 #include <sys/types.h>
       
     7 #include <sys/stat.h>
       
     8 #include <fcntl.h>
       
     9 
       
    10 static PyObject *
       
    11 sgi_nap(PyObject *self, PyObject *args)
       
    12 {
       
    13 	long ticks;
       
    14 	if (!PyArg_ParseTuple(args, "l:nap", &ticks))
       
    15 		return NULL;
       
    16 	Py_BEGIN_ALLOW_THREADS
       
    17 	sginap(ticks);
       
    18 	Py_END_ALLOW_THREADS
       
    19 	Py_INCREF(Py_None);
       
    20 	return Py_None;
       
    21 }
       
    22 
       
    23 extern char *_getpty(int *, int, mode_t, int);
       
    24 
       
    25 static PyObject *
       
    26 sgi__getpty(PyObject *self, PyObject *args)
       
    27 {
       
    28 	int oflag;
       
    29 	int mode;
       
    30 	int nofork;
       
    31 	char *name;
       
    32 	int fildes;
       
    33 	if (!PyArg_ParseTuple(args, "iii:_getpty", &oflag, &mode, &nofork))
       
    34 		return NULL;
       
    35 	errno = 0;
       
    36 	name = _getpty(&fildes, oflag, (mode_t)mode, nofork);
       
    37 	if (name == NULL) {
       
    38 		PyErr_SetFromErrno(PyExc_IOError);
       
    39 		return NULL;
       
    40 	}
       
    41 	return Py_BuildValue("(si)", name, fildes);
       
    42 }
       
    43 
       
    44 static PyMethodDef sgi_methods[] = {
       
    45 	{"nap",		sgi_nap,	METH_VARARGS},
       
    46 	{"_getpty",	sgi__getpty,	METH_VARARGS},
       
    47 	{NULL,		NULL}		/* sentinel */
       
    48 };
       
    49 
       
    50 
       
    51 void
       
    52 initsgi(void)
       
    53 {
       
    54 	Py_InitModule("sgi", sgi_methods);
       
    55 }