DataMuseum.dk

Presents historical artifacts from the history of:

Regnecentalen RC-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Regnecentalen RC-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦d5f38c862⟧ TextFile

    Length: 4545 (0x11c1)
    Types: TextFile
    Notes: UNIX file
    Names: »pty.h«

Derivation

└─⟦8c4f54e61⟧ Bits:30004068/disk2.imd Interactive TCP/IP v.1.2
└─⟦8c4f54e61⟧ UNIX Filesystem
    └─⟦this⟧ »hb/new/usr/include/sys/pty.h« 

TextFile

/*
 * Copyright (c) 1982, 1986 Regents of the University of California.
 * All rights reserved.  The Berkeley software License Agreement
 * specifies the terms and conditions for redistribution.
 *
 *	Portions of this Software
 *      Copyrighted as an unpublished work.
 *      (c) Copyright 1988 INTERACTIVE Systems Corporation
 *      All rights reserved.
 *
 *      RESTRICTED RIGHTS:
 *
 *      These programs are supplied under a license.  They may be used,
 *      disclosed, and/or copied only as permitted under such license
 *      agreement.  Any copy must contain the above copyright notice and
 *      this restricted rights notice.  Use, copying, and/or disclosure
 *      of the programs is strictly prohibited unless otherwise provided
 *      in the license agreement.
 *
 */

#ident "@(#)pty.h	1.6 - 89/08/24"

/*
 * pt_flag defines 
 */

#define	PF_RCOLL	0x01	/* read collision, used by select */
#define	PF_WCOLL	0x02	/* write collision, used by select */
#define	PF_NBIO		0x04	/* no io blocking */
#define	PF_PKT		0x08	/* packet mode */
#define	PF_STOPPED	0x10	/* user told stopped */
#define	PF_REMOTE	0x20	/* remote and flow controlled input */
#define	PF_NOSTOP	0x40	/* no control flow ^s */
#define PF_PTYCTL	0x80	/* extended control mode */
#define PF_NOECHO	0x100	/* Don't echo chars, for PF_PTYCTL mode only */
#define PF_WANTDATA	0x200	/* slave side is requesting more data */
#define PF_EXCL		0x400	/* exclusive open */
#define PF_WDATASEL	0x800	/* select in read but already told master side */
#ifndef _h_BSDTYPES
typedef	unsigned char	u_char;
#endif

struct	pty
{
   struct	tty	pt_tty;
   ushort	pt_cnt;		/* open count	*/
   dev_t	pt_dev;		/* device */
};

struct  pt_ioctl {
   int     pt_flags;
   struct  proc *pt_selr, *pt_selw;
   u_char  pt_send;
   u_char  pt_ucntl;
#ifdef VPIX
   ushort  pt_intr;		/* VP/ix pseudorupt info */
#endif
   struct winsize pt_win;
};


#define PTCCONFIG(cnt)  pty_cnt = cnt; \
			struct  pty pts_tty[cnt]; \
			struct  pt_ioctl pt_ioctl[cnt];

/*
 * ioctl calls which are pty specific at present
 */

#define TIOCPKT 	(TIOC|10) /* enable packet mode */
#define TIOCREMOTE 	(TIOC|11) /* enable remote mode */
#define FIONBIO		(TIOC|12) /* non-blocking mode */

#ifndef MERGE	/* 532 release has all of these defined in termio.h */
#undef TIOCGWINSZ
#undef TIOCSWINSZ
#undef TIOCPTYCTL
#define TIOCGWINSZ	(TIOC|13)
#define TIOCSWINSZ	(TIOC|14)
#define TIOCPTYCTL	(TIOC|16) /* enable extended mode */
#endif /* MERGE */

/*
 * pt_send flag defines
 */

#define		TIOCPKT_DATA		0x00	/* data packet */
#define		TIOCPKT_FLUSHREAD	0x01	/* flush packet */
#define		TIOCPKT_FLUSHWRITE	0x02	/* flush packet */
#define		TIOCPKT_STOP		0x04	/* stop output */
#define		TIOCPKT_START		0x08	/* start output */
#define		TIOCPKT_NOSTOP		0x10	/* no more ^S, ^Q */
#define		TIOCPKT_DOSTOP		0x20	/* now do ^S ^Q */
#define		TIOCPKT_IOCTL		0x40	/* wake up if change term characteristics*/
#define 	TIOCPKT_BREAK		0x80	/* indicate a break was done */
#ifdef VPIX
#ifndef AIOCDOSMODE
#define AIOC    ('A'<<8)
#define AIOCDOSMODE     (AIOC|1)        /* set DOSMODE */
#define AIOCNONDOSMODE  (AIOC|2)        /* reset DOSMODE */
#define AIOCINFO        (AIOC|3)        /* tell user what device we are */
#define AIOCSERIALOUT   (AIOC|4)        /* serial device data write */
#define AIOCSERIALIN    (AIOC|5)        /* serial device data read */
#define AIOCINTTYPE     (AIOC|6)        /* set pseudorupt personality */
#define AIOCSETSS       (AIOC|7)        /* set start/stop chars */
#define VPC_SERIAL_DOS    (AIOC|61)
#define VPC_SERIAL_NONDOS (AIOC|62)
#define VPC_SERIAL_INFO   (AIOC|66)
#define VPC_SERIAL_TYPE   (AIOC|60)
#endif
#endif

/*
 * Enumerated types used by extended pty control mode
 */

typedef enum pty_ctl3_cmd_element_enum  {
	pty_ctl3_cmd_user_data=1,
	pty_ctl3_cmd_char_echo=2,
	pty_ctl3_cmd_break=3,
	pty_ctl3_cmd_first_unused=4
};

typedef enum pty_ctl3_info_element_enum {
	pty_ctl3_info_user_data=1,
	pty_ctl3_info_flush_output=2,
	pty_ctl3_info_flush_input=3,
	pty_ctl3_info_change_ioctl=4,
	pty_ctl3_info_want_data=5,
	pty_ctl3_info_output_suspended=6,
	pty_ctl3_info_output_resumed=7,
	pty_ctl3_info_break=8,
	pty_ctl3_info_first_unused=9
};

/*
 * service level defines for TIOCPTYCTL 
 */

#define pty_ctl_service_0	0	/* return current level of service */
#define pty_ctl_service_1	1	/* default level of service */
#define pty_ctl_service_2	2	/* TIOCPKT service */
#define pty_ctl_service_3	3	/* extended control service */
#define pty_ctl_service_4	4	/* remote mode */