Mention branches and keyring.
[releases.git] / libefc / efc_nport.h
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 /**
8  * EFC FC port (NPORT) exported declarations
9  *
10  */
11
12 #ifndef __EFC_NPORT_H__
13 #define __EFC_NPORT_H__
14
15 struct efc_nport *
16 efc_nport_find(struct efc_domain *domain, u32 d_id);
17 struct efc_nport *
18 efc_nport_alloc(struct efc_domain *domain, uint64_t wwpn, uint64_t wwnn,
19                 u32 fc_id, bool enable_ini, bool enable_tgt);
20 void
21 efc_nport_free(struct efc_nport *nport);
22 int
23 efc_nport_attach(struct efc_nport *nport, u32 fc_id);
24
25 void
26 __efc_nport_allocated(struct efc_sm_ctx *ctx,
27                       enum efc_sm_event evt, void *arg);
28 void
29 __efc_nport_wait_shutdown(struct efc_sm_ctx *ctx,
30                           enum efc_sm_event evt, void *arg);
31 void
32 __efc_nport_wait_port_free(struct efc_sm_ctx *ctx,
33                            enum efc_sm_event evt, void *arg);
34 void
35 __efc_nport_vport_init(struct efc_sm_ctx *ctx,
36                        enum efc_sm_event evt, void *arg);
37 void
38 __efc_nport_vport_wait_alloc(struct efc_sm_ctx *ctx,
39                              enum efc_sm_event evt, void *arg);
40 void
41 __efc_nport_vport_allocated(struct efc_sm_ctx *ctx,
42                             enum efc_sm_event evt, void *arg);
43 void
44 __efc_nport_attached(struct efc_sm_ctx *ctx,
45                      enum efc_sm_event evt, void *arg);
46
47 int
48 efc_vport_start(struct efc_domain *domain);
49
50 #endif /* __EFC_NPORT_H__ */