/******************************************************************* * This file is part of the Emulex Linux Device Driver for * * Fibre Channel Host Bus Adapters. * * Copyright (C) 2017-2024 Broadcom. All Rights Reserved. The term * * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. * * Copyright (C) 2004-2016 Emulex. All rights reserved. * * EMULEX and SLI are trademarks of Emulex. * * www.broadcom.com * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of version 2 of the GNU General * * Public License as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful. * * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND * * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, * * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE * * DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD * * TO BE LEGALLY INVALID. See the GNU General Public License for * * more details, a copy of which can be found in the file COPYING * * included with this package. * *******************************************************************/ #if defined(CONFIG_DEBUG_FS) && !defined(CONFIG_SCSI_LPFC_DEBUG_FS) #define CONFIG_SCSI_LPFC_DEBUG_FS #endif /* forward declaration for LPFC_IOCB_t's use */ struct lpfc_hba; struct lpfc_vport; /* Define the context types that SLI handles for abort and sums. */ lpfc_ctx_cmd; /* Enumeration to describe the thread lock context. */ enum lpfc_mbox_ctx { … }; lpfc_vmid_tag; struct lpfc_cq_event { … }; /* This structure is used to handle IOCB requests / responses */ struct lpfc_iocbq { … }; #define SLI_IOCB_RET_IOCB … #define IOCB_SUCCESS … #define IOCB_BUSY … #define IOCB_ERROR … #define IOCB_TIMEDOUT … #define IOCB_ABORTED … #define IOCB_ABORTING … #define IOCB_NORESOURCE … #define SLI_WQE_RET_WQE … #define WQE_SUCCESS … #define WQE_BUSY … #define WQE_ERROR … #define WQE_TIMEDOUT … #define WQE_ABORTED … #define WQE_ABORTING … #define WQE_NORESOURCE … #define LPFC_MBX_WAKE … #define LPFC_MBX_IMED_UNREG … LPFC_MBOXQ_t; #define MBX_POLL … #define MBX_NOWAIT … #define LPFC_MAX_RING_MASK … #define LPFC_SLI3_MAX_RING … struct lpfc_sli_ring; struct lpfc_sli_ring_mask { … }; /* Structure used to hold SLI statistical counters and info */ struct lpfc_sli_ring_stat { … }; struct lpfc_sli3_ring { … }; struct lpfc_sli4_ring { … }; /* Structure used to hold SLI ring information */ struct lpfc_sli_ring { … }; /* Structure used for configuring rings to a specific profile or rctl / type */ struct lpfc_hbq_init { … } ; /* Structure used to hold SLI statistical counters and info */ struct lpfc_sli_stat { … }; /* Structure to store link status values when port stats are reset */ struct lpfc_lnk_stat { … }; /* Structure used to hold SLI information */ struct lpfc_sli { … }; /* Timeout for normal outstanding mbox command (Seconds) */ #define LPFC_MBOX_TMO … /* Timeout for non-flash-based outstanding sli_config mbox command (Seconds) */ #define LPFC_MBOX_SLI4_CONFIG_TMO … /* Timeout for flash-based outstanding sli_config mbox command (Seconds) */ #define LPFC_MBOX_SLI4_CONFIG_EXTENDED_TMO … /* Timeout for other flash-based outstanding mbox command (Seconds) */ #define LPFC_MBOX_TMO_FLASH_CMD … struct lpfc_io_buf { … };