efc_device.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (C) 2021 Broadcom. All Rights Reserved. The term
  4. * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.
  5. */
  6. /*
  7. * Node state machine functions for remote device node sm
  8. */
  9. #ifndef __EFCT_DEVICE_H__
  10. #define __EFCT_DEVICE_H__
  11. void
  12. efc_node_init_device(struct efc_node *node, bool send_plogi);
  13. void
  14. efc_process_prli_payload(struct efc_node *node,
  15. void *prli);
  16. void
  17. efc_d_send_prli_rsp(struct efc_node *node, uint16_t ox_id);
  18. void
  19. efc_send_ls_acc_after_attach(struct efc_node *node,
  20. struct fc_frame_header *hdr,
  21. enum efc_node_send_ls_acc ls);
  22. void
  23. __efc_d_wait_loop(struct efc_sm_ctx *ctx,
  24. enum efc_sm_event evt, void *arg);
  25. void
  26. __efc_d_wait_plogi_acc_cmpl(struct efc_sm_ctx *ctx,
  27. enum efc_sm_event evt, void *arg);
  28. void
  29. __efc_d_init(struct efc_sm_ctx *ctx, enum efc_sm_event evt, void *arg);
  30. void
  31. __efc_d_wait_plogi_rsp(struct efc_sm_ctx *ctx,
  32. enum efc_sm_event evt, void *arg);
  33. void
  34. __efc_d_wait_plogi_rsp_recvd_prli(struct efc_sm_ctx *ctx,
  35. enum efc_sm_event evt, void *arg);
  36. void
  37. __efc_d_wait_domain_attach(struct efc_sm_ctx *ctx,
  38. enum efc_sm_event evt, void *arg);
  39. void
  40. __efc_d_wait_topology_notify(struct efc_sm_ctx *ctx,
  41. enum efc_sm_event evt, void *arg);
  42. void
  43. __efc_d_wait_node_attach(struct efc_sm_ctx *ctx,
  44. enum efc_sm_event evt, void *arg);
  45. void
  46. __efc_d_wait_attach_evt_shutdown(struct efc_sm_ctx *ctx,
  47. enum efc_sm_event evt, void *arg);
  48. void
  49. __efc_d_initiate_shutdown(struct efc_sm_ctx *ctx,
  50. enum efc_sm_event evt, void *arg);
  51. void
  52. __efc_d_port_logged_in(struct efc_sm_ctx *ctx,
  53. enum efc_sm_event evt, void *arg);
  54. void
  55. __efc_d_wait_logo_acc_cmpl(struct efc_sm_ctx *ctx,
  56. enum efc_sm_event evt, void *arg);
  57. void
  58. __efc_d_device_ready(struct efc_sm_ctx *ctx,
  59. enum efc_sm_event evt, void *arg);
  60. void
  61. __efc_d_device_gone(struct efc_sm_ctx *ctx,
  62. enum efc_sm_event evt, void *arg);
  63. void
  64. __efc_d_wait_adisc_rsp(struct efc_sm_ctx *ctx,
  65. enum efc_sm_event evt, void *arg);
  66. void
  67. __efc_d_wait_logo_rsp(struct efc_sm_ctx *ctx,
  68. enum efc_sm_event evt, void *arg);
  69. #endif /* __EFCT_DEVICE_H__ */