blob: 89747f06d9ebc9dc17645b2ecda220c601c273d4 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*********************************************************************
2 *
3 * Filename: iriap_event.h
4 * Version:
5 * Description:
6 * Status: Experimental.
7 * Author: Dag Brattli <dagb@cs.uit.no>
8 * Created at: Mon Aug 4 20:40:53 1997
9 * Modified at: Sun Oct 31 22:02:54 1999
10 * Modified by: Dag Brattli <dagb@cs.uit.no>
11 *
12 * Copyright (c) 1998-1999 Dag Brattli <dagb@cs.uit.no>, All Rights Reserved.
13 *
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License as
16 * published by the Free Software Foundation; either version 2 of
17 * the License, or (at your option) any later version.
18 *
John Anthony Kazos Jr121e70b2007-05-09 08:30:57 +020019 * Neither Dag Brattli nor University of Tromsø admit liability nor
Linus Torvalds1da177e2005-04-16 15:20:36 -070020 * provide warranty for any of this software. This material is
21 * provided "AS-IS" and at no charge.
22 *
23 ********************************************************************/
24
25#ifndef IRIAP_FSM_H
26#define IRIAP_FSM_H
27
28/* Forward because of circular include dependecies */
29struct iriap_cb;
30
31/* IrIAP states */
32typedef enum {
33 /* Client */
34 S_DISCONNECT,
35 S_CONNECTING,
36 S_CALL,
37
38 /* S-Call */
39 S_MAKE_CALL,
40 S_CALLING,
41 S_OUTSTANDING,
42 S_REPLYING,
43 S_WAIT_FOR_CALL,
44 S_WAIT_ACTIVE,
45
46 /* Server */
47 R_DISCONNECT,
48 R_CALL,
49
50 /* R-Connect */
51 R_WAITING,
52 R_WAIT_ACTIVE,
53 R_RECEIVING,
54 R_EXECUTE,
55 R_RETURNING,
56} IRIAP_STATE;
57
58typedef enum {
59 IAP_CALL_REQUEST,
60 IAP_CALL_REQUEST_GVBC,
61 IAP_CALL_RESPONSE,
62 IAP_RECV_F_LST,
63 IAP_LM_DISCONNECT_INDICATION,
64 IAP_LM_CONNECT_INDICATION,
65 IAP_LM_CONNECT_CONFIRM,
66} IRIAP_EVENT;
67
68void iriap_next_client_state (struct iriap_cb *self, IRIAP_STATE state);
69void iriap_next_call_state (struct iriap_cb *self, IRIAP_STATE state);
70void iriap_next_server_state (struct iriap_cb *self, IRIAP_STATE state);
71void iriap_next_r_connect_state(struct iriap_cb *self, IRIAP_STATE state);
72
73
74void iriap_do_client_event(struct iriap_cb *self, IRIAP_EVENT event,
75 struct sk_buff *skb);
76void iriap_do_call_event (struct iriap_cb *self, IRIAP_EVENT event,
77 struct sk_buff *skb);
78
79void iriap_do_server_event (struct iriap_cb *self, IRIAP_EVENT event,
80 struct sk_buff *skb);
81void iriap_do_r_connect_event(struct iriap_cb *self, IRIAP_EVENT event,
82 struct sk_buff *skb);
83
84#endif /* IRIAP_FSM_H */
85