X-Git-Url: https://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Ffsm.h;h=75a36d52fe94e9172a0578ef5491a06e2fb26344;hp=2627fbf65864297a517968cc7fca91d1ece6b178;hb=HEAD;hpb=f53a48eb9d74db3c71938e114b7f489c339bc003 diff --git a/pppd/fsm.h b/pppd/fsm.h index 2627fbf..50f75e6 100644 --- a/pppd/fsm.h +++ b/pppd/fsm.h @@ -39,15 +39,22 @@ * 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