diff options
author | dos-reis <gdr@axiomatics.org> | 2007-09-02 21:56:58 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2007-09-02 21:56:58 +0000 |
commit | 7eb38fea596969878a33f30e36fe33b125f9c4bd (patch) | |
tree | 2e4222a4406fb5ed3d69b781f528b9ac08bb9fbc /src/lib/openpty.c.pamphlet | |
parent | 869512ac1dd0bc9c80182cbef6e01b39540fef7f (diff) | |
download | open-axiom-7eb38fea596969878a33f30e36fe33b125f9c4bd.tar.gz |
* XSpadFill.c: New. Replace corresponding pamphlet.
* XSpadFill.c.pamphlet: Remove.
* XShade.c: New. Replace corresponding pamphlet.
* XShade.c.pamphlet: Remove.
* XDither.c: New. Replace corresponding pamphlet.
* XDither.c.pamphlet: Remove.
* wct.c: New. Replace corresponding pamphlet.
* wct.c.pamphlet: Remove.
* util.c: New. Replace corresponding pamphlet.
* util.c.pamphlet: Remove.
* spadcolors.c: New. Replace corresponding pamphlet.
* spadcolors.c.pamphlet: Remove.
* sockio-c.c: New. Replace corresponding pamphlet.
* sockio-c.c.pamphlet: Remove.
* prt.c: New. Replace corresponding pamphlet.
* prt.c.pamphlet: Remove.
* pixmap.c: New. Replace corresponding pamphlet.
* pixmap.c.pamphlet: Remove.
* openpty.c: New. Replace corresponding pamphlet.
* openpty.c.pamphlet: Remove.
* hash.c: New. Replace corresponding pamphlet.
* hash.c.pamphlet: Remove.
* halloc.c: New. Replace corresponding pamphlet.
* halloc.c.pamphlet: Remove.
* fnct_key.c: New. Replace corresponding pamphlet.
* fnct_key.c.pamphlet: Remove.
* edin.c: New. Replace corresponding pamphlet.
* edin.c.pamphlet: Remove.
* bsdsignal.c: New. Replace correponding pamphlet.
* bsdsignal.c.pamphlet: Remove.
* cursor.c: New. Replace corresponding pamphlet.
* cursor.c.pamphlet: Remove.
* cfuns-c.c: New. Replace corresponding pamphlet.
* cfuns-c.c.pamphlet: Remove.
Diffstat (limited to 'src/lib/openpty.c.pamphlet')
-rw-r--r-- | src/lib/openpty.c.pamphlet | 226 |
1 files changed, 0 insertions, 226 deletions
diff --git a/src/lib/openpty.c.pamphlet b/src/lib/openpty.c.pamphlet deleted file mode 100644 index 20976367..00000000 --- a/src/lib/openpty.c.pamphlet +++ /dev/null @@ -1,226 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/lib openpty.c} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{MAC OSX and BSD platform changes} -Since we have no other information we are adding the [[MACOSXplatform]] variable -to the list everywhere we find [[LINUXplatform]]. This may not be correct but -we have no way to know yet. We have also added the [[BSDplatform]] variable. -MAC OSX is some variant of BSD. These should probably be merged but we -cannot yet prove that. -<<mac osx platform change 1>>= -#if defined(SUN4OS5platform) ||defined(ALPHAplatform) || defined(HP10platform) || defined(LINUXplatform) || defined(MACOSXplatform) || defined(BSDplatform) -@ -<<mac osx platform change 2>>= -#if defined(SUNplatform) || defined(HP9platform) || defined(LINUXplatform) || defined(MACOSXplatform) || defined(BSDplatform) -@ -\section{License} -<<license>>= -/* -Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of The Numerical ALgorithms Group Ltd. nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER -OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ -@ -<<*>>= -<<license>> - -#include "axiom-c-macros.h" -#include <stdlib.h> -#include <unistd.h> -#include <stdio.h> -#include <fcntl.h> -#include <string.h> - -#if defined(SUN4OS5platform) || defined(HP10platform) -#include <stropts.h> -#endif - - -#include "openpty.H1" - - -/* - * The main function is ptyopen. It simply opens up both sides of a - * pseudo-terminal. It uses and saves the pathnames for - * the devices which were actually opened. - * - * If it fails it simply exits the program. - * - * - * ptyopen(controller, server, controllerPath, serverPath) - * int *controller; The file descriptor for controller side of the pty - * int *server; The file descriptor for the server side - * char *controllerPath; actually , this is not used anywhere on return - and can be taken out of the call sequence - * char *serverPath; - * - * The path name vars should be declared of size 11 or more - */ - - -int -ptyopen(int *controller,int * server, char *controllerPath,char * serverPath) -{ -#if defined(SUNplatform) || defined (HP9platform) || defined(RTplatform) ||defined(AIX370platform) || defined(BSDplatform) - int looking = 1, i; - int oflag = O_RDWR; /* flag for opening the pty */ - - for (i = 0; looking && i < 1000; i++) { - makeNextPtyNames(controllerPath, serverPath); - if (access(controllerPath, 6) != 0) continue; - *controller = open(controllerPath, oflag, 0); - if (*controller >= 0) { - *server = open(serverPath, oflag, 0); - if (*server > 0) - looking = 0; - else - close(*controller); - } - } - if (looking) { - fprintf(stderr, "Couldn't find a free pty.\n"); - exit(-1); - } - return (*controller); -#endif -#if defined RIOSplatform - int fdm,fds; - char *slavename; - - /* open master */ - if ((fdm=open("/dev/ptc",O_RDWR))<0) - perror("ptyopen failed to open /dev/ptc"); - else { - /* get slave name */ - if((slavename = ttyname(fdm))==0) - perror("ptyopen failed to get the slave device name"); - /* open slave */ - if ((fds = open(slavename, O_RDWR)) < 0 ) - perror("ptyopen: Failed to open slave"); - strcpy(serverPath,slavename); - *controller=fdm; - *server=fds; - } - return(fdm); -#endif - -<<mac osx platform change 1>> -extern int grantpt(int); -extern int unlockpt(int); -extern char* ptsname(int); - int fdm,fds; - char *slavename; - - /* open master */ - if ((fdm = open("/dev/ptmx", O_RDWR)) < 0 ) - perror("ptyopen: Failed to open /dev/ptmx"); - else { - /* change permission ofslave */ - if (grantpt(fdm) < 0) - perror("ptyopen: Failed to grant access to slave device"); - /* unlock slave */ - if (unlockpt(fdm) < 0) - perror("ptyopen: Failed to unlock master/slave pair"); - /* get name of slave */ - if ((slavename = ptsname(fdm)) == NULL) - perror("ptyopen: Failed to get name of slave device"); - /* open slave */ - if ((fds = open(slavename, O_RDWR)) < 0 ) - perror("ptyopen: Failed to open slave"); - else { -#if defined(SUN4OS5platform) || defined(HP10platform) - /* push ptem */ - if (ioctl(fds, I_PUSH, "ptem") < 0) - perror("ptyopen: Failed to push ptem"); - /* push ldterm */ - if (ioctl(fds, I_PUSH, "ldterm") < 0) - perror("ptyopen: Failed to push idterm"); -#endif - strcpy(serverPath,slavename); - *controller=fdm; - *server=fds; - } - } - return(fdm); -#endif -#if defined SGIplatform - char *fds; - fds = _getpty(controller, O_RDWR|O_NDELAY, 0600, 0); - strcpy(serverPath,fds); - if (0 == serverPath) - return(-1); - if (0 > (*server = open(serverPath,O_RDWR))) { - (void) close(*controller); - return(-1); - } - return (*controller); - -#endif -} - - -void -makeNextPtyNames(char *cont,char * serv) -{ -#ifdef AIX370platform - static int channelNo = 0; - sprintf(cont, "/dev/ptyp%02x", channelNo); - sprintf(serv, "/dev/ttyp%02x", channelNo); - channelNo++; -#endif -<<mac osx platform change 2>> - static int channelNo = 0; - static char group[] = "pqrstuvwxyzPQRST"; - static int groupNo = 0; - - sprintf(cont, "/dev/pty%c%x", group[groupNo], channelNo); - sprintf(serv, "/dev/tty%c%x", group[groupNo], channelNo); - channelNo++; /* try next */ - if (channelNo == 16) { /* move to new group */ - channelNo = 0; - groupNo++; - if (groupNo == 16) groupNo = 0; /* recycle */ - } -#endif -} -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} |