]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/fsm.h
pppd.8: Document netmask option
[ppp.git] / pppd / fsm.h
index 2627fbf65864297a517968cc7fca91d1ece6b178..50f75e69a2741880890f32020dcd8b202cf34af4 100644 (file)
  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *
- * $Id: fsm.h,v 1.9 2002/12/04 23:03:32 paulus Exp $
+ * $Id: fsm.h,v 1.10 2004/11/13 02:28:15 paulus Exp $
  */
+#ifndef PPP_FSM_H
+#define PPP_FSM_H
+
+#include "pppdconf.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
 
 /*
  * Packet header = Code, id, length.
  */
 #define HEADERLEN      4
 
-
 /*
  *  CP (LCP, IPCP, etc.) codes.
  */
@@ -68,14 +75,15 @@ typedef struct fsm {
     int protocol;              /* Data Link Layer Protocol field value */
     int state;                 /* State */
     int flags;                 /* Contains option bits */
-    u_char id;                 /* Current id */
-    u_char reqid;              /* Current request id */
-    u_char seen_ack;           /* Have received valid Ack/Nak/Rej to Req */
+    unsigned char id;                  /* Current id */
+    unsigned char reqid;               /* Current request id */
+    unsigned char seen_ack;            /* Have received valid Ack/Nak/Rej to Req */
     int timeouttime;           /* Timeout time in milliseconds */
     int maxconfreqtransmits;   /* Maximum Configure-Request transmissions */
     int retransmits;           /* Number of retransmissions left */
     int maxtermtransmits;      /* Maximum Terminate-Request transmissions */
     int nakloops;              /* Number of nak loops since last ack */
+    int rnakloops;             /* Number of naks received */
     int maxnakloops;           /* Maximum number of nak loops tolerated */
     struct fsm_callbacks *callbacks;   /* Callback routines */
     char *term_reason;         /* Reason for closing protocol */
@@ -84,34 +92,26 @@ typedef struct fsm {
 
 
 typedef struct fsm_callbacks {
-    void (*resetci)            /* Reset our Configuration Information */
-               __P((fsm *));
-    int  (*cilen)              /* Length of our Configuration Information */
-               __P((fsm *));
+    void (*resetci)(fsm *);    /* Reset our Configuration Information */
+    int  (*cilen)(fsm *);      /* Length of our Configuration Information */
     void (*addci)              /* Add our Configuration Information */
-               __P((fsm *, u_char *, int *));
+               (fsm *, unsigned char *, int *);
     int  (*ackci)              /* ACK our Configuration Information */
-               __P((fsm *, u_char *, int));
+               (fsm *, unsigned char *, int);
     int  (*nakci)              /* NAK our Configuration Information */
-               __P((fsm *, u_char *, int));
+               (fsm *, unsigned char *, int, int);
     int  (*rejci)              /* Reject our Configuration Information */
-               __P((fsm *, u_char *, int));
+               (fsm *, unsigned char *, int);
     int  (*reqci)              /* Request peer's Configuration Information */
-               __P((fsm *, u_char *, int *, int));
-    void (*up)                 /* Called when fsm reaches OPENED state */
-               __P((fsm *));
-    void (*down)               /* Called when fsm leaves OPENED state */
-               __P((fsm *));
-    void (*starting)           /* Called when we want the lower layer */
-               __P((fsm *));
-    void (*finished)           /* Called when we don't want the lower layer */
-               __P((fsm *));
-    void (*protreject)         /* Called when Protocol-Reject received */
-               __P((int));
-    void (*retransmit)         /* Retransmission is necessary */
-               __P((fsm *));
+               (fsm *, unsigned char *, int *, int);
+    void (*up)(fsm *);         /* Called when fsm reaches OPENED state */
+    void (*down)(fsm *);       /* Called when fsm leaves OPENED state */
+    void (*starting)(fsm *);   /* Called when we want the lower layer */
+    void (*finished)(fsm *);   /* Called when we don't want the lower layer */
+    void (*protreject)(int);   /* Called when Protocol-Reject received */
+    void (*retransmit)(fsm *); /* Retransmission is necessary */
     int  (*extcode)            /* Called when unknown code received */
-               __P((fsm *, int, int, u_char *, int));
+               (fsm *, int, int, unsigned char *, int);
     char *proto_name;          /* String name for protocol (for messages) */
 } fsm_callbacks;
 
@@ -151,17 +151,23 @@ typedef struct fsm_callbacks {
 /*
  * Prototypes
  */
-void fsm_init __P((fsm *));
-void fsm_lowerup __P((fsm *));
-void fsm_lowerdown __P((fsm *));
-void fsm_open __P((fsm *));
-void fsm_close __P((fsm *, char *));
-void fsm_input __P((fsm *, u_char *, int));
-void fsm_protreject __P((fsm *));
-void fsm_sdata __P((fsm *, int, int, u_char *, int));
+void fsm_init (fsm *);
+void fsm_lowerup (fsm *);
+void fsm_lowerdown (fsm *);
+void fsm_open (fsm *);
+void fsm_close (fsm *, char *);
+void fsm_input (fsm *, unsigned char *, int);
+void fsm_protreject (fsm *);
+void fsm_sdata (fsm *, int, int, unsigned char *, int);
 
 
 /*
  * Variables
  */
 extern int peer_mru[];         /* currently negotiated peer MRU (per unit) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // PPP_FSM_H