mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-30 04:22:44 +00:00
9e03db613c
Add new files created for emulator. Modify NetBSD import to work with FreeBSD and add new features and code. The complete emulator is essentially a combination of work/code implemented by Sean Eric Fagan, Soren Schmidt, Scott Bartram, and myself, Steven Wallace. Features of this new emulator system include: o "clean" code, including strict prototyping. o Auto-generation of ibcs2 system calls, xenix system calls, isc system calls. Generation includes system tables, structure definitions, and prototyping of function calls. o ibcs2 emulator does not rely on any COMPAT_43 system calls. o embedded socksys support o ibcs2 msgsys, semsys, shmsys calls supported if supported in kernel o alternate /emul/ibcs2 namespace searched first for files in ibcs2 system. Usefull to keep sysv libraries, binaries in /emul/ibcs2. o many other finer details and functions fixed or implemented.
236 lines
6.6 KiB
C
236 lines
6.6 KiB
C
/* $NetBSD: ibcs2_termios.h,v 1.3 1994/10/26 02:53:07 cgd Exp $ */
|
|
|
|
/*
|
|
* Copyright (c) 1994 Scott Bartram
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
* 3. All advertising materials mentioning features or use of this software
|
|
* must display the following acknowledgement:
|
|
* This product includes software developed by Scott Bartram.
|
|
* 4. The name of the author may not be used to endorse or promote products
|
|
* derived from this software without specific prior written permission
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
#ifndef _IBCS2_TERMIOS_H
|
|
#define _IBCS2_TERMIOS_H 1
|
|
|
|
#include <i386/ibcs2/ibcs2_types.h>
|
|
|
|
#define IBCS2_NCC 8
|
|
#define IBCS2_NCCS 13
|
|
|
|
typedef u_short ibcs2_tcflag_t;
|
|
typedef u_char ibcs2_cc_t;
|
|
typedef u_long ibcs2_speed_t;
|
|
|
|
struct ibcs2_termio {
|
|
u_short c_iflag;
|
|
u_short c_oflag;
|
|
u_short c_cflag;
|
|
u_short c_lflag;
|
|
char c_line;
|
|
u_char c_cc[IBCS2_NCC];
|
|
};
|
|
|
|
struct ibcs2_termios {
|
|
ibcs2_tcflag_t c_iflag;
|
|
ibcs2_tcflag_t c_oflag;
|
|
ibcs2_tcflag_t c_cflag;
|
|
ibcs2_tcflag_t c_lflag;
|
|
char c_line;
|
|
ibcs2_cc_t c_cc[IBCS2_NCCS];
|
|
char c_ispeed;
|
|
char c_ospeed;
|
|
};
|
|
|
|
#define IBCS2_VINTR 0
|
|
#define IBCS2_VQUIT 1
|
|
#define IBCS2_VERASE 2
|
|
#define IBCS2_VKILL 3
|
|
#define IBCS2_VEOF 4
|
|
#define IBCS2_VEOL 5
|
|
#define IBCS2_VEOL2 6
|
|
#define IBCS2_VMIN 4
|
|
#define IBCS2_VTIME 5
|
|
#define IBCS2_VSWTCH 7
|
|
#define IBCS2_VSUSP 10
|
|
#define IBCS2_VSTART 11
|
|
#define IBCS2_VSTOP 12
|
|
|
|
#define IBCS2_CNUL 0
|
|
#define IBCS2_CDEL 0377
|
|
#define IBCS2_CESC '\\'
|
|
#define IBCS2_CINTR 0177
|
|
#define IBCS2_CQUIT 034
|
|
#define IBCS2_CERASE '#'
|
|
#define IBCS2_CKILL '@'
|
|
#define IBCS2_CSTART 021
|
|
#define IBCS2_CSTOP 023
|
|
#define IBCS2_CSWTCH 032
|
|
#define IBCS2_CNSWTCH 0
|
|
#define IBCS2_CSUSP 032
|
|
|
|
#define IBCS2_IGNBRK 0000001
|
|
#define IBCS2_BRKINT 0000002
|
|
#define IBCS2_IGNPAR 0000004
|
|
#define IBCS2_PARMRK 0000010
|
|
#define IBCS2_INPCK 0000020
|
|
#define IBCS2_ISTRIP 0000040
|
|
#define IBCS2_INLCR 0000100
|
|
#define IBCS2_IGNCR 0000200
|
|
#define IBCS2_ICRNL 0000400
|
|
#define IBCS2_IUCLC 0001000
|
|
#define IBCS2_IXON 0002000
|
|
#define IBCS2_IXANY 0004000
|
|
#define IBCS2_IXOFF 0010000
|
|
#define IBCS2_IMAXBEL 0020000
|
|
#define IBCS2_DOSMODE 0100000
|
|
|
|
#define IBCS2_OPOST 0000001
|
|
#define IBCS2_OLCUC 0000002
|
|
#define IBCS2_ONLCR 0000004
|
|
#define IBCS2_OCRNL 0000010
|
|
#define IBCS2_ONOCR 0000020
|
|
#define IBCS2_ONLRET 0000040
|
|
#define IBCS2_OFILL 0000100
|
|
#define IBCS2_OFDEL 0000200
|
|
#define IBCS2_NLDLY 0000400
|
|
#define IBCS2_NL0 0000000
|
|
#define IBCS2_NL1 0000400
|
|
#define IBCS2_CRDLY 0003000
|
|
#define IBCS2_CR0 0000000
|
|
#define IBCS2_CR1 0001000
|
|
#define IBCS2_CR2 0002000
|
|
#define IBCS2_CR3 0003000
|
|
#define IBCS2_TABDLY 0014000
|
|
#define IBCS2_TAB0 0000000
|
|
#define IBCS2_TAB1 0004000
|
|
#define IBCS2_TAB2 0010000
|
|
#define IBCS2_TAB3 0014000
|
|
#define IBCS2_BSDLY 0020000
|
|
#define IBCS2_BS0 0000000
|
|
#define IBCS2_BS1 0020000
|
|
#define IBCS2_VTDLY 0040000
|
|
#define IBCS2_VT0 0000000
|
|
#define IBCS2_VT1 0040000
|
|
#define IBCS2_FFDLY 0100000
|
|
#define IBCS2_FF0 0000000
|
|
#define IBCS2_FF1 0100000
|
|
|
|
#define IBCS2_CBAUD 0000017
|
|
#define IBCS2_CSIZE 0000060
|
|
#define IBCS2_CS5 0000000
|
|
#define IBCS2_CS6 0000020
|
|
#define IBCS2_CS7 0000040
|
|
#define IBCS2_CS8 0000060
|
|
#define IBCS2_CSTOPB 0000100
|
|
#define IBCS2_CREAD 0000200
|
|
#define IBCS2_PARENB 0000400
|
|
#define IBCS2_PARODD 0001000
|
|
#define IBCS2_HUPCL 0002000
|
|
#define IBCS2_CLOCAL 0004000
|
|
#define IBCS2_RCV1EN 0010000
|
|
#define IBCS2_XMT1EN 0020000
|
|
#define IBCS2_LOBLK 0040000
|
|
#define IBCS2_XCLUDE 0100000
|
|
|
|
#define IBCS2_ISIG 0000001
|
|
#define IBCS2_ICANON 0000002
|
|
#define IBCS2_XCASE 0000004
|
|
#define IBCS2_ECHO 0000010
|
|
#define IBCS2_ECHOE 0000020
|
|
#define IBCS2_ECHOK 0000040
|
|
#define IBCS2_ECHONL 0000100
|
|
#define IBCS2_NOFLSH 0000200
|
|
#define IBCS2_IEXTEN 0000400
|
|
#define IBCS2_TOSTOP 0001000
|
|
|
|
#define IBCS2_XIOC (('i'<<24)|('X'<<16))
|
|
#define IBCS2_XCGETA (IBCS2_XIOC|1)
|
|
#define IBCS2_XCSETA (IBCS2_XIOC|2)
|
|
#define IBCS2_XCSETAW (IBCS2_XIOC|3)
|
|
#define IBCS2_XCSETAF (IBCS2_XIOC|4)
|
|
|
|
#define IBCS2_OXIOC ('x'<<8)
|
|
#define IBCS2_OXCGETA (IBCS2_OXIOC|1)
|
|
#define IBCS2_OXCSETA (IBCS2_OXIOC|2)
|
|
#define IBCS2_OXCSETAW (IBCS2_OXIOC|3)
|
|
#define IBCS2_OXCSETAF (IBCS2_OXIOC|4)
|
|
|
|
#define IBCS2_TIOC ('T'<<8)
|
|
#define IBCS2_TCGETA (IBCS2_TIOC|1)
|
|
#define IBCS2_TCSETA (IBCS2_TIOC|2)
|
|
#define IBCS2_TCSETAW (IBCS2_TIOC|3)
|
|
#define IBCS2_TCSETAF (IBCS2_TIOC|4)
|
|
#define IBCS2_TCSBRK (IBCS2_TIOC|5)
|
|
#define IBCS2_TCXONC (IBCS2_TIOC|6)
|
|
#define IBCS2_TCFLSH (IBCS2_TIOC|7)
|
|
|
|
#define IBCS2_TCGETSC (IBCS2_TIOC|34)
|
|
#define IBCS2_TCSETSC (IBCS2_TIOC|35)
|
|
|
|
#define IBCS2_TIOCSWINSZ (IBCS2_TIOC|103)
|
|
#define IBCS2_TIOCGWINSZ (IBCS2_TIOC|104)
|
|
#define IBCS2_TIOCSPGRP (IBCS2_TIOC|118)
|
|
#define IBCS2_TIOCGPGRP (IBCS2_TIOC|119)
|
|
|
|
#define IBCS2_TCSANOW IBCS2_XCSETA
|
|
#define IBCS2_TCSADRAIN IBCS2_XCSETAW
|
|
#define IBCS2_TCSAFLUSH IBCS2_XCSETAF
|
|
#define IBCS2_TCSADFLUSH IBCS2_XCSETAF
|
|
|
|
#define IBCS2_TCIFLUSH 0
|
|
#define IBCS2_TCOFLUSH 1
|
|
#define IBCS2_TCIOFLUSH 2
|
|
|
|
#define IBCS2_TCOOFF 0
|
|
#define IBCS2_TCOON 1
|
|
#define IBCS2_TCIOFF 2
|
|
#define IBCS2_TCION 3
|
|
|
|
#define IBCS2_B0 0
|
|
#define IBCS2_B50 1
|
|
#define IBCS2_B75 2
|
|
#define IBCS2_B110 3
|
|
#define IBCS2_B134 4
|
|
#define IBCS2_B150 5
|
|
#define IBCS2_B200 6
|
|
#define IBCS2_B300 7
|
|
#define IBCS2_B600 8
|
|
#define IBCS2_B1200 9
|
|
#define IBCS2_B1800 10
|
|
#define IBCS2_B2400 11
|
|
#define IBCS2_B4800 12
|
|
#define IBCS2_B9600 13
|
|
#define IBCS2_B19200 14
|
|
#define IBCS2_B38400 15
|
|
|
|
struct ibcs2_winsize {
|
|
u_short ws_row;
|
|
u_short ws_col;
|
|
u_short ws_xpixel;
|
|
u_short ws_ypixel;
|
|
};
|
|
|
|
#endif /* _IBCS2_H_ */
|
|
|