#ifndef _TMEXTERN_H
#define _TMEXTERN_H
#include <stdio.h>
#include <unistd.h>
#include <sys/poll.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <termio.h>
#include <sys/stermio.h>
#include <sys/termiox.h>
#include "tmstruct.h"
#ifdef __cplusplus
extern "C" {
#endif
extern int find_label(FILE *, char *);
extern const char *not_supported[];
#ifdef EUC
extern char *sttyparse(int, char *[], int, struct termio *,
struct termios *, struct termiox *, struct winsize *,
eucwidth_t *, struct eucioc *, ldterm_cs_data_user_t *,
ldterm_cs_data_user_t *);
extern int get_ttymode(int, struct termio *, struct termios *,
struct stio *, struct termiox *, struct winsize *,
struct eucioc *, ldterm_cs_data_user_t *);
extern int set_ttymode(int, int, struct termio *, struct termios *,
struct stio *, struct termiox *, struct winsize *,
struct winsize *, struct eucioc *, ldterm_cs_data_user_t *, int);
#else
extern char *sttyparse(int, char *[], int, struct termio *,
struct termios *, struct termiox *, struct winsize *);
extern int get_ttymode(int, struct termio *, struct termios *,
struct stio *, struct termiox *, struct winsize *);
extern int set_ttymode(int, int, struct termio *, struct termios *,
struct stio *, struct termiox *, struct winsize *,
struct winsize *);
#endif
extern int auto_termio(int);
extern char *autobaud(int, int);
extern void write_prompt(int, struct pmtab *, int, int);
extern void timedout(int);
extern void tmchild(struct pmtab *);
extern void sigpoll(int);
extern void ttymon_express(int, char **);
extern void revokedevaccess(char *, uid_t, gid_t, mode_t);
extern void do_poll(struct pollfd *, int);
extern void sigalarm(int);
extern void sigterm(int);
extern void sigchild(int);
extern void sigpoll_catch(int);
extern void state_change(void);
extern void re_read(void);
extern void got_carrier(struct pmtab *);
extern int tm_checklock(int);
extern int tm_lock(int);
extern int check_session(int);
extern char *lastname(char *);
extern void log(const char *, ...);
extern void fatal(const char *, ...);
extern void openttymonlog(void);
extern char *getword(char *, int *, int);
extern char quoted(char *, int *);
extern int poll_data(void);
extern void sigint(int);
extern void read_pmtab(void);
extern void purge(void);
extern void openpid(void);
extern void openpipes(void);
extern void get_environ(void);
extern void sacpoll(void);
extern void catch_signals(void);
extern void child_sigcatch(void);
extern int push_linedisc(int, char *, char *);
extern int set_termio(int, char *, char *, int, long);
extern int initial_termio(int, struct pmtab *);
extern int hang_up_line(int);
extern void flush_input(int);
extern void read_ttydefs(const char *, int);
extern struct Gdef *find_def(char *);
extern void mkargv(char *, char **, int *, int);
extern int check_flags(char *);
extern char *strsave(char *);
extern int account(char *);
extern void cleanut(pid_t, int);
extern int checkut_line(char *line);
extern void getty_account(char *);
extern int check_device(char *);
extern int check_cmd(char *);
extern void cons_printf(const char *, ...);
extern void copystr(char *, char *);
extern int strcheck(char *, int);
extern int vml(char *);
extern int check_version(int, char *);
#ifdef SYS_NAME
extern void sys_name(int);
#endif
extern struct Gdef DEFAULT;
extern int Retry;
extern struct rlimit Rlimit;
extern struct pmtab *PMtab;
extern struct pollfd *Pollp;
extern int Nentries;
extern int Npollfd;
extern struct Gdef Gdef[];
extern int Ndefs;
extern long Mtime;
extern FILE *Logfp;
extern int Sfd, Pfd;
extern int PCpipe[];
extern int Lckfd;
extern char State;
extern char *Istate;
extern char *Tag;
extern int Reread_flag;
extern int Maxfiles;
extern int Maxfds;
extern char **environ;
extern char *optarg;
extern int optind, opterr;
extern int Nlocked;
extern sigset_t Origmask;
extern struct sigaction Sigalrm;
extern struct sigaction Sigcld;
extern struct sigaction Sigint;
extern struct sigaction Sigpoll;
extern struct sigaction Sigquit;
extern struct sigaction Sigterm;
#ifdef DEBUG
extern struct sigaction Sigusr1;
extern struct sigaction Sigusr2;
#endif
#ifdef DEBUG
extern FILE *Debugfp;
extern void debug(const char *, ...);
#endif
extern uid_t Uucp_uid;
extern gid_t Tty_gid;
extern struct strbuf *peek_ptr;
extern int Logmaxsz;
extern int Splflag;
extern struct Gdef *get_speed(struct pmtab *);
extern void open_device(struct pmtab *);
extern void set_softcar(struct pmtab *);
extern void setup_PCpipe(void);
extern int fd_cklock(int);
extern int fd_mklock(int);
#ifdef __cplusplus
}
#endif
#endif