Files
Arquivotheca.Solaris-2.5/uts/common/sys/strtty.h
seta75D 7c4988eac0 Init
2021-10-11 19:38:01 -03:00

129 lines
3.6 KiB
C
Executable File

/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
/* The copyright notice above does not evidence any */
/* actual or intended publication of such source code. */
/* Copyright (c) 1988 AT&T */
/* All Rights Reserved */
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
/* The copyright notice above does not evidence any */
/* actual or intended publication of such source code. */
#ifndef _SYS_STRTTY_H
#define _SYS_STRTTY_H
#pragma ident "@(#)strtty.h 1.9 92/07/14 SMI" /* SVr4.0 1.6 */
#ifdef __cplusplus
extern "C" {
#endif
/*
* header file for STREAMS TTY subsystem
*/
/*
* The t_buf data structure holds information about a message
* block and its associated data buffer. One is used for received
* blocks, and another is used for blocks to be transmitted to
* a user terminal or a printer.
*/
struct t_buf
{
mblk_t *bu_bp; /* message block pointer */
unsigned char *bu_ptr; /* data buffer pointer */
ushort bu_cnt; /* data buffer character count */
};
/*
* A tty structure is needed for each character device used for normal
* tty I/O. Each PORTS board supports 4 user terminals and 1 CENTRONICS-
* TYPE printer.
*/
struct strtty
{
struct t_buf t_in; /* input buffer info */
struct t_buf t_out; /* output buffer info */
queue_t *t_rdqp; /* pointer to tty read queue */
mblk_t *t_ioctlp; /* ioctl block pointer */
mblk_t *t_lbuf; /* pointer to a large data buffer */
int t_dev; /* tty minor device number */
long t_iflag; /* input setting flags */
long t_oflag; /* output setting flags */
long t_cflag; /* physical setting flags */
long t_lflag; /* "line discipline" flags */
short t_state; /* internal state */
char t_line; /* active line discipline */
char t_dstat; /* more internal state flags */
unsigned char t_cc[NCCS]; /* settable control chars */
};
/*
* Size of internal ports data buffer, one per port
*/
#define LARGEBUFSZ 512
#define TTIPRI 28
#define TTOPRI 29
/* Internal state */
#define TIMEOUT 01 /* Delay timeout in progress */
#define WOPEN 02 /* Waiting for open to complete */
#define ISOPEN 04 /* Device is open */
#define TBLOCK 010
#define CARR_ON 020 /* Software copy of carrier-present */
#define BUSY 040 /* Output in progress */
#define WIOC 0100 /* Wait for ioctl to complete */
#define WGETTY 0200 /* opened by supergetty, waiting for getty */
#define TTSTOP 0400 /* Output stopped by ctl-s */
#define EXTPROC 01000 /* External processing */
#define TACT 02000
#define CLESC 04000 /* Last char escape */
#define RTO 010000 /* Raw Timeout */
#define TTIOW 020000
#define TTXON 040000
#define TTXOFF 0100000
/* l_output status */
#define CPRES 0100000
/* device commands */
#define T_OUTPUT 0
#define T_TIME 1
#define T_SUSPEND 2
#define T_RESUME 3
#define T_BLOCK 4
#define T_UNBLOCK 5
#define T_RFLUSH 6
#define T_WFLUSH 7
#define T_BREAK 8
#define T_INPUT 9
#define T_DISCONNECT 10
#define T_PARM 11
#define T_SWTCH 12
/*
* M_CTL message types.
*/
#define MC_NO_CANON 0 /* module below saying it will canonicalize */
#define MC_DO_CANON 1 /* module below saying it won't canonicalize */
#define MC_CANONQUERY 2 /* module above asking whether module below */
/* canonicalizes */
#define MC_PART_CANON 3 /* tell line discipline to do some */
/* canonicalization */
/* XXX - These seem pretty device dependent... */
#define MC_SERVICEIMM 3 /* tell the ZS driver to return input */
/* immediately */
#define MC_SERVICEDEF 4 /* tell the ZS driver it can wait */
#define SXTSWTCH 'Z' /* SXT switch character */
#ifdef __cplusplus
}
#endif
#endif /* _SYS_STRTTY_H */