diff -r 204c2724f800 tools/Makefile --- a/tools/Makefile Fri Jan 12 10:48:46 2007 +0000 +++ b/tools/Makefile Fri Jan 12 15:38:11 2007 +0000 @@ -26,6 +26,7 @@ ifeq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_A ifeq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH)) SUBDIRS-y += python SUBDIRS-y += pygrub +SUBDIRS-y += ptsname endif .PHONY: all diff -r 204c2724f800 tools/ptsname/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/ptsname/Makefile Fri Jan 12 15:37:33 2007 +0000 @@ -0,0 +1,22 @@ + +XEN_ROOT = ../.. +include $(XEN_ROOT)/tools/Rules.mk + +.PHONY: all +all: build +.PHONY: build +build: + CC="$(CC)" CFLAGS="$(CFLAGS)" python setup.py build + +.PHONY: install +ifndef XEN_PYTHON_NATIVE_INSTALL +install: all + CC="$(CC)" CFLAGS="$(CFLAGS)" python setup.py install --home="$(DESTDIR)/usr" --prefix="" +else +install: all + CC="$(CC)" CFLAGS="$(CFLAGS)" python setup.py install --root="$(DESTDIR)" +endif + +.PHONY: clean +clean: + rm -rf build tmp *.pyc *.pyo *.o *.a *~ a.out diff -r 204c2724f800 tools/ptsname/ptsname.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/ptsname/ptsname.c Fri Jan 12 16:10:59 2007 +0000 @@ -0,0 +1,44 @@ +/****************************************************************************** + * ptsname.c + * + * A python extension to expose the POSIX ptsname() function. + * + * Copyright (C) 2007 XenSource Ltd + */ + +#include +#include + +/* Needed for Python versions earlier than 2.3. */ +#ifndef PyMODINIT_FUNC +#define PyMODINIT_FUNC DL_EXPORT(void) +#endif + +static PyObject *do_ptsname(PyObject *self, PyObject *args) +{ + int fd; + char *path; + + if (!PyArg_ParseTuple(args, "i", &fd)) + return NULL; + + path = ptsname(fd); + + if (!path) + { + PyErr_SetFromErrno(PyExc_IOError); + return NULL; + } + + return PyString_FromString(path); +} + +static PyMethodDef ptsname_methods[] = { + { "ptsname", do_ptsname, METH_VARARGS }, + { NULL } +}; + +PyMODINIT_FUNC initptsname(void) +{ + Py_InitModule("ptsname", ptsname_methods); +} diff -r 204c2724f800 tools/ptsname/setup.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/ptsname/setup.py Fri Jan 12 16:05:12 2007 +0000 @@ -0,0 +1,11 @@ +from distutils.core import setup, Extension + +extra_compile_args = [ "-fno-strict-aliasing", "-Werror" ] + +setup(name = 'ptsname', + version = '1.0', + description = 'POSIX ptsname() function', + author = 'Tim Deegan', + author_email = 'Tim.Deegan@xxxxxxxxxxxxx', + license = 'GPL', + ext_modules = [ Extension("ptsname", [ "ptsname.c" ]) ])