162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2021 Broadcom. All Rights Reserved. The term 462306a36Sopenharmony_ci * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci/* 862306a36Sopenharmony_ci * Declare driver's domain handler exported interface 962306a36Sopenharmony_ci */ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#ifndef __EFCT_DOMAIN_H__ 1262306a36Sopenharmony_ci#define __EFCT_DOMAIN_H__ 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_cistruct efc_domain * 1562306a36Sopenharmony_ciefc_domain_alloc(struct efc *efc, uint64_t fcf_wwn); 1662306a36Sopenharmony_civoid 1762306a36Sopenharmony_ciefc_domain_free(struct efc_domain *domain); 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_civoid 2062306a36Sopenharmony_ci__efc_domain_init(struct efc_sm_ctx *ctx, enum efc_sm_event evt, void *arg); 2162306a36Sopenharmony_civoid 2262306a36Sopenharmony_ci__efc_domain_wait_alloc(struct efc_sm_ctx *ctx, enum efc_sm_event evt, 2362306a36Sopenharmony_ci void *arg); 2462306a36Sopenharmony_civoid 2562306a36Sopenharmony_ci__efc_domain_allocated(struct efc_sm_ctx *ctx, enum efc_sm_event evt, 2662306a36Sopenharmony_ci void *arg); 2762306a36Sopenharmony_civoid 2862306a36Sopenharmony_ci__efc_domain_wait_attach(struct efc_sm_ctx *ctx, enum efc_sm_event evt, 2962306a36Sopenharmony_ci void *arg); 3062306a36Sopenharmony_civoid 3162306a36Sopenharmony_ci__efc_domain_ready(struct efc_sm_ctx *ctx, enum efc_sm_event evt, void *arg); 3262306a36Sopenharmony_civoid 3362306a36Sopenharmony_ci__efc_domain_wait_nports_free(struct efc_sm_ctx *ctx, enum efc_sm_event evt, 3462306a36Sopenharmony_ci void *arg); 3562306a36Sopenharmony_civoid 3662306a36Sopenharmony_ci__efc_domain_wait_shutdown(struct efc_sm_ctx *ctx, enum efc_sm_event evt, 3762306a36Sopenharmony_ci void *arg); 3862306a36Sopenharmony_civoid 3962306a36Sopenharmony_ci__efc_domain_wait_domain_lost(struct efc_sm_ctx *ctx, enum efc_sm_event evt, 4062306a36Sopenharmony_ci void *arg); 4162306a36Sopenharmony_civoid 4262306a36Sopenharmony_ciefc_domain_attach(struct efc_domain *domain, u32 s_id); 4362306a36Sopenharmony_ciint 4462306a36Sopenharmony_ciefc_domain_post_event(struct efc_domain *domain, enum efc_sm_event event, 4562306a36Sopenharmony_ci void *arg); 4662306a36Sopenharmony_civoid 4762306a36Sopenharmony_ci__efc_domain_attach_internal(struct efc_domain *domain, u32 s_id); 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ciint 5062306a36Sopenharmony_ciefc_domain_dispatch_frame(void *arg, struct efc_hw_sequence *seq); 5162306a36Sopenharmony_civoid 5262306a36Sopenharmony_ciefc_node_dispatch_frame(void *arg, struct efc_hw_sequence *seq); 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci#endif /* __EFCT_DOMAIN_H__ */ 55