Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * Copyright (C) 2021 Broadcom. All Rights Reserved. The term
0004  * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.
0005  */
0006 
0007 /*
0008  * Declarations for the interface exported by efc_fabric
0009  */
0010 
0011 #ifndef __EFCT_FABRIC_H__
0012 #define __EFCT_FABRIC_H__
0013 #include "scsi/fc/fc_els.h"
0014 #include "scsi/fc/fc_fs.h"
0015 #include "scsi/fc/fc_ns.h"
0016 
0017 void
0018 __efc_fabric_init(struct efc_sm_ctx *ctx,
0019           enum efc_sm_event evt, void *arg);
0020 void
0021 __efc_fabric_flogi_wait_rsp(struct efc_sm_ctx *ctx,
0022                 enum efc_sm_event evt, void *arg);
0023 void
0024 __efc_fabric_domain_attach_wait(struct efc_sm_ctx *ctx,
0025                 enum efc_sm_event evt, void *arg);
0026 void
0027 __efc_fabric_wait_domain_attach(struct efc_sm_ctx *ctx,
0028                 enum efc_sm_event evt, void *arg);
0029 
0030 void
0031 __efc_vport_fabric_init(struct efc_sm_ctx *ctx,
0032             enum efc_sm_event evt, void *arg);
0033 void
0034 __efc_fabric_fdisc_wait_rsp(struct efc_sm_ctx *ctx,
0035                 enum efc_sm_event evt, void *arg);
0036 void
0037 __efc_fabric_wait_nport_attach(struct efc_sm_ctx *ctx,
0038                    enum efc_sm_event evt, void *arg);
0039 
0040 void
0041 __efc_ns_init(struct efc_sm_ctx *ctx, enum efc_sm_event evt, void *arg);
0042 void
0043 __efc_ns_plogi_wait_rsp(struct efc_sm_ctx *ctx,
0044             enum efc_sm_event evt, void *arg);
0045 void
0046 __efc_ns_rftid_wait_rsp(struct efc_sm_ctx *ctx,
0047             enum efc_sm_event evt, void *arg);
0048 void
0049 __efc_ns_rffid_wait_rsp(struct efc_sm_ctx *ctx,
0050             enum efc_sm_event evt, void *arg);
0051 void
0052 __efc_ns_wait_node_attach(struct efc_sm_ctx *ctx,
0053               enum efc_sm_event evt, void *arg);
0054 void
0055 __efc_fabric_wait_attach_evt_shutdown(struct efc_sm_ctx *ctx,
0056                       enum efc_sm_event evt, void *arg);
0057 void
0058 __efc_ns_logo_wait_rsp(struct efc_sm_ctx *ctx,
0059                enum efc_sm_event, void *arg);
0060 void
0061 __efc_ns_gidpt_wait_rsp(struct efc_sm_ctx *ctx,
0062             enum efc_sm_event evt, void *arg);
0063 void
0064 __efc_ns_idle(struct efc_sm_ctx *ctx, enum efc_sm_event evt, void *arg);
0065 void
0066 __efc_ns_gidpt_delay(struct efc_sm_ctx *ctx,
0067              enum efc_sm_event evt, void *arg);
0068 void
0069 __efc_fabctl_init(struct efc_sm_ctx *ctx,
0070           enum efc_sm_event evt, void *arg);
0071 void
0072 __efc_fabctl_wait_node_attach(struct efc_sm_ctx *ctx,
0073                   enum efc_sm_event evt, void *arg);
0074 void
0075 __efc_fabctl_wait_scr_rsp(struct efc_sm_ctx *ctx,
0076               enum efc_sm_event evt, void *arg);
0077 void
0078 __efc_fabctl_ready(struct efc_sm_ctx *ctx,
0079            enum efc_sm_event evt, void *arg);
0080 void
0081 __efc_fabctl_wait_ls_acc_cmpl(struct efc_sm_ctx *ctx,
0082                   enum efc_sm_event evt, void *arg);
0083 void
0084 __efc_fabric_idle(struct efc_sm_ctx *ctx,
0085           enum efc_sm_event evt, void *arg);
0086 
0087 void
0088 __efc_p2p_rnode_init(struct efc_sm_ctx *ctx,
0089              enum efc_sm_event evt, void *arg);
0090 void
0091 __efc_p2p_domain_attach_wait(struct efc_sm_ctx *ctx,
0092                  enum efc_sm_event evt, void *arg);
0093 void
0094 __efc_p2p_wait_flogi_acc_cmpl(struct efc_sm_ctx *ctx,
0095                   enum efc_sm_event evt, void *arg);
0096 void
0097 __efc_p2p_wait_plogi_rsp(struct efc_sm_ctx *ctx,
0098              enum efc_sm_event evt, void *arg);
0099 void
0100 __efc_p2p_wait_plogi_rsp_recvd_prli(struct efc_sm_ctx *ctx,
0101                     enum efc_sm_event evt, void *arg);
0102 void
0103 __efc_p2p_wait_domain_attach(struct efc_sm_ctx *ctx,
0104                  enum efc_sm_event evt, void *arg);
0105 void
0106 __efc_p2p_wait_node_attach(struct efc_sm_ctx *ctx,
0107                enum efc_sm_event evt, void *arg);
0108 
0109 int
0110 efc_p2p_setup(struct efc_nport *nport);
0111 void
0112 efc_fabric_set_topology(struct efc_node *node,
0113             enum efc_nport_topology topology);
0114 void efc_fabric_notify_topology(struct efc_node *node);
0115 
0116 #endif /* __EFCT_FABRIC_H__ */