iriap_event.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. #ifndef IRIAP_FSM_H
  25. #define IRIAP_FSM_H
  26. /* Forward because of circular include dependecies */
  27. struct iriap_cb;
  28. /* IrIAP states */
  29. typedef enum {
  30. /* Client */
  31. S_DISCONNECT,
  32. S_CONNECTING,
  33. S_CALL,
  34. /* S-Call */
  35. S_MAKE_CALL,
  36. S_CALLING,
  37. S_OUTSTANDING,
  38. S_REPLYING,
  39. S_WAIT_FOR_CALL,
  40. S_WAIT_ACTIVE,
  41. /* Server */
  42. R_DISCONNECT,
  43. R_CALL,
  44. /* R-Connect */
  45. R_WAITING,
  46. R_WAIT_ACTIVE,
  47. R_RECEIVING,
  48. R_EXECUTE,
  49. R_RETURNING,
  50. } IRIAP_STATE;
  51. typedef enum {
  52. IAP_CALL_REQUEST,
  53. IAP_CALL_REQUEST_GVBC,
  54. IAP_CALL_RESPONSE,
  55. IAP_RECV_F_LST,
  56. IAP_LM_DISCONNECT_INDICATION,
  57. IAP_LM_CONNECT_INDICATION,
  58. IAP_LM_CONNECT_CONFIRM,
  59. } IRIAP_EVENT;
  60. void iriap_next_client_state (struct iriap_cb *self, IRIAP_STATE state);
  61. void iriap_next_call_state (struct iriap_cb *self, IRIAP_STATE state);
  62. void iriap_next_server_state (struct iriap_cb *self, IRIAP_STATE state);
  63. void iriap_next_r_connect_state(struct iriap_cb *self, IRIAP_STATE state);
  64. void iriap_do_client_event(struct iriap_cb *self, IRIAP_EVENT event,
  65. struct sk_buff *skb);
  66. void iriap_do_call_event (struct iriap_cb *self, IRIAP_EVENT event,
  67. struct sk_buff *skb);
  68. void iriap_do_server_event (struct iriap_cb *self, IRIAP_EVENT event,
  69. struct sk_buff *skb);
  70. void iriap_do_r_connect_event(struct iriap_cb *self, IRIAP_EVENT event,
  71. struct sk_buff *skb);
  72. #endif /* IRIAP_FSM_H */