From e2294b61e15781ca784a611e8ca7dabe132ebc6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Ankarstr=C3=B6m?= Date: Mon, 7 Jun 2021 14:12:11 +0200 Subject: First commit (NetBSD 9.1) --- tty.h | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 tty.h (limited to 'tty.h') diff --git a/tty.h b/tty.h new file mode 100644 index 0000000..08c6b7c --- /dev/null +++ b/tty.h @@ -0,0 +1,110 @@ +/* $NetBSD: tty.h,v 1.2 1997/01/12 19:12:25 tls Exp $ */ + +/* + tty.h -- centralized definitions for a variety of terminal interfaces + + created by DPK, Oct. 1986 + + Rearranged to work with autoconf, added TTY_state, get_tty/set_tty + Michael Rendell, May '94 + + last edit: 30-Jul-1987 D A Gwyn +*/ +/* $NetBSD: tty.h,v 1.2 1997/01/12 19:12:25 tls Exp $ */ + +/* some useful #defines */ +#ifdef EXTERN +# define I__(i) = i +#else +# define I__(i) +# define EXTERN extern +# define EXTERN_DEFINED +#endif + +/* Don't know of a system on which including sys/ioctl.h with termios.h + * causes problems. If there is one, these lines need to be deleted and + * aclocal.m4 needs to have stuff un-commented. + */ +#ifdef SYS_IOCTL_WITH_TERMIOS +# define SYS_IOCTL_WITH_TERMIOS +#endif /* SYS_IOCTL_WITH_TERMIOS */ +#ifdef SYS_IOCTL_WITH_TERMIO +# define SYS_IOCTL_WITH_TERMIO +#endif /* SYS_IOCTL_WITH_TERMIO */ + +#ifdef HAVE_TERMIOS_H +# include +# ifdef SYS_IOCTL_WITH_TERMIOS +# if !(defined(sun) && !defined(__svr4__)) /* too many warnings on sunos */ + /* Need to include sys/ioctl.h on some systems to get the TIOCGWINSZ + * stuff (eg, digital unix). + */ +# include +# endif /* !(sun && !__svr4__) */ +# endif /* SYS_IOCTL_WITH_TERMIOS */ +typedef struct termios TTY_state; +#else +# ifdef HAVE_TERMIO_H +# include +# ifdef SYS_IOCTL_WITH_TERMIO +# include /* see comment above in termios stuff */ +# endif /* SYS_IOCTL_WITH_TERMIO */ +# if _BSD_SYSV /* BRL UNIX System V emulation */ +# ifndef NTTYDISC +# define TIOCGETD _IOR( 't', 0, int ) +# define TIOCSETD _IOW( 't', 1, int ) +# define NTTYDISC 2 +# endif +# ifndef TIOCSTI +# define TIOCSTI _IOW( 't', 114, char ) +# endif +# ifndef TIOCSPGRP +# define TIOCSPGRP _IOW( 't', 118, int ) +# endif +# endif /* _BSD_SYSV */ +typedef struct termio TTY_state; +# else /* HAVE_TERMIO_H */ +/* Assume BSD tty stuff. Uses TIOCGETP, TIOCSETN; uses TIOCGATC/TIOCSATC if + * available, otherwise it uses TIOCGETC/TIOCSETC (also uses TIOCGLTC/TIOCSLTC + * if available) + */ +# ifdef _MINIX +# include +# define TIOCSETN TIOCSETP +# else +# include +# endif +typedef struct { + struct sgttyb sgttyb; +# ifdef TIOCGATC + struct lchars lchars; +# else /* TIOCGATC */ + struct tchars tchars; +# ifdef TIOCGLTC + struct ltchars ltchars; +# endif /* TIOCGLTC */ +# endif /* TIOCGATC */ +} TTY_state; +# endif /* HAVE_TERMIO_H */ +#endif /* HAVE_TERMIOS_H */ + +/* Flags for set_tty() */ +#define TF_NONE 0x00 +#define TF_WAIT 0x01 /* drain output, even it requires sleep() */ +#define TF_MIPSKLUDGE 0x02 /* kludge to unwedge RISC/os 5.0 tty driver */ + +EXTERN int tty_fd I__(-1); /* dup'd tty file descriptor */ +EXTERN int tty_devtty; /* true if tty_fd is from /dev/tty */ +EXTERN TTY_state tty_state; /* saved tty state */ + +extern int get_tty ARGS((int fd, TTY_state *ts)); +extern int set_tty ARGS((int fd, TTY_state *ts, int flags)); +extern void tty_init ARGS((int init_ttystate)); +extern void tty_close ARGS((void)); + +/* be sure not to interfere with anyone else's idea about EXTERN */ +#ifdef EXTERN_DEFINED +# undef EXTERN_DEFINED +# undef EXTERN +#endif +#undef I__ -- cgit v1.2.3