]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/pppd.h
Apply patch for sync serial support from Paul Fulghum.
[ppp.git] / pppd / pppd.h
index a01a52b935909a514f6d0bc64fb7c0ab461dd660..a51c99c80418616e1c4847e3571b227f97b27d1f 100644 (file)
@@ -16,7 +16,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- * $Id: pppd.h,v 1.32 1999/03/19 01:28:27 paulus Exp $
+ * $Id: pppd.h,v 1.36 1999/03/30 06:33:09 paulus Exp $
  */
 
 /*
@@ -27,6 +27,7 @@
 #define __PPPD_H__
 
 #include <stdio.h>             /* for FILE */
+#include <limits.h>            /* for NGROUPS_MAX */
 #include <sys/param.h>         /* for MAXPATHLEN and BSD4_4, if defined */
 #include <sys/types.h>         /* for u_int32_t, if defined */
 #include <sys/time.h>          /* for struct timeval */
@@ -109,6 +110,17 @@ struct permitted_ip {
     u_int32_t  mask;           /* base and mask are in network byte order */
 };
 
+/*
+ * Unfortunately, the linux kernel driver uses a different structure
+ * for statistics from the rest of the ports.
+ * This structure serves as a common representation for the bits
+ * pppd needs.
+ */
+struct pppd_stats {
+    unsigned int       bytes_in;
+    unsigned int       bytes_out;
+};
+
 /*
  * Global variables.
  */
@@ -130,6 +142,9 @@ extern char **script_env;   /* Environment variables for scripts */
 extern int     detached;       /* Have detached from controlling tty */
 extern GIDSET_TYPE groups[NGROUPS_MAX];        /* groups the user is in */
 extern int     ngroups;        /* How many groups valid in groups */
+extern struct pppd_stats link_stats; /* byte/packet counts etc. for link */
+extern int     link_stats_valid; /* set if link_stats is valid */
+extern int     using_pty;      /* using pty as device (notty or pty opt.) */
 
 /*
  * Variables set by command-line options.
@@ -149,6 +164,7 @@ extern bool updetach;       /* Detach from controlling tty when link up */
 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 char    *ptycommand;    /* Command to run on other side of pty */
 extern int     maxconnect;     /* Maximum connect time (seconds) */
 extern char    user[MAXNAMELEN];/* Our name for authenticating ourselves */
 extern char    passwd[MAXSECRETLEN];   /* Password for PAP */
@@ -163,6 +179,9 @@ extern char *ipparam;       /* Extra parameter for ip up/down scripts */
 extern bool    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 */
+extern bool    notty;          /* Stdin/out is not a tty */
+extern char    *record_file;   /* File to record chars sent/received */
+extern bool    sync_serial;    /* Device is synchronous serial device */
 
 #ifdef PPP_FILTER
 extern struct  bpf_program pass_filter;   /* Filter for pkts to pass */
@@ -302,6 +321,7 @@ void demand_unblock __P((void)); /* set all NPs to pass packets */
 void demand_discard __P((void)); /* set all NPs to discard packets */
 void demand_rexmit __P((int)); /* retransmit saved frames for an NP */
 int  loop_chars __P((unsigned char *, int)); /* process chars from loopback */
+int  loop_frame __P((unsigned char *, int)); /* should we bring link up? */
 
 /* Procedures exported from sys-*.c */
 void sys_init __P((void));     /* Do system-dependent initialization */
@@ -309,6 +329,7 @@ void sys_cleanup __P((void));       /* Restore system state before exiting */
 int  sys_check_options __P((void)); /* Check options specified */
 void sys_close __P((void));    /* Clean up in a child before execing */
 int  ppp_available __P((void));        /* Test whether ppp kernel support exists */
+int  get_pty __P((int *, int *, char *, int)); /* Get pty master/slave */
 int  open_ppp_loopback __P((void)); /* Open loopback for demand-dialling */
 int  establish_ppp __P((int)); /* Turn serial port into a ppp interface */
 void restore_loop __P((void)); /* Transfer ppp unit back to loopback */
@@ -337,6 +358,8 @@ void ccp_flags_set __P((int, int, int));
 int  ccp_fatal_error __P((int)); /* Test for fatal decomp error in kernel */
 int  get_idle_time __P((int, struct ppp_idle *));
                                /* Find out how long link has been idle */
+int  get_ppp_stats __P((int, struct pppd_stats *));
+                               /* Return link statistics */
 int  sifvjcomp __P((int, int, int, int));
                                /* Configure VJ TCP header compression */
 int  sifup __P((int));         /* Configure i/f up (for IP) */
@@ -404,6 +427,7 @@ extern struct option_info devnam_info;
 extern struct option_info connector_info;
 extern struct option_info disconnector_info;
 extern struct option_info welcomer_info;
+extern struct option_info ptycommand_info;
 
 /*
  * Inline versions of get/put char/short/long.