#ifndef _TIP_H
#define _TIP_H
#include <sys/types.h>
#ifdef USG
#include <fcntl.h>
#include <unistd.h>
#else
#include <sys/file.h>
#endif
#include <sys/termios.h>
#include <sys/filio.h>
#include <signal.h>
#include <stdio.h>
#include <pwd.h>
#include <ctype.h>
#include <setjmp.h>
#include <errno.h>
#include <string.h>
#include <time.h>
#include <sys/isa_defs.h>
#include <stdlib.h>
#include <sys/wait.h>
#define _CTRL(c) (c&037)
#ifdef USG
#define signal(_sig_, _hdlr_) sigset((_sig_), (_hdlr_))
#endif
typedef void (*sig_handler_t)(int);
extern char *DV;
extern char *EL;
extern char *CM;
extern char *IE;
extern char *OE;
extern char *CU;
extern char *AT;
extern char *PN;
extern char *DI;
extern char *PA;
extern char *PH;
extern char *RM;
extern char *HO;
extern int BR;
extern int FS;
extern char DU;
extern char HW;
extern char *ES;
extern char *EX;
extern char *FO;
extern char *RC;
extern char *RE;
extern char *PR;
extern int DL;
extern int CL;
extern int ET;
extern int DB;
typedef struct {
char *v_name;
char v_type;
char v_access;
char *v_abrev;
char *v_value;
} value_t;
#define STRING 01
#define BOOL 02
#define NUMBER 04
#define CHAR 010
#define WRITE 01
#define READ 02
#define CHANGED 01
#define PUBLIC 1
#define PRIVATE 03
#define ROOT 05
#define TRUE 1
#define FALSE 0
#define ENVIRON 020
#define IREMOTE 040
#define INIT 0100
#define TMASK 017
typedef struct {
char *acu_name;
int (*acu_dialer)(char *, char *);
void (*acu_disconnect)(void);
void (*acu_abort)(void);
} acu_t;
#define equal(a, b) (strcmp(a, b) == 0)
typedef union {
int zz_number;
int *zz_address;
#if defined(_LITTLE_ENDIAN)
short zz_boolean;
char zz_character;
#endif
#if defined(_BIG_ENDIAN)
int zz_boolean;
int zz_character;
#endif
} zzhack;
#define value(v) vtable[v].v_value
#define boolean(v) ((((zzhack *)(&(v))))->zz_boolean)
#define number(v) ((((zzhack *)(&(v))))->zz_number)
#define character(v) ((((zzhack *)(&(v))))->zz_character)
#define address(v) ((((zzhack *)(&(v))))->zz_address)
typedef struct {
char e_char;
char e_flags;
char *e_help;
void (*e_func)(int);
} esctable_t;
#define NORM 00
#define EXP 01
#define PRIV 02
extern int vflag;
extern value_t vtable[];
extern int noparity;
#ifndef ACULOG
#define logent(a, b, c, d)
#define loginit()
#else
extern void logent(char *, char *, char *, char *);
extern void loginit(void);
#endif
#define BEAUTIFY 0
#define BAUDRATE 1
#define DIALTIMEOUT 2
#define EOFREAD 3
#define EOFWRITE 4
#define EOL 5
#define ESCAPE 6
#define EXCEPTIONS 7
#define FORCE 8
#define FRAMESIZE 9
#define HOST 10
#define LOG 11
#define PHONES 12
#define PROMPT 13
#define RAISE 14
#define RAISECHAR 15
#define RECORD 16
#define REMOTE 17
#define SCRIPT 18
#define TABEXPAND 19
#define VERBOSE 20
#define SHELL 21
#define HOME 22
#define ECHOCHECK 23
#define DISCONNECT 24
#define TAND 25
#define LDELAY 26
#define CDELAY 27
#define ETIMEOUT 28
#define RAWFTP 29
#define HALFDUPLEX 30
#define LECHO 31
#define PARITY 32
#define HARDWAREFLOW 33
#define NOVAL ((value_t *)NULL)
#define NOACU ((acu_t *)NULL)
#define NOSTR ((char *)NULL)
#define NOFILE ((FILE *)NULL)
#define NOPWD ((struct passwd *)0)
extern struct termios arg;
extern struct termios defarg;
extern FILE *fscript;
extern FILE *phfd;
extern int fildes[2];
extern int repdes[2];
extern int FD;
extern int AC;
extern int vflag;
extern int sfd;
extern int pid;
extern int uid, euid;
extern int gid, egid;
extern int stoprompt;
extern int timedout;
extern int cumode;
extern char fname[80];
extern char copyname[80];
extern char ccc;
extern char ch;
extern char *uucplock;
extern int trusted_device;
extern char *connect(void);
extern char *ctrl(char);
extern char *getremote(char *);
extern char *expand(char []);
extern char *vinterp(char *, char);
extern void cumain(int, char *[]);
extern void delock(char *);
extern void disconnect(char *);
extern void myperm(void);
extern void parwrite(int, unsigned char *, int);
extern void raw(void);
extern void setparity(char *);
extern void setscript(void);
extern void tandem(char *);
extern void tip_abort(char *);
extern void ttysetup(int);
extern void unraw(void);
extern void userperm(void);
extern void vinit(void);
extern void vlex(char *);
extern int any(char, char *);
extern int hunt(char *);
extern int prompt(char *, char *, size_t);
extern int rgetent(char *, char *, int);
extern int rgetflag(char *);
extern int rgetnum(char *);
extern int speed(int);
extern int tip_mlock(char *);
extern int vstring(char *, char *);
#endif