This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 057/114] Add <arpa/telnet.h> header for Phoenix.


From: Kuba Sejdak <jakub.sejdak@phoesys.com>

---
 newlib/libc/sys/phoenix/include/arpa/telnet.h | 331 ++++++++++++++++++++++++++
 1 file changed, 331 insertions(+)
 create mode 100644 newlib/libc/sys/phoenix/include/arpa/telnet.h

diff --git a/newlib/libc/sys/phoenix/include/arpa/telnet.h b/newlib/libc/sys/phoenix/include/arpa/telnet.h
new file mode 100644
index 0000000..44ffe08
--- /dev/null
+++ b/newlib/libc/sys/phoenix/include/arpa/telnet.h
@@ -0,0 +1,331 @@
+/*
+ * Copyright (c) 1983, 1993
+ *	The Regents of the University of California.  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 the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
+ *
+ *	@(#)telnet.h	8.2 (Berkeley) 12/15/93
+ * $FreeBSD: src/include/arpa/telnet.h,v 1.8 2001/12/03 12:41:18 markm Exp $
+ */
+
+/* Copied from Linux, modified for Phoenix-RTOS. */
+
+#ifndef _ARPA_TELNET_H
+#define	_ARPA_TELNET_H
+
+/* Definitions for the TELNET protocol. */
+#define	IAC		255		/* interpret as command: */
+#define	DONT	254		/* you are not to use option */
+#define	DO		253		/* please, you use option */
+#define	WONT	252		/* I won't use option */
+#define	WILL	251		/* I will use option */
+#define	SB		250		/* interpret as subnegotiation */
+#define	GA		249		/* you may reverse the line */
+#define	EL		248		/* erase the current line */
+#define	EC		247		/* erase the current character */
+#define	AYT		246		/* are you there */
+#define	AO		245		/* abort output--but let prog finish */
+#define	IP		244		/* interrupt process--permanently */
+#define	BREAK	243		/* break */
+#define	DM		242		/* data mark--for connect. cleaning */
+#define	NOP		241		/* nop */
+#define	SE		240		/* end sub negotiation */
+#define EOR     239		/* end of record (transparent mode) */
+#define	ABORT	238		/* Abort process */
+#define	SUSP	237		/* Suspend process */
+#define	xEOF	236		/* End of file: EOF is already used... */
+
+#define SYNCH	242		/* for telfunc calls */
+
+#ifdef TELCMDS
+const char *telcmds[] = {
+	"EOF", "SUSP", "ABORT", "EOR",
+	"SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC",
+	"EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC",
+	0
+};
+#else
+extern char *telcmds[];
+#endif
+
+#define	TELCMD_FIRST		xEOF
+#define	TELCMD_LAST			IAC
+#define	TELCMD_OK(x)		((unsigned int)(x) <= TELCMD_LAST && (unsigned int)(x) >= TELCMD_FIRST)
+#define	TELCMD(x)			telcmds[(x)-TELCMD_FIRST]
+
+/* telnet options */
+#define TELOPT_BINARY				0	/* 8-bit data path */
+#define TELOPT_ECHO					1	/* echo */
+#define	TELOPT_RCP					2	/* prepare to reconnect */
+#define	TELOPT_SGA					3	/* suppress go ahead */
+#define	TELOPT_NAMS					4	/* approximate message size */
+#define	TELOPT_STATUS				5	/* give status */
+#define	TELOPT_TM					6	/* timing mark */
+#define	TELOPT_RCTE					7	/* remote controlled transmission and echo */
+#define TELOPT_NAOL 				8	/* negotiate about output line width */
+#define TELOPT_NAOP 				9	/* negotiate about output page size */
+#define TELOPT_NAOCRD				10	/* negotiate about CR disposition */
+#define TELOPT_NAOHTS				11	/* negotiate about horizontal tabstops */
+#define TELOPT_NAOHTD				12	/* negotiate about horizontal tab disposition */
+#define TELOPT_NAOFFD				13	/* negotiate about formfeed disposition */
+#define TELOPT_NAOVTS				14	/* negotiate about vertical tab stops */
+#define TELOPT_NAOVTD				15	/* negotiate about vertical tab disposition */
+#define TELOPT_NAOLFD				16	/* negotiate about output LF disposition */
+#define TELOPT_XASCII				17	/* extended ascic character set */
+#define	TELOPT_LOGOUT				18	/* force logout */
+#define	TELOPT_BM					19	/* byte macro */
+#define	TELOPT_DET					20	/* data entry terminal */
+#define	TELOPT_SUPDUP				21	/* supdup protocol */
+#define	TELOPT_SUPDUPOUTPUT 		22	/* supdup output */
+#define	TELOPT_SNDLOC				23	/* send location */
+#define	TELOPT_TTYPE				24	/* terminal type */
+#define	TELOPT_EOR					25	/* end or record */
+#define	TELOPT_TUID					26	/* TACACS user identification */
+#define	TELOPT_OUTMRK				27	/* output marking */
+#define	TELOPT_TTYLOC				28	/* terminal location number */
+#define	TELOPT_3270REGIME 			29	/* 3270 regime */
+#define	TELOPT_X3PAD				30	/* X.3 PAD */
+#define	TELOPT_NAWS					31	/* window size */
+#define	TELOPT_TSPEED				32	/* terminal speed */
+#define	TELOPT_LFLOW				33	/* remote flow control */
+#define TELOPT_LINEMODE				34	/* Linemode option */
+#define TELOPT_XDISPLOC				35	/* X Display Location */
+#define TELOPT_OLD_ENVIRON 			36	/* Old - Environment variables */
+#define	TELOPT_AUTHENTICATION		37	/* Authenticate */
+#define	TELOPT_ENCRYPT				38	/* Encryption option */
+#define TELOPT_NEW_ENVIRON 			39	/* New - Environment variables */
+#define	TELOPT_EXOPL				255	/* extended-options-list */
+
+
+#define	NTELOPTS			(1+TELOPT_NEW_ENVIRON)
+#ifdef TELOPTS
+const char *telopts[NTELOPTS + 1] = {
+	"BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME",
+	"STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP",
+	"NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS",
+	"NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO",
+	"DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT",
+	"SEND LOCATION", "TERMINAL TYPE", "END OF RECORD",
+	"TACACS UID", "OUTPUT MARKING", "TTYLOC",
+	"3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",
+	"LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",
+	"ENCRYPT", "NEW-ENVIRON",
+	0
+};
+
+#define	TELOPT_FIRST		TELOPT_BINARY
+#define	TELOPT_LAST			TELOPT_NEW_ENVIRON
+#define	TELOPT_OK(x)		((unsigned int)(x) <= TELOPT_LAST)
+#define	TELOPT(x)			telopts[(x)-TELOPT_FIRST]
+#endif
+
+/* Sub-option qualifiers */
+#define	TELQUAL_IS			0	/* Option is... */
+#define	TELQUAL_SEND		1	/* Send option */
+#define	TELQUAL_INFO		2	/* ENVIRON: informational version of IS */
+#define	TELQUAL_REPLY		2	/* AUTHENTICATION: client version of IS */
+#define	TELQUAL_NAME		3	/* AUTHENTICATION: client version of IS */
+
+#define	LFLOW_OFF			0	/* Disable remote flow control */
+#define	LFLOW_ON			1	/* Enable remote flow control */
+#define	LFLOW_RESTART_ANY	2	/* Restart output on any char */
+#define	LFLOW_RESTART_XON	3	/* Restart output only on XON */
+
+/* LINEMODE suboptions */
+#define	LM_MODE			1
+#define	LM_FORWARDMASK	2
+#define	LM_SLC			3
+
+#define	MODE_EDIT		0x01
+#define	MODE_TRAPSIG	0x02
+#define	MODE_ACK		0x04
+#define MODE_SOFT_TAB	0x08
+#define MODE_LIT_ECHO	0x10
+#define	MODE_MASK		0x1f
+
+/* Not part of protocol, but needed to simplify things... */
+#define MODE_FLOW		0x0100
+#define MODE_ECHO		0x0200
+#define MODE_INBIN		0x0400
+#define MODE_OUTBIN		0x0800
+#define MODE_FORCE		0x1000
+
+#define	SLC_SYNCH		1
+#define	SLC_BRK			2
+#define	SLC_IP			3
+#define	SLC_AO			4
+#define	SLC_AYT			5
+#define	SLC_EOR			6
+#define	SLC_ABORT		7
+#define	SLC_EOF			8
+#define	SLC_SUSP		9
+#define	SLC_EC			10
+#define	SLC_EL			11
+#define	SLC_EW			12
+#define	SLC_RP			13
+#define	SLC_LNEXT		14
+#define	SLC_XON			15
+#define	SLC_XOFF		16
+#define	SLC_FORW1		17
+#define	SLC_FORW2		18
+#define SLC_MCL         19
+#define SLC_MCR         20
+#define SLC_MCWL        21
+#define SLC_MCWR        22
+#define SLC_MCBOL       23
+#define SLC_MCEOL       24
+#define SLC_INSRT       25
+#define SLC_OVER        26
+#define SLC_ECR         27
+#define SLC_EWR         28
+#define SLC_EBOL        29
+#define SLC_EEOL        30
+
+#define	NSLC			30
+
+/*
+ * For backwards compatibility, we define SLC_NAMES to be the
+ * list of names if SLC_NAMES is not defined.
+ */
+#define	SLC_NAMELIST	"0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR",	\
+						"ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP",	\
+						"LNEXT", "XON", "XOFF", "FORW1", "FORW2",	\
+						"MCL", "MCR", "MCWL", "MCWR", "MCBOL",		\
+						"MCEOL", "INSRT", "OVER", "ECR", "EWR",		\
+						"EBOL", "EEOL",					\
+						0
+
+#ifdef	SLC_NAMES
+const char *slc_names[] = {
+	SLC_NAMELIST
+};
+#else
+extern char *slc_names[];
+#define	SLC_NAMES		SLC_NAMELIST
+#endif
+
+#define	SLC_NAME_OK(x)	((unsigned int)(x) <= NSLC)
+#define SLC_NAME(x)		slc_names[x]
+
+#define	SLC_NOSUPPORT	0
+#define	SLC_CANTCHANGE	1
+#define	SLC_VARIABLE	2
+#define	SLC_DEFAULT		3
+#define	SLC_LEVELBITS	0x03
+
+#define	SLC_FUNC		0
+#define	SLC_FLAGS		1
+#define	SLC_VALUE		2
+
+#define	SLC_ACK			0x80
+#define	SLC_FLUSHIN		0x40
+#define	SLC_FLUSHOUT	0x20
+
+#define	OLD_ENV_VAR		1
+#define	OLD_ENV_VALUE	0
+#define	NEW_ENV_VAR		0
+#define	NEW_ENV_VALUE	1
+#define	ENV_ESC			2
+#define ENV_USERVAR		3
+
+/* AUTHENTICATION suboptions */
+
+/* Who is authenticating who ... */
+#define	AUTH_WHO_CLIENT			0	/* Client authenticating server */
+#define	AUTH_WHO_SERVER			1	/* Server authenticating client */
+#define	AUTH_WHO_MASK			1
+
+/* Amount of authentication done */
+#define	AUTH_HOW_ONE_WAY		0
+#define	AUTH_HOW_MUTUAL			2
+#define	AUTH_HOW_MASK			2
+
+#define	AUTHTYPE_NULL			0
+#define	AUTHTYPE_KERBEROS_V4	1
+#define	AUTHTYPE_KERBEROS_V5	2
+#define	AUTHTYPE_SPX			3
+#define	AUTHTYPE_MINK			4
+#define	AUTHTYPE_SRA			6
+#define	AUTHTYPE_CNT			7
+
+#define	AUTHTYPE_TEST			99
+
+#ifdef	AUTH_NAMES
+const char *authtype_names[] = {
+	"NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK", NULL, "SRA",
+	0
+};
+#else
+extern char *authtype_names[];
+#endif
+
+#define	AUTHTYPE_NAME_OK(x)		((unsigned int)(x) < AUTHTYPE_CNT)
+#define	AUTHTYPE_NAME(x)		authtype_names[x]
+
+/* ENCRYPTion suboptions */
+#define	ENCRYPT_IS			0	/* I pick encryption type ... */
+#define	ENCRYPT_SUPPORT		1	/* I support encryption types ... */
+#define	ENCRYPT_REPLY		2	/* Initial setup response */
+#define	ENCRYPT_START		3	/* Am starting to send encrypted */
+#define	ENCRYPT_END			4	/* Am ending encrypted */
+#define	ENCRYPT_REQSTART	5	/* Request you start encrypting */
+#define	ENCRYPT_REQEND		6	/* Request you end encrypting */
+#define	ENCRYPT_ENC_KEYID	7
+#define	ENCRYPT_DEC_KEYID	8
+#define	ENCRYPT_CNT			9
+
+#define	ENCTYPE_ANY			0
+#define	ENCTYPE_DES_CFB64	1
+#define	ENCTYPE_DES_OFB64	2
+#define	ENCTYPE_CNT			3
+
+#ifdef	ENCRYPT_NAMES
+const char *encrypt_names[] = {
+	"IS", "SUPPORT", "REPLY", "START", "END",
+	"REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID",
+	0
+};
+
+const char *enctype_names[] = {
+	"ANY", "DES_CFB64", "DES_OFB64",
+	0
+};
+#else
+extern char *encrypt_names[];
+extern char *enctype_names[];
+#endif
+
+
+#define	ENCRYPT_NAME_OK(x)		((unsigned int)(x) < ENCRYPT_CNT)
+#define	ENCRYPT_NAME(x)			encrypt_names[x]
+
+#define	ENCTYPE_NAME_OK(x)		((unsigned int)(x) < ENCTYPE_CNT)
+#define	ENCTYPE_NAME(x)			enctype_names[x]
+
+#endif
-- 
2.5.0


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]