/************************************************************************ ** * ** 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. * ** * ************************************************************************* ** * ** Important Note: * ** * ** This coding example uses privileged OpenVMS interfaces. * ** OpenVMS does not guarantee that these interfaces will * ** be supported indefinitely, and may change these interfaces * ** without prior notice. * ** * ************************************************************************* **++ ** FACILITY: ** ** fsm_if.h. ** ** 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. ** ** 1-August-1996 Barry W. Kierstein ** Added "Important Note" disclaimer. ** ** 24-July-1996 Barry W. Kierstein ** Corrected copyright notice. ** ** 29-November-1995 Original version. ** **-- */ #ifndef _FSM_IF_H_ #define _FSM_IF_H_ /*---------------------------------------------------------------------------*/ /* Structure for Providing Callback Routines */ /*---------------------------------------------------------------------------*/ typedef struct clientCallbacks { void (*open)(); /* Called to request a protocol be started */ void (*close)(); /* Notify that protocol has been stopped */ void (*resetci)(); /* Reset our Configuration Information */ int (*cilen)(); /* Length of our Configuration Information */ void (*addci)(); /* Add our Configuration Information */ int (*ackci)(); /* ACK our Configuration Information */ int (*nakci)(); /* NAK our Configuration Information */ int (*rejci)(); /* Reject our Configuration Information */ int (*reqci)(); /* Request peer's Configuration Information */ void (*up)(); /* Called when fsm reaches OPENED state */ void (*down)(); /* Called when fsm leaves OPENED state */ int (*extcode)(); /* Called when unknown code received */ } clientCallbacks; /*---------------------------------------------------------------------------*/ /* Define the structure containing pointers to fsm routines */ /*---------------------------------------------------------------------------*/ typedef struct fsmRtns { void (*deregisterNCP)( unsigned short ctrlProtcol ); unsigned int (*registerNCP)( unsigned short ctrlProtocol, clientCallbacks *callbacks, unsigned int *error ); void (*start)( void *fsmRef, int unit ); void (*stop)( void *fsmRef ); } fsmRtns; #endif /* _FSM_IF_H */