/************************************************************************ ** * ** Copyright © 1996 Digital Equipment Corporation. * ** All rights reserved. * ** * ** Redistribution and use in source and binary forms are permitted * ** provided that the above copyright notice and this paragraph are * ** duplicated in all such forms and that any documentation, * ** advertising materials, and other materials related to such * ** distribution and use acknowledge that the software was developed * ** by Digital Equipment Corporation. The name of the * ** Corporation may not be used to endorse or promote products derived * ** from this software without specific prior written permission. * ** THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * ** IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * ** WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * ** * ************************************************************************* **++ ** FACILITY: ** ** fsm_vms.h. ** ** ABSTRACT: ** ** Constant defintions and external defs of variables in ppp_async.c ** ** AUTHORS: ** ** Patrick Crilly, Networks Engineering (Australia). ** ** CREATION DATE: ** ** 29-November-1995 ** ** MODIFICATION HISTORY: ** ** 17-December-1996 Barry W. Kierstein ** Replaced the standard Digital copyright with ** one compatible with the CMU copyright. ** ** 24-July-1996 Barry W. Kierstein ** Corrected copyright notice. ** ** 29-November-1995 Original version. ** **-- */ #ifndef _FSM_VMS_H_ #define _FSM_VMS_H_ /* ** ** import definitions: ** prototype macro ** types ** */ #ifndef _PPPD_H_ #include "pppd.h" #endif /* ** ** import definitions: ** port ** */ #ifndef _PPP_VCI_H_ #include "ppp_vci.h" #endif /* ** ** import definitions: ** clientCallbacks ** */ #ifndef _FSM_IF_H_ #include "fsm_if.h" #endif /* ** ** import definitions: ** callbacks ** */ #ifndef _FSM_H_ #include "fsm.h" #endif /* ** Define a control protocol entry. ** ** This structure is used create a table of all the control protocols ** we know about */ #define MAX_NCP 12 /* maximum length of a control protocol string */ typedef struct NCPEntry { u_short ctrlProtocol; /* number of the control protocol */ char name[MAX_NCP]; /* string representing the control protocol */ } NCPEntry; /* ** Define a protEnt structure. ** ** It represents a control protocol that has been registered ** on the system. */ typedef struct protEnt { struct protEnt *next; /* Next control protocol entry in list */ u_short ctrlProtocol; /* Control Protocol number */ fsm_callbacks callbacks; /* Callbacks routines for generic fsm code */ } protEnt; /* ** The list header of registered control protocols */ extern protEnt *prottbl; /* ** Prototypes */ char fsm_data( lineId line, u_short protocol, u_char *data, int len ); void fsm_deregister( unsigned short ctrlProtcol );void fsm_down( fsm *fsmPtr); void fsm_finished( fsm *fsmPtr); void fsm_init( fsm *fsmPtr, lineId line, PPPPort *port, u_short ctrlProtocol ); char fsm_isNCPRegistered( u_short ctrlProtocol ); char fsm_isNCPRequired( u_short ctrlProtocol ); u_int fsm_register( unsigned short ctrlProtocol, clientCallbacks *callbacks, unsigned int *error ); void fsm_start( void *fsmRef, int unit ); void fsm_startNCP( fsm *fsmPtr, lineId line, PPPPort *port, u_short ctrlProtocol ); void fsm_stop( void *fsmRef ); void fsm_stopNCP( fsm *fsmPtr, u_int *pending ); void fsm_up( fsm *fsmPtr ); #endif /* _FSM_VMS_H */