--- libaitio/inc/aitio.h 2011/09/07 13:49:28 1.11.2.13 +++ libaitio/inc/aitio.h 2011/09/19 23:09:16 1.11.2.16 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitio.h,v 1.11.2.13 2011/09/07 13:49:28 misho Exp $ +* $Id: aitio.h,v 1.11.2.16 2011/09/19 23:09:16 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -749,6 +749,51 @@ int ioCipher(unsigned char *pInput, int inLen, unsigne */ int io_Blowfish(unsigned char *pInput, int inLen, unsigned char **ppOutput, unsigned char *pKey, unsigned char *pIV, int nMode); + + +/* + * ioAllocPTY() Allocate new PTY and TTY + * @ptyfd = master fd, pty + * @ttyfd = slave fd, tty + * @name = tty device name if not null + * @namesiz = name length, must be above 63 bytes. + * @term = termios for terminal + * @winz = winsize for terminal + * return: -1 error or 0 ok + */ +inline int ioAllocPTY(int *ptyfd, int *ttyfd, char * __restrict name, int namesiz, + struct termios * __restrict term, struct winsize * __restrict winz); +/* + * ioFreeTTY() Release TTY + * @ttyname = tty filename + * return: none + */ +inline void ioFreeTTY(const char *ttyname); +/* + * ioChgWinPTY() Change window size of PTY + * @ptyfd = master fd, pty + * @row = row + * @col = col + * @xpxl = x pixels + * @ypxl = y pixels + * return: -1 error or 0 ok + */ +inline int ioChgWinPTY(int ptyfd, u_short row, u_short col, u_short xpxl, u_short ypxl); +/* + * ioSetOwnerTTY() Set owner to TTY + * @ttyname = tty filename + * @UID = uid + * @GID = gid + * return: -1 error or 0 ok + */ +int ioSetOwnerTTY(const char *ttyname, uid_t UID, gid_t GID); +/* + * ioSetSidTTY() Makes the process's controlling TTY and sets it to sane modes. + * @ttyfd = slave fd, tty + * @ttyname = tty filename + * return: -1 error or 0 ok + */ +int ioSetSidTTY(int *ttyfd, const char *ttyname); #endif