2005-04-16 15:20:36 -07:00
/*********************************************************************
*
* Filename : iriap_event . h
* Version :
* Description :
* Status : Experimental .
* Author : Dag Brattli < dagb @ cs . uit . no >
* Created at : Mon Aug 4 20 : 40 : 53 1997
* Modified at : Sun Oct 31 22 : 02 : 54 1999
* Modified by : Dag Brattli < dagb @ cs . uit . no >
*
* Copyright ( c ) 1998 - 1999 Dag Brattli < dagb @ cs . uit . no > , All Rights Reserved .
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation ; either version 2 of
* the License , or ( at your option ) any later version .
*
2007-05-09 08:30:57 +02:00
* Neither Dag Brattli nor University of Tromsø admit liability nor
2005-04-16 15:20:36 -07:00
* provide warranty for any of this software . This material is
* provided " AS-IS " and at no charge .
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# ifndef IRIAP_FSM_H
# define IRIAP_FSM_H
/* Forward because of circular include dependecies */
struct iriap_cb ;
/* IrIAP states */
typedef enum {
/* Client */
S_DISCONNECT ,
S_CONNECTING ,
S_CALL ,
/* S-Call */
S_MAKE_CALL ,
S_CALLING ,
S_OUTSTANDING ,
S_REPLYING ,
S_WAIT_FOR_CALL ,
S_WAIT_ACTIVE ,
/* Server */
R_DISCONNECT ,
R_CALL ,
/* R-Connect */
R_WAITING ,
R_WAIT_ACTIVE ,
R_RECEIVING ,
R_EXECUTE ,
R_RETURNING ,
} IRIAP_STATE ;
typedef enum {
IAP_CALL_REQUEST ,
IAP_CALL_REQUEST_GVBC ,
IAP_CALL_RESPONSE ,
IAP_RECV_F_LST ,
IAP_LM_DISCONNECT_INDICATION ,
IAP_LM_CONNECT_INDICATION ,
IAP_LM_CONNECT_CONFIRM ,
} IRIAP_EVENT ;
void iriap_next_client_state ( struct iriap_cb * self , IRIAP_STATE state ) ;
void iriap_next_call_state ( struct iriap_cb * self , IRIAP_STATE state ) ;
void iriap_next_server_state ( struct iriap_cb * self , IRIAP_STATE state ) ;
void iriap_next_r_connect_state ( struct iriap_cb * self , IRIAP_STATE state ) ;
void iriap_do_client_event ( struct iriap_cb * self , IRIAP_EVENT event ,
struct sk_buff * skb ) ;
void iriap_do_call_event ( struct iriap_cb * self , IRIAP_EVENT event ,
struct sk_buff * skb ) ;
void iriap_do_server_event ( struct iriap_cb * self , IRIAP_EVENT event ,
struct sk_buff * skb ) ;
void iriap_do_r_connect_event ( struct iriap_cb * self , IRIAP_EVENT event ,
struct sk_buff * skb ) ;
# endif /* IRIAP_FSM_H */