186 lines
5.7 KiB
C
186 lines
5.7 KiB
C
/* $Id$ */
|
|
|
|
#ifndef TTYIO_H
|
|
#define TTYIO_H
|
|
|
|
/*
|
|
* Timer numbers for Hydra
|
|
*/
|
|
#define TIMERNO_BRAIN 0
|
|
#define TIMERNO_RX 1
|
|
#define TIMERNO_TX 2
|
|
|
|
#define RESETTIMER(x) tty_resettimer(x)
|
|
#define RESETTIMERS() tty_resettimers()
|
|
#define SETTIMER(x,y) tty_settimer(x,y)
|
|
#define EXPIRED(x) tty_expired(x)
|
|
#define RUNNING(x) tty_running(x)
|
|
|
|
#define TCHECK() tty_check()
|
|
#define PUTCHECK(x) tty_putcheck(x)
|
|
#define WAITPUTGET(x) tty_waitputget(x)
|
|
#define FLUSHOUT() tty_flushout()
|
|
#define FLUSHIN() tty_flushin()
|
|
#define PUTCHAR(x) tty_putc(x)
|
|
#define PUT(x,y) tty_put(x,y)
|
|
#define PUTSTR(x) tty_put(x,strlen(x))
|
|
#define GETCHAR(x) tty_getc(x)
|
|
#define UNGETCHAR(x) tty_ungetc(x)
|
|
#define GET(x,y,z) tty_get(x,y,z)
|
|
#define PUTGET(a,b,x,y) tty_putget(a,b,x,y)
|
|
#define STATUS tty_status
|
|
|
|
#define STAT_SUCCESS 0
|
|
#define STAT_ERROR 1
|
|
#define STAT_TIMEOUT 2
|
|
#define STAT_EOFILE 3
|
|
#define STAT_HANGUP 4
|
|
#define STAT_EMPTY 5
|
|
|
|
#define SUCCESS (STATUS == 0)
|
|
#define TERROR (-STAT_ERROR)
|
|
#define TIMEOUT (-STAT_TIMEOUT)
|
|
#define EOFILE (-STAT_EOFILE)
|
|
#define HANGUP (-STAT_HANGUP)
|
|
#define EMPTY (-STAT_EMPTY)
|
|
|
|
#define GET_COMPLETE(x) (x & 1)
|
|
#define PUT_COMPLETE(x) (x & 2)
|
|
|
|
#ifndef NUL
|
|
#define NUL 0x00
|
|
#endif
|
|
#define SOH 0x01
|
|
#define STX 0x02
|
|
#define ETX 0x03
|
|
#define EOT 0x04
|
|
#define ENQ 0x05
|
|
#define ACK 0x06
|
|
#define BEL 0x07
|
|
#define BS 0x08
|
|
#define HT 0x09
|
|
#define LF 0x0a
|
|
#define VT 0x0b
|
|
#ifndef FF
|
|
#define FF 0x0c
|
|
#endif
|
|
#ifndef CR
|
|
#define CR 0x0d
|
|
#endif
|
|
#define SO 0x0e
|
|
#define SI 0x0f
|
|
#define DLE 0x10
|
|
#define XON 0x11
|
|
#define DC1 0x11
|
|
#define DC2 0x12
|
|
#define XOFF 0x13
|
|
#define DC3 0x13
|
|
#define DC4 0x14
|
|
#define NAK 0x15
|
|
#define SYN 0x16
|
|
#define ETB 0x17
|
|
#define CAN 0x18
|
|
#define EM 0x19
|
|
#define SUB 0x1a
|
|
#ifndef ESC
|
|
#define ESC 0x1b
|
|
#endif
|
|
#define RS 0x1e
|
|
#define US 0x1f
|
|
#define TSYNC 0xae
|
|
#define YOOHOO 0xf1
|
|
|
|
/* ### Modifned by T.Tanaka on 4 Dec 1995 */
|
|
#define ClearArray(x) memset((char *)x, 0, sizeof x)
|
|
|
|
#define NETADD(c) { PUTCHAR(c); }
|
|
#define NET2ADD(c1,c2) { NETADD(c1); NETADD(c2); }
|
|
|
|
#define MY_STATE_WILL 0x01
|
|
#define MY_WANT_STATE_WILL 0x02
|
|
#define MY_STATE_DO 0x04
|
|
#define MY_WANT_STATE_DO 0x08
|
|
#define my_state_is_do(opt) (telnet_options[opt]&MY_STATE_DO)
|
|
#define my_state_is_will(opt) (telnet_options[opt]&MY_STATE_WILL)
|
|
#define my_want_state_is_do(opt) (telnet_options[opt]&MY_WANT_STATE_DO)
|
|
#define my_want_state_is_will(opt) (telnet_options[opt]&MY_WANT_STATE_WILL)
|
|
#define my_state_is_dont(opt) (!my_state_is_do(opt))
|
|
#define my_state_is_wont(opt) (!my_state_is_will(opt))
|
|
#define my_want_state_is_dont(opt) (!my_want_state_is_do(opt))
|
|
#define my_want_state_is_wont(opt) (!my_want_state_is_will(opt))
|
|
#define set_my_want_state_do(opt) {telnet_options[opt] |= MY_WANT_STATE_DO;}
|
|
#define set_my_want_state_will(opt) {telnet_options[opt] |= MY_WANT_STATE_WILL;}
|
|
#define set_my_want_state_dont(opt) {telnet_options[opt] &= ~MY_WANT_STATE_DO;}
|
|
#define set_my_want_state_wont(opt) {telnet_options[opt] &= ~MY_WANT_STATE_WILL;}
|
|
|
|
#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 */
|
|
|
|
/* 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_ENVIRON 36 /* Environment variables */
|
|
#define TELOPT_AUTHENTICATION 37/* Authenticate */
|
|
#define TELOPT_ENCRYPT 38 /* Encryption option */
|
|
#define TELOPT_EXOPL 255 /* extended-options-list */
|
|
/* ### */
|
|
|
|
extern int tty_status;
|
|
|
|
extern int tty_check(void);
|
|
extern int tty_waitputget(int);
|
|
extern int tty_ungetc(int);
|
|
extern int tty_getc(int);
|
|
extern int tty_get(char*,int,int);
|
|
extern int tty_putcheck(int);
|
|
extern int tty_putc(int);
|
|
extern int tty_put(char*,int);
|
|
extern int tty_putget(char**,int*,char**,int*);
|
|
extern void tty_flushout(void);
|
|
extern void tty_flushin(void);
|
|
extern void sendbrk(void);
|
|
extern int tty_resettimer(int tno);
|
|
extern void tty_resettimers(void);
|
|
extern int tty_settimer(int,int);
|
|
extern int tty_expired(int);
|
|
extern int tty_running(int);
|
|
|
|
#endif
|