|
|
DataMuseum.dkPresents historical artifacts from the history of: Regnecentalen RC-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Regnecentalen RC-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T U p
Length: 4545 (0x11c1)
Types: TextFile
Notes: UNIX file
Names: »pty.h«
└─⟦8c4f54e61⟧ Bits:30004068/disk2.imd Interactive TCP/IP v.1.2
└─⟦8c4f54e61⟧ UNIX Filesystem
└─⟦this⟧ »hb/new/usr/include/sys/pty.h«
/*
* 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 */