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  * EFC FC port (NPORT) exported declarations
0009  *
0010  */
0011 
0012 #ifndef __EFC_NPORT_H__
0013 #define __EFC_NPORT_H__
0014 
0015 struct efc_nport *
0016 efc_nport_find(struct efc_domain *domain, u32 d_id);
0017 struct efc_nport *
0018 efc_nport_alloc(struct efc_domain *domain, uint64_t wwpn, uint64_t wwnn,
0019         u32 fc_id, bool enable_ini, bool enable_tgt);
0020 void
0021 efc_nport_free(struct efc_nport *nport);
0022 int
0023 efc_nport_attach(struct efc_nport *nport, u32 fc_id);
0024 
0025 void
0026 __efc_nport_allocated(struct efc_sm_ctx *ctx,
0027               enum efc_sm_event evt, void *arg);
0028 void
0029 __efc_nport_wait_shutdown(struct efc_sm_ctx *ctx,
0030               enum efc_sm_event evt, void *arg);
0031 void
0032 __efc_nport_wait_port_free(struct efc_sm_ctx *ctx,
0033                enum efc_sm_event evt, void *arg);
0034 void
0035 __efc_nport_vport_init(struct efc_sm_ctx *ctx,
0036                enum efc_sm_event evt, void *arg);
0037 void
0038 __efc_nport_vport_wait_alloc(struct efc_sm_ctx *ctx,
0039                  enum efc_sm_event evt, void *arg);
0040 void
0041 __efc_nport_vport_allocated(struct efc_sm_ctx *ctx,
0042                 enum efc_sm_event evt, void *arg);
0043 void
0044 __efc_nport_attached(struct efc_sm_ctx *ctx,
0045              enum efc_sm_event evt, void *arg);
0046 
0047 int
0048 efc_vport_start(struct efc_domain *domain);
0049 
0050 #endif /* __EFC_NPORT_H__ */