mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
 | 
						|
/* 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);
 | 
						|
}
 |