efc_fabric.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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. * Declarations for the interface exported by efc_fabric
  8. */
  9. #ifndef __EFCT_FABRIC_H__
  10. #define __EFCT_FABRIC_H__
  11. #include "scsi/fc/fc_els.h"
  12. #include "scsi/fc/fc_fs.h"
  13. #include "scsi/fc/fc_ns.h"
  14. void
  15. __efc_fabric_init(struct efc_sm_ctx *ctx,
  16. enum efc_sm_event evt, void *arg);
  17. void
  18. __efc_fabric_flogi_wait_rsp(struct efc_sm_ctx *ctx,
  19. enum efc_sm_event evt, void *arg);
  20. void
  21. __efc_fabric_domain_attach_wait(struct efc_sm_ctx *ctx,
  22. enum efc_sm_event evt, void *arg);
  23. void
  24. __efc_fabric_wait_domain_attach(struct efc_sm_ctx *ctx,
  25. enum efc_sm_event evt, void *arg);
  26. void
  27. __efc_vport_fabric_init(struct efc_sm_ctx *ctx,
  28. enum efc_sm_event evt, void *arg);
  29. void
  30. __efc_fabric_fdisc_wait_rsp(struct efc_sm_ctx *ctx,
  31. enum efc_sm_event evt, void *arg);
  32. void
  33. __efc_fabric_wait_nport_attach(struct efc_sm_ctx *ctx,
  34. enum efc_sm_event evt, void *arg);
  35. void
  36. __efc_ns_init(struct efc_sm_ctx *ctx, enum efc_sm_event evt, void *arg);
  37. void
  38. __efc_ns_plogi_wait_rsp(struct efc_sm_ctx *ctx,
  39. enum efc_sm_event evt, void *arg);
  40. void
  41. __efc_ns_rftid_wait_rsp(struct efc_sm_ctx *ctx,
  42. enum efc_sm_event evt, void *arg);
  43. void
  44. __efc_ns_rffid_wait_rsp(struct efc_sm_ctx *ctx,
  45. enum efc_sm_event evt, void *arg);
  46. void
  47. __efc_ns_wait_node_attach(struct efc_sm_ctx *ctx,
  48. enum efc_sm_event evt, void *arg);
  49. void
  50. __efc_fabric_wait_attach_evt_shutdown(struct efc_sm_ctx *ctx,
  51. enum efc_sm_event evt, void *arg);
  52. void
  53. __efc_ns_logo_wait_rsp(struct efc_sm_ctx *ctx,
  54. enum efc_sm_event, void *arg);
  55. void
  56. __efc_ns_gidpt_wait_rsp(struct efc_sm_ctx *ctx,
  57. enum efc_sm_event evt, void *arg);
  58. void
  59. __efc_ns_idle(struct efc_sm_ctx *ctx, enum efc_sm_event evt, void *arg);
  60. void
  61. __efc_ns_gidpt_delay(struct efc_sm_ctx *ctx,
  62. enum efc_sm_event evt, void *arg);
  63. void
  64. __efc_fabctl_init(struct efc_sm_ctx *ctx,
  65. enum efc_sm_event evt, void *arg);
  66. void
  67. __efc_fabctl_wait_node_attach(struct efc_sm_ctx *ctx,
  68. enum efc_sm_event evt, void *arg);
  69. void
  70. __efc_fabctl_wait_scr_rsp(struct efc_sm_ctx *ctx,
  71. enum efc_sm_event evt, void *arg);
  72. void
  73. __efc_fabctl_ready(struct efc_sm_ctx *ctx,
  74. enum efc_sm_event evt, void *arg);
  75. void
  76. __efc_fabctl_wait_ls_acc_cmpl(struct efc_sm_ctx *ctx,
  77. enum efc_sm_event evt, void *arg);
  78. void
  79. __efc_fabric_idle(struct efc_sm_ctx *ctx,
  80. enum efc_sm_event evt, void *arg);
  81. void
  82. __efc_p2p_rnode_init(struct efc_sm_ctx *ctx,
  83. enum efc_sm_event evt, void *arg);
  84. void
  85. __efc_p2p_domain_attach_wait(struct efc_sm_ctx *ctx,
  86. enum efc_sm_event evt, void *arg);
  87. void
  88. __efc_p2p_wait_flogi_acc_cmpl(struct efc_sm_ctx *ctx,
  89. enum efc_sm_event evt, void *arg);
  90. void
  91. __efc_p2p_wait_plogi_rsp(struct efc_sm_ctx *ctx,
  92. enum efc_sm_event evt, void *arg);
  93. void
  94. __efc_p2p_wait_plogi_rsp_recvd_prli(struct efc_sm_ctx *ctx,
  95. enum efc_sm_event evt, void *arg);
  96. void
  97. __efc_p2p_wait_domain_attach(struct efc_sm_ctx *ctx,
  98. enum efc_sm_event evt, void *arg);
  99. void
  100. __efc_p2p_wait_node_attach(struct efc_sm_ctx *ctx,
  101. enum efc_sm_event evt, void *arg);
  102. int
  103. efc_p2p_setup(struct efc_nport *nport);
  104. void
  105. efc_fabric_set_topology(struct efc_node *node,
  106. enum efc_nport_topology topology);
  107. void efc_fabric_notify_topology(struct efc_node *node);
  108. #endif /* __EFCT_FABRIC_H__ */