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#ifndef __EFC_H__
862306a36Sopenharmony_ci#define __EFC_H__
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#include "../include/efc_common.h"
1162306a36Sopenharmony_ci#include "efclib.h"
1262306a36Sopenharmony_ci#include "efc_sm.h"
1362306a36Sopenharmony_ci#include "efc_cmds.h"
1462306a36Sopenharmony_ci#include "efc_domain.h"
1562306a36Sopenharmony_ci#include "efc_nport.h"
1662306a36Sopenharmony_ci#include "efc_node.h"
1762306a36Sopenharmony_ci#include "efc_fabric.h"
1862306a36Sopenharmony_ci#include "efc_device.h"
1962306a36Sopenharmony_ci#include "efc_els.h"
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci#define EFC_MAX_REMOTE_NODES			2048
2262306a36Sopenharmony_ci#define NODE_SPARAMS_SIZE			256
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_cienum efc_scsi_del_initiator_reason {
2562306a36Sopenharmony_ci	EFC_SCSI_INITIATOR_DELETED,
2662306a36Sopenharmony_ci	EFC_SCSI_INITIATOR_MISSING,
2762306a36Sopenharmony_ci};
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_cienum efc_scsi_del_target_reason {
3062306a36Sopenharmony_ci	EFC_SCSI_TARGET_DELETED,
3162306a36Sopenharmony_ci	EFC_SCSI_TARGET_MISSING,
3262306a36Sopenharmony_ci};
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci#define EFC_FC_ELS_DEFAULT_RETRIES		3
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci#define domain_sm_trace(domain) \
3762306a36Sopenharmony_ci	efc_log_debug(domain->efc, "[domain:%s] %-20s %-20s\n", \
3862306a36Sopenharmony_ci		      domain->display_name, __func__, efc_sm_event_name(evt)) \
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci#define domain_trace(domain, fmt, ...) \
4162306a36Sopenharmony_ci	efc_log_debug(domain->efc, \
4262306a36Sopenharmony_ci		      "[%s]" fmt, domain->display_name, ##__VA_ARGS__) \
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci#define node_sm_trace() \
4562306a36Sopenharmony_ci	efc_log_debug(node->efc, "[%s] %-20s %-20s\n", \
4662306a36Sopenharmony_ci		      node->display_name, __func__, efc_sm_event_name(evt)) \
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci#define nport_sm_trace(nport) \
4962306a36Sopenharmony_ci	efc_log_debug(nport->efc, \
5062306a36Sopenharmony_ci		"[%s]  %-20s %-20s\n", nport->display_name, __func__, efc_sm_event_name(evt)) \
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci#endif /* __EFC_H__ */
53