2005-04-17 06:20:36 +08: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 14:30:57 +08:00
|
|
|
* Neither Dag Brattli nor University of Tromsø admit liability nor
|
2005-04-17 06:20:36 +08: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 */
|
|
|
|
|