-extern int debug; /* Debug flag */
-extern int ifunit; /* Interface unit number */
-extern char ifname[]; /* Interface name */
-extern int fd; /* Device file descriptor */
-extern int s; /* socket descriptor */
-extern char hostname[]; /* hostname */
-extern u_char outpacket_buf[]; /* buffer for outgoing packets */
-
-void quit __ARGS((void)); /* Cleanup and exit */
-void timeout __ARGS((void (*)(), caddr_t, int));
- /* Look-alike of kernel's timeout() */
-void untimeout __ARGS((void (*)(), caddr_t));
- /* Look-alike of kernel's untimeout() */
-void output __ARGS((int, u_char *, int));
- /* Output a PPP packet */
-void demuxprotrej __ARGS((int, int));
+/*
+ * Global variables.
+ */
+
+extern int hungup; /* Physical layer has disconnected */
+extern int ifunit; /* Interface unit number */
+extern char ifname[]; /* Interface name */
+extern int ttyfd; /* Serial device file descriptor */
+extern char hostname[]; /* Our hostname */
+extern u_char outpacket_buf[]; /* Buffer for outgoing packets */
+extern int phase; /* Current state of link - see values below */
+extern int baud_rate; /* Current link speed in bits/sec */
+extern char *progname; /* Name of this program */
+
+/*
+ * Variables set by command-line options.
+ */
+
+extern int debug; /* Debug flag */
+extern int kdebugflag; /* Tell kernel to print debug messages */
+extern int default_device; /* Using /dev/tty or equivalent */
+extern char devnam[]; /* Device name */
+extern int crtscts; /* Use hardware flow control */
+extern int modem; /* Use modem control lines */
+extern int inspeed; /* Input/Output speed requested */
+extern u_int32_t netmask; /* IP netmask to set on interface */
+extern int lockflag; /* Create lock file to lock the serial dev */
+extern int nodetach; /* Don't detach from controlling tty */
+extern char *connector; /* Script to establish physical link */
+extern char *disconnector; /* Script to disestablish physical link */
+extern char *welcomer; /* Script to welcome client after connection */
+extern int maxconnect; /* maximum number of seconds for a connection */
+extern char user[]; /* Username for PAP */
+extern char passwd[]; /* Password for PAP */
+extern int auth_required; /* Peer is required to authenticate */
+extern int proxyarp; /* Set up proxy ARP entry for peer */
+extern int persist; /* Reopen link after it goes down */
+extern int uselogin; /* Use /etc/passwd for checking PAP */
+extern int lcp_echo_interval; /* Interval between LCP echo-requests */
+extern int lcp_echo_fails; /* Tolerance to unanswered echo-requests */
+extern char our_name[]; /* Our name for authentication purposes */
+extern char remote_name[]; /* Peer's name for authentication */
+extern int usehostname; /* Use hostname for our_name */
+extern int disable_defaultip; /* Don't use hostname for default IP adrs */
+extern int demand; /* Do dial-on-demand */
+extern char *ipparam; /* Extra parameter for ip up/down scripts */
+extern int cryptpap; /* Others' PAP passwords are encrypted */
+extern int idle_time_limit;/* Shut down link if idle for this long */
+extern int holdoff; /* Dead time before restarting */
+
+/*
+ * Values for phase.
+ */
+#define PHASE_DEAD 0
+#define PHASE_DORMANT 1
+#define PHASE_ESTABLISH 2
+#define PHASE_AUTHENTICATE 3
+#define PHASE_NETWORK 4
+#define PHASE_TERMINATE 5
+#define PHASE_HOLDOFF 6
+
+/*
+ * The following struct gives the addresses of procedures to call
+ * for a particular protocol.
+ */
+struct protent {
+ u_short protocol; /* PPP protocol number */
+ void (*init)(); /* Initialization procedure */
+ void (*input)(); /* Process a received packet */
+ void (*protrej)(); /* Process a received protocol-reject */
+ void (*lowerup)(); /* Lower layer has come up */
+ void (*lowerdown)(); /* Lower layer has gone down */
+ void (*open)(); /* Open the protocol */
+ void (*close)(); /* Close the protocol */
+ int (*printpkt)(); /* Print a packet in readable form */
+ void (*datainput)(); /* Process a received data packet */
+ int enabled_flag; /* 0 iff protocol is disabled */
+ char *name; /* Text name of protocol */
+ void (*check_options)(); /* Check requested options, assign dflts */
+ int (*demand_conf)(); /* Configure interface for demand-dial */
+};
+
+/* Table of pointers to supported protocols */
+extern struct protent *protocols[];
+
+/*
+ * Prototypes.
+ */
+
+/* Procedures exported from main.c. */
+void die __P((int)); /* Cleanup and exit */
+void quit __P((void)); /* like die(1) */
+void novm __P((char *)); /* Say we ran out of memory, and die */
+void timeout __P((void (*func)(), caddr_t arg, int t));
+ /* Call func(arg) after t seconds */
+void untimeout __P((void (*func)(), caddr_t arg));
+ /* Cancel call to func(arg) */
+int run_program __P((char *prog, char **args, int must_exist));
+ /* Run program prog with args in child */
+void demuxprotrej __P((int, int));