linux/drivers/scsi/mpi3mr/mpi/mpi30_transport.h

/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 *  Copyright 2016-2023 Broadcom Inc. All rights reserved.
 */
#ifndef MPI30_TRANSPORT_H
#define MPI30_TRANSPORT_H
struct mpi3_version_struct {};

mpi3_version_union;

#define MPI3_VERSION_MAJOR
#define MPI3_VERSION_MINOR
#define MPI3_VERSION_UNIT
#define MPI3_VERSION_DEV
#define MPI3_DEVHANDLE_INVALID
struct mpi3_sysif_oper_queue_indexes {};

struct mpi3_sysif_registers {};

#define MPI3_SYSIF_IOC_INFO_LOW_OFFSET
#define MPI3_SYSIF_IOC_INFO_HIGH_OFFSET
#define MPI3_SYSIF_IOC_INFO_LOW_TIMEOUT_MASK
#define MPI3_SYSIF_IOC_INFO_LOW_TIMEOUT_SHIFT
#define MPI3_SYSIF_IOC_INFO_LOW_HCB_DISABLED
#define MPI3_SYSIF_IOC_CONFIG_OFFSET
#define MPI3_SYSIF_IOC_CONFIG_OPER_RPY_ENT_SZ
#define MPI3_SYSIF_IOC_CONFIG_OPER_RPY_ENT_SZ_SHIFT
#define MPI3_SYSIF_IOC_CONFIG_OPER_REQ_ENT_SZ
#define MPI3_SYSIF_IOC_CONFIG_OPER_REQ_ENT_SZ_SHIFT
#define MPI3_SYSIF_IOC_CONFIG_SHUTDOWN_MASK
#define MPI3_SYSIF_IOC_CONFIG_SHUTDOWN_NO
#define MPI3_SYSIF_IOC_CONFIG_SHUTDOWN_NORMAL
#define MPI3_SYSIF_IOC_CONFIG_DEVICE_SHUTDOWN_SEND_REQ
#define MPI3_SYSIF_IOC_CONFIG_DIAG_SAVE
#define MPI3_SYSIF_IOC_CONFIG_ENABLE_IOC
#define MPI3_SYSIF_IOC_STATUS_OFFSET
#define MPI3_SYSIF_IOC_STATUS_RESET_HISTORY
#define MPI3_SYSIF_IOC_STATUS_SHUTDOWN_MASK
#define MPI3_SYSIF_IOC_STATUS_SHUTDOWN_SHIFT
#define MPI3_SYSIF_IOC_STATUS_SHUTDOWN_NONE
#define MPI3_SYSIF_IOC_STATUS_SHUTDOWN_IN_PROGRESS
#define MPI3_SYSIF_IOC_STATUS_SHUTDOWN_COMPLETE
#define MPI3_SYSIF_IOC_STATUS_FAULT
#define MPI3_SYSIF_IOC_STATUS_READY
#define MPI3_SYSIF_ADMIN_Q_NUM_ENTRIES_OFFSET
#define MPI3_SYSIF_ADMIN_Q_NUM_ENTRIES_REQ_MASK
#define MPI3_SYSIF_ADMIN_Q_NUM_ENTRIES_REPLY_OFFSET
#define MPI3_SYSIF_ADMIN_Q_NUM_ENTRIES_REPLY_MASK
#define MPI3_SYSIF_ADMIN_Q_NUM_ENTRIES_REPLY_SHIFT
#define MPI3_SYSIF_ADMIN_REQ_Q_ADDR_LOW_OFFSET
#define MPI3_SYSIF_ADMIN_REQ_Q_ADDR_HIGH_OFFSET
#define MPI3_SYSIF_ADMIN_REPLY_Q_ADDR_LOW_OFFSET
#define MPI3_SYSIF_ADMIN_REPLY_Q_ADDR_HIGH_OFFSET
#define MPI3_SYSIF_COALESCE_CONTROL_OFFSET
#define MPI3_SYSIF_COALESCE_CONTROL_ENABLE_MASK
#define MPI3_SYSIF_COALESCE_CONTROL_ENABLE_NO_CHANGE
#define MPI3_SYSIF_COALESCE_CONTROL_ENABLE_DISABLE
#define MPI3_SYSIF_COALESCE_CONTROL_ENABLE_ENABLE
#define MPI3_SYSIF_COALESCE_CONTROL_VALID
#define MPI3_SYSIF_COALESCE_CONTROL_MSIX_IDX_MASK
#define MPI3_SYSIF_COALESCE_CONTROL_MSIX_IDX_SHIFT
#define MPI3_SYSIF_COALESCE_CONTROL_TIMEOUT_MASK
#define MPI3_SYSIF_COALESCE_CONTROL_TIMEOUT_SHIFT
#define MPI3_SYSIF_COALESCE_CONTROL_DEPTH_MASK
#define MPI3_SYSIF_COALESCE_CONTROL_DEPTH_SHIFT
#define MPI3_SYSIF_ADMIN_REQ_Q_PI_OFFSET
#define MPI3_SYSIF_ADMIN_REPLY_Q_CI_OFFSET
#define MPI3_SYSIF_OPER_REQ_Q_PI_OFFSET
#define MPI3_SYSIF_OPER_REQ_Q_N_PI_OFFSET(N)
#define MPI3_SYSIF_OPER_REPLY_Q_CI_OFFSET
#define MPI3_SYSIF_OPER_REPLY_Q_N_CI_OFFSET(N)
#define MPI3_SYSIF_WRITE_SEQUENCE_OFFSET
#define MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_MASK
#define MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_FLUSH
#define MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_1ST
#define MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_2ND
#define MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_3RD
#define MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_4TH
#define MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_5TH
#define MPI3_SYSIF_WRITE_SEQUENCE_KEY_VALUE_6TH
#define MPI3_SYSIF_HOST_DIAG_OFFSET
#define MPI3_SYSIF_HOST_DIAG_RESET_ACTION_MASK
#define MPI3_SYSIF_HOST_DIAG_RESET_ACTION_NO_RESET
#define MPI3_SYSIF_HOST_DIAG_RESET_ACTION_SOFT_RESET
#define MPI3_SYSIF_HOST_DIAG_RESET_ACTION_HOST_CONTROL_BOOT_RESET
#define MPI3_SYSIF_HOST_DIAG_RESET_ACTION_COMPLETE_RESET
#define MPI3_SYSIF_HOST_DIAG_RESET_ACTION_DIAG_FAULT
#define MPI3_SYSIF_HOST_DIAG_SAVE_IN_PROGRESS
#define MPI3_SYSIF_HOST_DIAG_SECURE_BOOT
#define MPI3_SYSIF_HOST_DIAG_CLEAR_INVALID_FW_IMAGE
#define MPI3_SYSIF_HOST_DIAG_INVALID_FW_IMAGE
#define MPI3_SYSIF_HOST_DIAG_HCBENABLE
#define MPI3_SYSIF_HOST_DIAG_HCBMODE
#define MPI3_SYSIF_HOST_DIAG_DIAG_RW_ENABLE
#define MPI3_SYSIF_HOST_DIAG_DIAG_WRITE_ENABLE
#define MPI3_SYSIF_FAULT_OFFSET
#define MPI3_SYSIF_FAULT_FUNC_AREA_MASK
#define MPI3_SYSIF_FAULT_FUNC_AREA_SHIFT
#define MPI3_SYSIF_FAULT_FUNC_AREA_MPI_DEFINED
#define MPI3_SYSIF_FAULT_CODE_MASK
#define MPI3_SYSIF_FAULT_CODE_DIAG_FAULT_RESET
#define MPI3_SYSIF_FAULT_CODE_CI_ACTIVATION_RESET
#define MPI3_SYSIF_FAULT_CODE_SOFT_RESET_IN_PROGRESS
#define MPI3_SYSIF_FAULT_CODE_COMPLETE_RESET_NEEDED
#define MPI3_SYSIF_FAULT_CODE_SOFT_RESET_NEEDED
#define MPI3_SYSIF_FAULT_CODE_POWER_CYCLE_REQUIRED
#define MPI3_SYSIF_FAULT_CODE_TEMP_THRESHOLD_EXCEEDED
#define MPI3_SYSIF_FAULT_INFO0_OFFSET
#define MPI3_SYSIF_FAULT_INFO1_OFFSET
#define MPI3_SYSIF_FAULT_INFO2_OFFSET
#define MPI3_SYSIF_HCB_ADDRESS_LOW_OFFSET
#define MPI3_SYSIF_HCB_ADDRESS_HIGH_OFFSET
#define MPI3_SYSIF_HCB_SIZE_OFFSET
#define MPI3_SYSIF_HCB_SIZE_SIZE_MASK
#define MPI3_SYSIF_HCB_SIZE_SIZE_SHIFT
#define MPI3_SYSIF_HCB_SIZE_HCDW_ENABLE
#define MPI3_SYSIF_REPLY_FREE_HOST_INDEX_OFFSET
#define MPI3_SYSIF_SENSE_BUF_FREE_HOST_INDEX_OFFSET
#define MPI3_SYSIF_DIAG_RW_DATA_LOW_OFFSET
#define MPI3_SYSIF_DIAG_RW_DATA_HIGH_OFFSET
#define MPI3_SYSIF_DIAG_RW_ADDRESS_LOW_OFFSET
#define MPI3_SYSIF_DIAG_RW_ADDRESS_HIGH_OFFSET
#define MPI3_SYSIF_DIAG_RW_CONTROL_OFFSET
#define MPI3_SYSIF_DIAG_RW_CONTROL_LEN_MASK
#define MPI3_SYSIF_DIAG_RW_CONTROL_LEN_1BYTE
#define MPI3_SYSIF_DIAG_RW_CONTROL_LEN_2BYTES
#define MPI3_SYSIF_DIAG_RW_CONTROL_LEN_4BYTES
#define MPI3_SYSIF_DIAG_RW_CONTROL_LEN_8BYTES
#define MPI3_SYSIF_DIAG_RW_CONTROL_RESET
#define MPI3_SYSIF_DIAG_RW_CONTROL_DIR_MASK
#define MPI3_SYSIF_DIAG_RW_CONTROL_DIR_READ
#define MPI3_SYSIF_DIAG_RW_CONTROL_DIR_WRITE
#define MPI3_SYSIF_DIAG_RW_CONTROL_START
#define MPI3_SYSIF_DIAG_RW_STATUS_OFFSET
#define MPI3_SYSIF_DIAG_RW_STATUS_STATUS_MASK
#define MPI3_SYSIF_DIAG_RW_STATUS_STATUS_SUCCESS
#define MPI3_SYSIF_DIAG_RW_STATUS_STATUS_INV_ADDR
#define MPI3_SYSIF_DIAG_RW_STATUS_STATUS_ACC_ERR
#define MPI3_SYSIF_DIAG_RW_STATUS_STATUS_PAR_ERR
#define MPI3_SYSIF_DIAG_RW_STATUS_BUSY
#define MPI3_SYSIF_SCRATCHPAD0_OFFSET
#define MPI3_SYSIF_SCRATCHPAD1_OFFSET
#define MPI3_SYSIF_SCRATCHPAD2_OFFSET
#define MPI3_SYSIF_SCRATCHPAD3_OFFSET
#define MPI3_SYSIF_DEVICE_ASSIGNED_REGS_OFFSET
#define MPI3_SYSIF_DIAG_SAVE_TIMEOUT
struct mpi3_default_reply_descriptor {};

#define MPI3_REPLY_DESCRIPT_FLAGS_PHASE_MASK
#define MPI3_REPLY_DESCRIPT_FLAGS_TYPE_MASK
#define MPI3_REPLY_DESCRIPT_FLAGS_TYPE_ADDRESS_REPLY
#define MPI3_REPLY_DESCRIPT_FLAGS_TYPE_SUCCESS
#define MPI3_REPLY_DESCRIPT_FLAGS_TYPE_TARGET_COMMAND_BUFFER
#define MPI3_REPLY_DESCRIPT_FLAGS_TYPE_STATUS
#define MPI3_REPLY_DESCRIPT_REQUEST_QUEUE_ID_INVALID
struct mpi3_address_reply_descriptor {};

struct mpi3_success_reply_descriptor {};

struct mpi3_target_command_buffer_reply_descriptor {};

struct mpi3_status_reply_descriptor {};

#define MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_LOGINFOAVAIL
#define MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_STATUS_MASK
#define MPI3_REPLY_DESCRIPT_STATUS_IOCLOGINFO_TYPE_MASK
#define MPI3_REPLY_DESCRIPT_STATUS_IOCLOGINFO_TYPE_NO_INFO
#define MPI3_REPLY_DESCRIPT_STATUS_IOCLOGINFO_TYPE_SAS
#define MPI3_REPLY_DESCRIPT_STATUS_IOCLOGINFO_DATA_MASK
mpi3_reply_descriptors_union;

struct mpi3_sge_common {};

struct mpi3_sge_bit_bucket {};

struct mpi3_sge_extended_eedp {};

mpi3_sge_union;

#define MPI3_SGE_FLAGS_ELEMENT_TYPE_MASK
#define MPI3_SGE_FLAGS_ELEMENT_TYPE_SIMPLE
#define MPI3_SGE_FLAGS_ELEMENT_TYPE_BIT_BUCKET
#define MPI3_SGE_FLAGS_ELEMENT_TYPE_CHAIN
#define MPI3_SGE_FLAGS_ELEMENT_TYPE_LAST_CHAIN
#define MPI3_SGE_FLAGS_ELEMENT_TYPE_EXTENDED
#define MPI3_SGE_FLAGS_END_OF_LIST
#define MPI3_SGE_FLAGS_END_OF_BUFFER
#define MPI3_SGE_FLAGS_DLAS_MASK
#define MPI3_SGE_FLAGS_DLAS_SYSTEM
#define MPI3_SGE_FLAGS_DLAS_IOC_UDP
#define MPI3_SGE_FLAGS_DLAS_IOC_CTL
#define MPI3_SGE_EXT_OPER_EEDP
#define MPI3_EEDPFLAGS_INCR_PRI_REF_TAG
#define MPI3_EEDPFLAGS_INCR_SEC_REF_TAG
#define MPI3_EEDPFLAGS_INCR_PRI_APP_TAG
#define MPI3_EEDPFLAGS_INCR_SEC_APP_TAG
#define MPI3_EEDPFLAGS_ESC_PASSTHROUGH
#define MPI3_EEDPFLAGS_CHK_REF_TAG
#define MPI3_EEDPFLAGS_CHK_APP_TAG
#define MPI3_EEDPFLAGS_CHK_GUARD
#define MPI3_EEDPFLAGS_ESC_MODE_MASK
#define MPI3_EEDPFLAGS_ESC_MODE_DO_NOT_DISABLE
#define MPI3_EEDPFLAGS_ESC_MODE_APPTAG_DISABLE
#define MPI3_EEDPFLAGS_ESC_MODE_APPTAG_REFTAG_DISABLE
#define MPI3_EEDPFLAGS_HOST_GUARD_MASK
#define MPI3_EEDPFLAGS_HOST_GUARD_T10_CRC
#define MPI3_EEDPFLAGS_HOST_GUARD_IP_CHKSUM
#define MPI3_EEDPFLAGS_HOST_GUARD_OEM_SPECIFIC
#define MPI3_EEDPFLAGS_PT_REF_TAG
#define MPI3_EEDPFLAGS_EEDP_OP_MASK
#define MPI3_EEDPFLAGS_EEDP_OP_CHECK
#define MPI3_EEDPFLAGS_EEDP_OP_STRIP
#define MPI3_EEDPFLAGS_EEDP_OP_CHECK_REMOVE
#define MPI3_EEDPFLAGS_EEDP_OP_INSERT
#define MPI3_EEDPFLAGS_EEDP_OP_REPLACE
#define MPI3_EEDPFLAGS_EEDP_OP_CHECK_REGEN
#define MPI3_EEDP_UDS_512
#define MPI3_EEDP_UDS_520
#define MPI3_EEDP_UDS_4080
#define MPI3_EEDP_UDS_4088
#define MPI3_EEDP_UDS_4096
#define MPI3_EEDP_UDS_4104
#define MPI3_EEDP_UDS_4160
struct mpi3_request_header {};

struct mpi3_default_reply {};

#define MPI3_HOST_TAG_INVALID
#define MPI3_FUNCTION_IOC_FACTS
#define MPI3_FUNCTION_IOC_INIT
#define MPI3_FUNCTION_PORT_ENABLE
#define MPI3_FUNCTION_EVENT_NOTIFICATION
#define MPI3_FUNCTION_EVENT_ACK
#define MPI3_FUNCTION_CI_DOWNLOAD
#define MPI3_FUNCTION_CI_UPLOAD
#define MPI3_FUNCTION_IO_UNIT_CONTROL
#define MPI3_FUNCTION_PERSISTENT_EVENT_LOG
#define MPI3_FUNCTION_MGMT_PASSTHROUGH
#define MPI3_FUNCTION_CONFIG
#define MPI3_FUNCTION_SCSI_IO
#define MPI3_FUNCTION_SCSI_TASK_MGMT
#define MPI3_FUNCTION_SMP_PASSTHROUGH
#define MPI3_FUNCTION_NVME_ENCAPSULATED
#define MPI3_FUNCTION_TARGET_ASSIST
#define MPI3_FUNCTION_TARGET_STATUS_SEND
#define MPI3_FUNCTION_TARGET_MODE_ABORT
#define MPI3_FUNCTION_TARGET_CMD_BUF_POST_BASE
#define MPI3_FUNCTION_TARGET_CMD_BUF_POST_LIST
#define MPI3_FUNCTION_CREATE_REQUEST_QUEUE
#define MPI3_FUNCTION_DELETE_REQUEST_QUEUE
#define MPI3_FUNCTION_CREATE_REPLY_QUEUE
#define MPI3_FUNCTION_DELETE_REPLY_QUEUE
#define MPI3_FUNCTION_TOOLBOX
#define MPI3_FUNCTION_DIAG_BUFFER_POST
#define MPI3_FUNCTION_DIAG_BUFFER_MANAGE
#define MPI3_FUNCTION_DIAG_BUFFER_UPLOAD
#define MPI3_FUNCTION_MIN_IOC_USE_ONLY
#define MPI3_FUNCTION_MAX_IOC_USE_ONLY
#define MPI3_FUNCTION_MIN_PRODUCT_SPECIFIC
#define MPI3_FUNCTION_MAX_PRODUCT_SPECIFIC
#define MPI3_IOCSTATUS_LOG_INFO_AVAIL_MASK
#define MPI3_IOCSTATUS_LOG_INFO_AVAILABLE
#define MPI3_IOCSTATUS_STATUS_MASK
#define MPI3_IOCSTATUS_SUCCESS
#define MPI3_IOCSTATUS_INVALID_FUNCTION
#define MPI3_IOCSTATUS_BUSY
#define MPI3_IOCSTATUS_INVALID_SGL
#define MPI3_IOCSTATUS_INTERNAL_ERROR
#define MPI3_IOCSTATUS_INSUFFICIENT_RESOURCES
#define MPI3_IOCSTATUS_INVALID_FIELD
#define MPI3_IOCSTATUS_INVALID_STATE
#define MPI3_IOCSTATUS_INSUFFICIENT_POWER
#define MPI3_IOCSTATUS_INVALID_CHANGE_COUNT
#define MPI3_IOCSTATUS_ALLOWED_CMD_BLOCK
#define MPI3_IOCSTATUS_SUPERVISOR_ONLY
#define MPI3_IOCSTATUS_FAILURE
#define MPI3_IOCSTATUS_CONFIG_INVALID_ACTION
#define MPI3_IOCSTATUS_CONFIG_INVALID_TYPE
#define MPI3_IOCSTATUS_CONFIG_INVALID_PAGE
#define MPI3_IOCSTATUS_CONFIG_INVALID_DATA
#define MPI3_IOCSTATUS_CONFIG_NO_DEFAULTS
#define MPI3_IOCSTATUS_CONFIG_CANT_COMMIT
#define MPI3_IOCSTATUS_SCSI_RECOVERED_ERROR
#define MPI3_IOCSTATUS_SCSI_TM_NOT_SUPPORTED
#define MPI3_IOCSTATUS_SCSI_INVALID_DEVHANDLE
#define MPI3_IOCSTATUS_SCSI_DEVICE_NOT_THERE
#define MPI3_IOCSTATUS_SCSI_DATA_OVERRUN
#define MPI3_IOCSTATUS_SCSI_DATA_UNDERRUN
#define MPI3_IOCSTATUS_SCSI_IO_DATA_ERROR
#define MPI3_IOCSTATUS_SCSI_PROTOCOL_ERROR
#define MPI3_IOCSTATUS_SCSI_TASK_TERMINATED
#define MPI3_IOCSTATUS_SCSI_RESIDUAL_MISMATCH
#define MPI3_IOCSTATUS_SCSI_TASK_MGMT_FAILED
#define MPI3_IOCSTATUS_SCSI_IOC_TERMINATED
#define MPI3_IOCSTATUS_SCSI_EXT_TERMINATED
#define MPI3_IOCSTATUS_EEDP_GUARD_ERROR
#define MPI3_IOCSTATUS_EEDP_REF_TAG_ERROR
#define MPI3_IOCSTATUS_EEDP_APP_TAG_ERROR
#define MPI3_IOCSTATUS_TARGET_INVALID_IO_INDEX
#define MPI3_IOCSTATUS_TARGET_ABORTED
#define MPI3_IOCSTATUS_TARGET_NO_CONN_RETRYABLE
#define MPI3_IOCSTATUS_TARGET_NO_CONNECTION
#define MPI3_IOCSTATUS_TARGET_XFER_COUNT_MISMATCH
#define MPI3_IOCSTATUS_TARGET_DATA_OFFSET_ERROR
#define MPI3_IOCSTATUS_TARGET_TOO_MUCH_WRITE_DATA
#define MPI3_IOCSTATUS_TARGET_IU_TOO_SHORT
#define MPI3_IOCSTATUS_TARGET_ACK_NAK_TIMEOUT
#define MPI3_IOCSTATUS_TARGET_NAK_RECEIVED
#define MPI3_IOCSTATUS_SAS_SMP_REQUEST_FAILED
#define MPI3_IOCSTATUS_SAS_SMP_DATA_OVERRUN
#define MPI3_IOCSTATUS_DIAGNOSTIC_RELEASED
#define MPI3_IOCSTATUS_CI_UNSUPPORTED
#define MPI3_IOCSTATUS_CI_UPDATE_SEQUENCE
#define MPI3_IOCSTATUS_CI_VALIDATION_FAILED
#define MPI3_IOCSTATUS_CI_KEY_UPDATE_PENDING
#define MPI3_IOCSTATUS_CI_KEY_UPDATE_NOT_POSSIBLE
#define MPI3_IOCSTATUS_SECURITY_KEY_REQUIRED
#define MPI3_IOCSTATUS_SECURITY_VIOLATION
#define MPI3_IOCSTATUS_INVALID_QUEUE_ID
#define MPI3_IOCSTATUS_INVALID_QUEUE_SIZE
#define MPI3_IOCSTATUS_INVALID_MSIX_VECTOR
#define MPI3_IOCSTATUS_INVALID_REPLY_QUEUE_ID
#define MPI3_IOCSTATUS_INVALID_QUEUE_DELETION
#define MPI3_IOCLOGINFO_TYPE_MASK
#define MPI3_IOCLOGINFO_TYPE_SHIFT
#define MPI3_IOCLOGINFO_TYPE_NONE
#define MPI3_IOCLOGINFO_TYPE_SAS
#define MPI3_IOCLOGINFO_LOG_DATA_MASK
#endif