1 /********************************************************************* 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 * 19 * Neither Dag Brattli nor University of Tromsø admit liability nor 20 * 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 */ 29 struct iriap_cb; 30 31 /* IrIAP states */ 32 typedef 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 58 typedef 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 68 void iriap_next_client_state (struct iriap_cb *self, IRIAP_STATE state); 69 void iriap_next_call_state (struct iriap_cb *self, IRIAP_STATE state); 70 void iriap_next_server_state (struct iriap_cb *self, IRIAP_STATE state); 71 void iriap_next_r_connect_state(struct iriap_cb *self, IRIAP_STATE state); 72 73 74 void iriap_do_client_event(struct iriap_cb *self, IRIAP_EVENT event, 75 struct sk_buff *skb); 76 void iriap_do_call_event (struct iriap_cb *self, IRIAP_EVENT event, 77 struct sk_buff *skb); 78 79 void iriap_do_server_event (struct iriap_cb *self, IRIAP_EVENT event, 80 struct sk_buff *skb); 81 void iriap_do_r_connect_event(struct iriap_cb *self, IRIAP_EVENT event, 82 struct sk_buff *skb); 83 84 #endif /* IRIAP_FSM_H */ 85 86